Логика ролей

Логика ролей в FirstWork основана на принципе единственности роли. Каждый пользователь системы имеет только одну роль, и эта роль определяет его возможности, доступ к функциональности и взаимодействие с административными и пользовательскими разделами. Роли не являются жёстко зашитыми в код. Они создаются, редактируются и удаляются через административную панель, что делает систему гибкой и адаптируемой под любые сценарии.

При создании или редактировании роли администратор задаёт набор возможностей. Эти возможности представляют собой флаги, которые включают или отключают определённые функции системы. Флаги определяют, какие действия доступны пользователю, какие разделы он может видеть, какие операции он может выполнять и какие ограничения на него накладываются. Таким образом, роль является конфигурацией поведения, а не статическим названием. Это позволяет создавать роли любого назначения, например администратора, модератора, оператора поддержки, контент‑менеджера или любую другую роль, необходимую проекту.

Роль определяет доступ к управлению пользователями, модулями, шаблонами, финансовыми операциями, арбитражем, контентом и другими частями системы. Поскольку каждая роль имеет только один набор флагов, поведение пользователя всегда остаётся предсказуемым. Система не допускает ситуаций, когда один пользователь одновременно имеет конфликтующие возможности. Это упрощает архитектуру и исключает ошибки, связанные с пересечением прав.

Важно понимать, что роли системы не связаны с ролями внутри сделки. В сделке участвуют две стороны, которые условно называются заказчиком и исполнителем, но эти состояния не являются системными ролями. Они формируются автоматически в контексте конкретной сделки и не определяют глобальные возможности пользователя. Пользователь может быть участником сделки, но при этом иметь системную роль модератора или администратора. Эти понятия полностью разделены в архитектуре.

Логика ролей встроена в архитектуру таким образом, что интерфейс автоматически адаптируется под возможности роли. Пользователь видит только те элементы, которые соответствуют его флагам. Это исключает доступ к функциям, которые не предназначены для его роли, и делает систему безопасной и предсказуемой. Все ограничения накладываются на уровне ядра, что предотвращает некорректные действия независимо от интерфейса.

Логика ролей в FirstWork обеспечивает гибкость настройки, безопасность и структурированность поведения пользователей. Она позволяет адаптировать систему под любые требования проекта без изменения ядра и создаёт чёткую модель взаимодействия между пользователями и системой.