Пожалуйста, рассмотрите этот сценарий: веб-приложение, имеющее 4 уровня доступа: администратор> менеджер> представитель> клиент> без роли (страницы общего доступа)
С моей текущей настройкой приложения я могу разрешить доступ через 2способы:
Я могу написать код, который будет иметь приоритет роли, т. е. если пользователь является менеджером - приложение автоматически предполагает, что он / она имеет право на доступ к областям, которые клиент &Представитель может, но не администратор.
Я могу назначить каждую роль отдельно в таблице.Например, пользователю будет назначено 3 роли.Таким образом, приложение не примет роли приоритета / наследования.Я могу либо позволить администратору назначать пользователей с ролями, либо исправить код, который автоматически назначит дополнительные роли пользователю, если ему будет предоставлен более высокий уровень доступа.
Какой из этих двух подходов являетсялучше с точки зрения ремонтопригодности?
PS
Не думаю, что это имеет значение, но я использую Rails 3 с CanCan & Devise.Кроме того, мои настройки взаимоотношений между ролями и пользователями следующие:
Роль <=> (HABTM) <=> Пользователь