ruby-on-rails - Spree 自定义/扩展用户角色和权限

标签 ruby-on-rails spree

我正在尝试在 Spree 中指定一些自定义角色,例如角色“客户”并扩展权限以访问该角色的管理部分。

该用户将只能访问由该用户创建的那些产品。概念是让具有“客户”角色的用户仅管理产品和其他某些模型。

首先,我添加了 CanCan 插件并在 role_ability.rb 中定义了一个 RoleAbility 类

只需关注此帖子: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

将此添加到初始化程序:config/initializers/spree.rb
Ability.register_ability(RetailerAbility)

还扩展了 admin_products_controller_decorator.rb :app/controllersadmin_products_controller_decorator.rb
Admin::ProductsController.class_eval do
    def authorize_admin
        authorize! :admin, Product
        authorize! params[:action].to_sym, Product
    end
end

但我收到一条消息“授权失败”

试图找到一些运气,我引用了以下链接

用于自定义 Spree 角色的 github 要点:https://gist.github.com/1277326

这是我面临的类似问题:http://groups.google.com/group/spree-user/browse_thread/thread/1e819e10410d03c5/23b269e09c7ed47e

所有的努力都是徒劳的……

任何指针高度赞赏?

提前致谢。

最佳答案

终于找到了。

经过仔细研究发现,spree 1.1.1 通过在每个类中添加“Spree”模块来更改类,这导致 url 类似于“spree/admin/overview”,之前是“admin/overview”。

所以这对我有用,我能够控制我的角色的权限。

关于ruby-on-rails - Spree 自定义/扩展用户角色和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079860/

相关文章:

ruby-on-rails - 在子域 Rails 中实现 Spree Cart

spree 未找到付款

ruby-on-rails - 同一个应用程序中的 Heroku Delayed Job 和 Sidekiq

ruby-on-rails - 如何在 rspec 中测试 ActiveRecord::Relation 对象上的方法?

ruby-on-rails - reCAPTCHA gem : How Can I Suppress The Error Message in my Rails App?

javascript - 当我在 Spree 商店中添加 Braintree Drop-in UI 时,付款方式选择出现问题

rubymine - 从子项目在 Rubymine 中运行 Rails

css - Heroku css 背景图像不起作用

ruby-on-rails - Ruby on Rails - 测试对 Capistrano 的 deploy.rb 的更改

ruby-on-rails - 我怎样才能让我的网站这么快?