У админа может и не быть возможности к разрешению пользователя и в пределах одной роли пользователи могут иметь разный доступ к разрешениям
Как организовать сущности Role,Permission,Rule
Роли (role): типовые роли supper_admin,admin,customer (сотрудник, менеджер),user (авторизированный пользователь),guest (не авторизированный пользователь). Роль supper_admin наследует от всех ролей разрешения благодаря этому supper_admin имеет доступ ко всем permission не зависимо от их наличия в конкретной роли но требуется пропуск во всех правилах;
Разрешения (permission): роль является прямым родителем разрешения, без наследования (кроме роли supper_admin).Другими словами, одно и тоже разрешение будет назначаться каждой нужной роли.
Правила (Rule): правила для ролей и для разрешений наследуются от BaseRole в котором присутсвует проверка общих правил.
От вас потрубуется закодить админку для ролей,разрешений,разрешения пользователя.Что там должно быть:
Админка для ролей.
Добавление, удаление, обновление разрешений.
Админка для разрешений.
Добавление, удаление.
Админка разрешения пользователя.
Тут должна быть возможность конкретному пользователю по мимо его разрешений и запрещающих ролей(запрещающие разрешения) назначить или снять определенное разрешение или запрещающюю роль(запрещающее разрешение).По поводу запрещающих ролей(запрещающих разрешений) будет пояснение дальше.
Читать дальше →