Spree自定义角色权限

2024-03-05

我正在尝试在狂欢特定权限内授予一些自定义角色。 在任何地方都找不到这个答案

角色能力.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(使用前将#替换为@)

Spree自定义角色权限 的相关文章

  • 对 ASP.Net MVC 授权的更多控制;保留 AJAX 请求 AJAX

    我在授权背后有一些操作方法 例如 AcceptVerbs HttpVerbs Post Authorize public ActionResult Create int siteId Comment comment 我遇到的问题是我通过 A
  • 使用 CanCan 授权命名空间和嵌套控制器

    我在让 cancan 授权我的新路线设置时遇到了一些麻烦 namespace api do namespace v1 do resources users do resources user songs resources friendsh
  • 康康舞能力在单独的文件中

    是否可以在单独的文件中定义能力并将其包含在初始化方法内的ability rb文件中 下面的代码返回 尝试并得到 未定义的方法 can 能力 rb def initialize user include MyExtension Somethi
  • Rails cancan 和状态机 - 授权状态

    我最近在我的 Rails 应用程序中使用了两个很棒的 gem state machine 和 cancan 但我很好奇如何干净地集成它们 目前 我已将状态转换放置在执行控制器授权的操作的按钮上 这非常有效 我可以限制谁可以执行该操作 我还想
  • 疯狂邮件方法不起作用?

    在配置菜单下的 spree 管理面板中 我配置了邮件 smtp 端口等 创建新邮件方法后 我按下测试邮件按钮 我收到以下警报消息 测试邮件发送成功 甚至终端窗口也显示电子邮件发送成功消息 但是邮件未送达相应地址 发送测试邮件后控制台日志 S
  • Rails:使用 CanCan 根据单个模型的实例定义多个角色?

    我目前陷入如何根据我们想要的每个条件来分离 CanCan 角色的问题 在我们的应用程序中 有很多类别 例如数学 英语 历史等 每个类别都有很多课程 每个用户可以在每个类别上拥有许多不同的角色 例如 约翰可以是数学 读者 这意味着他可以阅读数
  • 疯狂中的 CheckoutController#edit 在哪里?

    我需要玩editCheckoutController 的操作 我在服务器日志中看到它 我在文档 http edgeguides spreecommerce com checkout html但我在 gem 的代码中找不到它 魔力在哪里 狂欢
  • MVC .NET 的 CanCan gem

    我正在寻找 NuGet 包 它提供与 Rails 中的 CanCan gem 类似的功能 https github com ryanb cancan https github com ryanb cancan 有谁知道提供类似功能的插件吗
  • 使用 CanCan 进行上下文感知授权

    我想使用 CanCan 来处理我的权限 我的网站有许多不同的权限级别 其中大多数都是上下文感知的 例如 以下是我的 3 个主要模型中的关系 class User lt ActiveRecord Base has many league re
  • 有没有办法检查 URL 的一部分是否包含特定字符串

    有没有办法检查 URL 的一部分是否包含特定字符串 Eg where 可以是任何东西吗 我测试过 gmacdougall 的答案有效 但我已经找到了解决方案 这是我用来根据 url 呈现不同布局的方法 url request path in
  • 将名称添加到 Spree Devise 注册中

    我正在尝试添加姓名和出生日期来设计 Spree 注册 我已经安装了宝石 gem spree auth devise github spree spree auth devise branch 3 0 stable 创建了迁移 class A
  • 在 Spree (RoR) 中保存产品时,价格会乘以 100

    我在 Rails 3 1 3 和 Ruby 1 9 3 之上安装了在线购物框架 Spree 我还使用 Spree i18n gem 来本地化商店 现在 每当我保存产品时 价格都会乘以 100 例如 在管理区域中 我输入价格 3 20 结果是
  • 使用 cancan 进行基于角色的授权不起作用 Rails 4 - Ruby 2.1

    我使用 cancan 1 6 10 和 devise 3 2 2 我一直在使用本指南 https github com ryanb cancan wiki Role Based Authorization wiki many roles p
  • 自定义错误处理和康康舞

    我正在尝试实现自定义错误处理以及使用 CanCan 当用户到达不允许访问的区域时 会引发 CanCan AccessDenied 错误 并且应将其发送到根 url 相反 rescue from Exception 捕获 CanCan Acc
  • Rails 4:具有 has_many 的 CanCanCan 功能:通过关联

    我有一个包含以下模型的 Rails 应用程序 class User lt ActiveRecord Base has many administrations has many calendars through administratio
  • Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染

    作为测试新手 我正在努力让一些控制器测试通过 以下控制器测试会引发错误 expecting lt index gt but rendering with lt gt 我的控制器规格之一具有以下内容 require spec helper d
  • 绕过标记为公开的特定记录的设计授权的最佳方法是什么

    我在 Rails 3 2 项目中使用 devise 和 cancan 我有一个event模型与一个 布尔标志public 如果事件被标记为公开 gt 真实那么我希望任何人 无论登录还是无法访问记录 GET events id 如果它被标记为
  • RSpec 抛出分段错误

    有时我的测试套件会无缘无故地抛出分段错误 这是输出 Users Test rvm gems ruby 1 9 3 p392 gems activerecord 3 2 9 lib active record relation query m
  • Devise/CanCanCan - 允许管理员创建新用户

    我正在使用 Rails 4 0 2 设计并康康康 https github com CanCanCommunity cancancan 我正在尝试允许管理员创建新用户 管理员用户在用户表中分配有一个布尔字段 在ability rb中我有以下
  • 如何在 Rails 中制作动态下拉菜单?

    我正在开发一个电子商务项目 其中将有用于选择尺寸的单选按钮 我有一个数量下拉菜单 我想根据用户所选尺寸的可用库存使此下拉列表动态化 谁能告诉我如何在 Rails 上做到这一点 不会用大量的 javascript 扰乱我的视图文件 如果您使用

随机推荐