我正在尝试在狂欢特定权限内授予一些自定义角色。
在任何地方都找不到这个答案
角色能力.rb
class RoleAbility
include CanCan::Ability
def initialize(user)
user || User.new # for guest
if user.has_role? "admin"
can :manage, :all
elsif user.has_role? "retailer"
can :manage, Product
else
can :read, :all
end
end
end
我认为这可能是一个流行的想法,让具有“经理”角色的用户仅管理产品和其他某些模型......
如果我改变
elsif user.has_role? "retailer"
can :manage, Product
to
elsif user.has_role? "retailer"
can :manage, :all
它按预期工作...我可以访问所有管理区域
我只希望“零售商”能够:管理产品! ;)
“admin”只是与用户关联的角色,即所有角色都是用户。
您可能可以看到这是怎么回事,零售商可以注册并销售自己的商品……这就是目标。
有什么指点吗??
解决此问题的一个快速解决方案是将authorize_admin 方法添加到 Admin::ProductsController Decorator.rb
应用程序/控制器/admin_products_controller_decorator.rb
Admin::ProductsController.class_eval do
def authorize_admin
authorize! :admin, Product
authorize! params[:action].to_sym, Product
end
end
NOTE:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)