Подтвердить что ты не робот

Должен ли я использовать CanCan с Devise?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

Оба очень хорошо работают с Devise и Rails 2 или Rails 3.

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

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