2009-12-08 5 views
0

Я начал писать приложение с использованием declarative_authorization (http://github.com/stffn/declarative_authorization), но теперь мне интересно, правильно ли он подходит.Rails - Роли или Наследование?

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

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

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

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

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

Я предполагаю, что я ищу небольшое руководство для этого сценария.

ответ

0

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

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

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

+0

Вы предполагаете, что, возможно, администратор просто обычный пользователь? В реальном приложении на самом деле есть третий уровень - суперадмин, которому разрешено редактировать администраторов. Superadmin = редактор администратора Администратор = редактор клиента Клиент = имеет дополнительные атрибуты, такие как «avatar» –

+0

Отредактированный исходный вопрос, чтобы включить эту информацию. –

Смежные вопросы