Определение ролевого доступа к модели Devise User - PullRequest
0 голосов
/ 23 апреля 2011

Кто-нибудь может указать мне на документацию по этому вопросу?

Я использую Devise + CanCan в приложении Rails3 и настраиваю Ability.rb.

Я хочу ограничить доступ к редактированию / удалению путей пользователя в зависимости от роли пользователя. Обычно Ability.rb будет выглядеть примерно так:

def initialize(user)        
    if user.role? :moderator
       can :manage, User
    end
end

Но в представлениях я использую пути регистрации Devise для редактирования / удаления:

<% if can? :update, @user %>
     <%= link_to 'Edit', edit_user_registration_path(@user) %> | 
<% end %>

«can: manage, User», похоже, не применяется к этим путям, и они остаются скрытыми независимо от роли.

Если я использую «can: manage,: all», тогда модератор может получить доступ к этим путям.

Таким образом, «Пользователь» явно не является подходящей моделью для управления. Я пробовал "Разработать" и "Регистрация", но безрезультатно.

Какое значение я должен использовать - "может: управлять, ????" - и где я могу найти документацию, объясняющую почему?

Спасибо за любые указатели!

1 Ответ

3 голосов
/ 23 апреля 2011

Проблемы, с которыми вы сталкиваетесь, я столкнулся с ними в моем последнем проекте.
По этой ссылке вы получите все ваши ответы.

Проверка подлинности Rails с помощью devise-and-cancan-restful-ресурсов-для-администраторов

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

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