Перейти до змісту

Демо-логіни з ролями

Усі логіни — пароль admin. Створюються при python manage.py seed_demo.

Tenant eswf — TOV ESWF Software (DOP vendor)

Логін Person Posada Ролі
eswf Ніколаєнко CTO / директор tenant_admin (повний доступ)
melnyk Мельник Бухгалтер / менеджер accountant + sales_manager
tkachenko Ткаченко Керівник підтримки support_specialist
bondarenko Бондаренко Senior Engineer engineer

Use case для тестування: ESWF — це команда, що продає DOP клієнтам. Логінься як bondarenko щоб побачити "internal-only" доступ розробника. Як tkachenko — view рахунків клієнтів без права редагувати. Як melnyk — повний бух+sales (поєднання двох ролей).

Tenant dry_port — TOV Sukhyi Port Kyiv (термінал)

Логін Person Posada Ролі
port Бойко Директор tenant_admin
honchar Гончар Бухгалтер / менеджер accountant + sales_manager
lytvyn Литвин Митний брокер forwarder
gate Оператор воріт gate_operator
weigher Вагар weighbridge_operator
dispatcher Диспетчер термінала terminal_dispatcher
yard Стивідор yard_manager

Use case: контейнерний термінал. Залогінься як gate — побачиш лише розділ Gatehouse + vehicles ref data. Як dispatcher — Containers, Bookings, Movements, YardInventories, TrainArrivals. Як forwarder — Railway-роути, train arrivals, контейнерні bookings (read).

Tenant agro_holding — Agro Holding "AhroMriya" (4 юрособи)

Логін Person Юрособа Ролі
admin Петренко Zernoplyus / директор холдингу tenant_admin
koval Коваль Zernoplyus accountant + sales_manager
sydorenko Сидоренко Zernoplyus / агроном engineer (ad-hoc для агронома)
bilous Білоус OliyProm accountant
havryliuk Гаврилюк OliyProm / виробництво production_manager
kravets Кравець AhroTrans accountant
oliynyk Олійник AhroTrans / диспетчер transport_dispatcher
bulkina Булкіна FOP Pekar / продавець sales_manager + support_specialist
gate_agro (сило́си + пекарня) gate_operator
weigher_agro (приймання зерна) weighbridge_operator

Use case: агрохолдинг із 4 юрособами + спільні ворота. Залогінься як havryliuk щоб побачити Production (BOMs, WorkOrders, Writeoffs). Як oliynyk — повне управління автопарком AhroTrans. Як gate_agro — ворота на сило́сах і пекарні (така сама роль як у dry_port).

Сценарії для демо

"Engineer не бачить фінансів" (dry_port)

  1. Залогінитись bondarenko/admin (eswf — engineer)
  2. Спробувати відкрити Invoices, Cashboxes, Leads, JE → порожній sidebar для цих секцій (приховано через permission filter)
  3. Бачить лише Persons, Employees, Attendance Logs

"Скоупи бухгалтера + sales-менеджера в одному юзері" (eswf)

  1. Залогінитись melnyk/admin
  2. Бачить весь Essentials + повний CRM + StoreManager
  3. НЕ бачить admin-tools settings (BAFSyncSettings, EssentialsSettings) — IsTenantAdmin only
  4. Бачить Reports, Audit log

"Ворота на двох тенантах" (gatehouse)

  1. gate/admin (dry_port) — gate events, weighing tickets, vehicles
  2. gate_agro/admin (agro_holding) — те саме, але на даних agro
  3. Однакова роль gate_operator, різні набори даних — multi-tenancy в дії

"Production manager бачить Workflows але не post payroll" (agro)

  1. havryliuk/admin — bachit BOMs, WorkOrders, GoodsWriteoffs з посту, PayrollSlip view
  2. Спробує post payroll → 403 (це лише accountant)
  3. Створює WorkOrder, проводить його через workOrders/post-document/

"Транспортний диспетчер" (agro)

  1. oliynyk/admin — Vehicles, Drivers, Routes, Waybills, Orders, TransportInvoices
  2. Створює Waybill, post → проводки в DriverSalaryAccrual
  3. НЕ бачить JE, Cashboxes (це accountant)

Тренди по тенантах

  • eswf має класичний внутрішньо-офісний набір ролей: tenant_admin, accountant, sales, support, engineer.
  • dry_port додає terminal-side ролі: gate, weigher, dispatcher, yard, forwarder. Поєднує з accountant/sales (honchar тримає обидві).
  • agro_holding має 4 юрособи — фактично 4 різних "акаунти" в одному тенанті. Bookkeepers per юрособи (koval/bilous/kravets), окремі production (havryliuk) і transport (oliynyk) спеціалісти. Плюс ворота gate_agro/weigher_agro бо холдинг має фізичні об'єкти.

Технічні деталі

  • Demo-юзери створюються через _roles_<tenant>.py seeders, що викликаються з extras_<tenant> фази.
  • Усі мають is_tenant_admin=False (крім трьох superuser'ів) — щоб реально перевірити, як HasRolePermission обмежує scope.
  • Стандартних "робочих" ролей (auditor, hr_specialist) немає демо-юзерів — вони доступні в каталозі, тенант-адмін може створити юзера через UI (Admin Tools → Users → Add user) і призначити роль.
  • Standalone юзери (без Person linkage) — gate, weigher, dispatcher, yard, gate_agro, weigher_agro. Це OK — вони існують для демо ролі, реальна організація прив'язує Person через UI.

Скидання

Якщо хочеш повернути все до дефолту (наприклад, після експериментів через UI):

cd backend && python manage.py seed_demo --reset

Це покладе: - 3 tenants (recreate) - 3 superuser-логіни - усі extras → 14 системних ролей × 3 тенанти + усі demo-юзери з їхніми ролями

Якщо треба тільки один тенант — --reset-tenant=dry_port.