使用rails自定义用户角色的狂欢商务

时间:2017-02-06 09:47:09

标签: ruby-on-rails admin spree

我正在尝试添加salesRep的用户角色,他可以通过从下拉列表中选择用户(与管理员相同)代表用户从管理员方面订购产品。 我在rails 5中使用狂欢商务。 我在app / models / spree / ability_decorator.rb

上有ability_decorator
class AbilityDecorator
     include CanCan::Ability
     def initialize(user)
     if user.respond_to?(:has_spree_role?) && user.has_spree_role?  ('sales_rep')
        can [:admin, :manage], Spree::Order
        can [:admin, :index, :show], Spree::Product   
     end
   end
end

Spree::Ability.register_ability(AbilityDecorator)

虽然没有错误,但我只能按预期查看订单标签和产品标签。但“订单”选项卡仅显示选定的信息。它不显示客户下拉菜单以选择客户或客户详细信息,如电子邮件,密码,地址等,这些都存在于管理员登录中。 我应该做些什么更改才能拥有管理员登录等确切功能?

1 个答案:

答案 0 :(得分:-1)

这是狂欢自定义用户角色的正确代码。

class AbilityDecorator
     include CanCan::Ability
     def initialize(user)
     if user.respond_to?(:has_spree_role?) && user.has_spree_role?('admin_store')
        can [:admin, :manage], Spree::Order
        can [:admin, :index, :show], Spree::Product   
     end
   end
end

Spree::Ability.register_ability(AbilityDecorator)