2012-06-18 3 views
2

Я пытаюсь указать некоторые пользовательские роли в Spree, например, роль «клиент» и расширить разрешения для доступа к разделу администрирования для этой роли.Spree настраивать/расширять роли и разрешения пользователей

Этот пользователь сможет получить доступ к только тем Продуктам, созданным этим пользователем. Концепция позволяет пользователю с ролью «клиент» управлять только продуктами и другими определенными Моделями.

Для начала я добавил канкан плагин и определил RoleAbility класс в role_ability.rb

Только после этого поста: Spree Custom Roles Permissions

class RoleAbility 
    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new 
    if user.has_role? 'admin' 
     can :manage, :all 
    elsif user.has_role? 'client_admin' 
     can :read, Product 
     can :admin, Product 
    end 
    end 
end 

Добавлено это инициализаторе: конфиг/Инициализаторы/spree.rb

Ability.register_ability(RetailerAbility) 

Также расширенный admin_products_controller_decorator.rb: приложение/controllersadmin_products_controller_decorator.rb

Admin::ProductsController.class_eval do 
    def authorize_admin 
     authorize! :admin, Product 
     authorize! params[:action].to_sym, Product 
    end 
end 

Но я получаю флэш-сообщение «Ошибка авторизации»

Пытаясь найти счастье, я упомянул следующие ссылки

GitHub сутью для настройки Шпрее Роли: https://gist.github.com/1277326

Вот аналогичный вопрос, с которым я сталкиваюсь: http://groups.google.com/group/spree-user/browse_thread/thread/1e819e10410d03c5/23b269e09c7ed47e

Все усилия напрасно ...

Какие-либо указатели получили высокую оценку?

Заранее спасибо.

+0

Использование spree 1.1.1, spree_multi_domain – swapab

ответ

3

И, наконец, нашел его.

После тщательного исследования выяснилось, что spree 1.1.1 изменил классы, добавив модуль «Spree» к каждому классу, что привело к тому, что URL-адрес «spree/admin/overview» был ранее «admin/overview».

Так что это сработало для меня, и я смог контролировать разрешения для своих ролей.

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