2011-01-04 6 views
0

Я знаю, что для рельсов есть роли, основанные на ролевых правах/плагинах, для определения того, может ли пользователь делать что-то, на основе какой их роли. Однако существует ли передовой подход к скрытию действий от пользователей на основе владение? т. е. методы show/edit/destroy для пользователя должны быть доступны только в том случае, если они выполняются в текущем зарегистрированном идентификаторе пользователя. Надеюсь, это имеет смысл, но я написал несколько методов для защиты от несобственных владельцев методов доступа, и он стал немного раздутым и уродливым.Проверки правильности владения моделью

+0

Не могли бы вы поделиться с нами некоторым кодом, чтобы прокомментировать? –

+0

Чтобы избежать отправки тщеславного кода, я в основном написал метод в каждом контроллере (будет ли рефакторинг переходить на один метод в контроллере приложения), который по существу был http://pastie.org/1428824 –

ответ

1

Посмотрите на cancan's осуществления.

+0

Мне нравится этот подход ... Определите «способности» в одном месте, а затем запустите if on on? и авторизуйтесь! ... Именно то, что я искал .. Спасибо! –

1

Я могу порекомендовать на restful_authentication (https://github.com/technoweenie/restful-authentication). quick tutorial http://railscasts.com/episodes/67-restful-authentication

+0

Я кратко рассмотрел restful_authentication на основе этого точного скринкаста, но решил пойти с Authlogic для моих потребностей в авторизации. –

+0

Брэдли, я кулак к тому же выводу. Я использую Authlogic и Cancan для аутентификации и авторизации. –

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