Я должен использовать CanCan с Devise? - PullRequest
12 голосов
/ 18 июля 2011

У меня есть устройство для работы, но я вижу, что CanCan часто упоминается в руководствах вместе с Devise;это дополняет или CanCan является альтернативой Devise?

Ответы [ 2 ]

24 голосов
/ 18 июля 2011

CanCan покрывает авторизацию - кому разрешено делать что. Придумай ручку аутентификация - Ты действительно такой? Вот так они дополняют друг друга. Вы можете использовать один без другого.

См. Например http://techoctave.com/c7/posts/34-authentication-vs-authorization.

1 голос
/ 18 июля 2011

Devise обрабатывает аутентификацию (вход и выход, обработка сессий и т. Д.), Но не обрабатывает авторизацию (предоставляя доступ к представлениям или действиям).

Если у вас нетривиальное приложение, товам понадобится авторизация и, вероятно, роли.

CanCan - очень простой гем авторизации, который может хорошо работать, если у вас очень мало ролей и очень простые правила авторизации.http://railscasts.com/episodes/192-authorization-with-cancan

Если у вас много ролей или более сложные правила авторизации, я бы порекомендовал Declarative_authorization http://railscasts.com/episodes/188-declarative-authorization

Оба отлично работают с Devise, и либо Rails 2 или Rails3.

Для реализации ролей у вас есть два варианта: наличие таблицы ролей и таблицы соединений между ролями и пользователями в вашей базе данных;или с помощью плагина role_model http://railscasts.com/episodes/189-embedded-association У вас также будет выбор, если у пользователя может быть только одна или несколько ролей.

надеюсь, это поможет

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