Рельсы - Роли или Наследование? - PullRequest
0 голосов
/ 08 декабря 2009

Я начал писать приложение с использованием Declarative_authorization (http://github.com/stffn/declarative_authorization), но теперь мне интересно, если это правильный подход.

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

Superadmin = администратор редактора

Admin = редактор клиента

Customer = имеет дополнительные атрибуты, такие как «аватар»

С этого момента я начал создавать модель Customer, унаследованную от User. Однако в этом случае клиенты всегда будут играть роль «клиента», а только клиенты будут иметь эту роль. Это казалось немного странным.

Полагаю, я ищу руководство для этого сценария.

Ответы [ 2 ]

0 голосов
/ 10 марта 2010

Я применил собственное решение к этому, которое подробно описал в http://colinramsay.co.uk/diary/2010/02/24/rails-has_one-am-i-missing-something/

0 голосов
/ 08 декабря 2009

Не могли бы вы подробнее рассказать о возникающих различиях между ролями администратора и пользователя?

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

Если есть особый случай, связанный с вашим приложением, который я пропускаю, пожалуйста, дайте мне знать! ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...