【问题标题】:Declarative authorization nested if_attribute声明式授权嵌套 if_attribute
【发布时间】:2012-04-11 01:49:28
【问题描述】:

我在理解声明性授权和嵌套 if_attributes 的文档时遇到了一些困难。

型号:

class Company < ActiveRecord::Base
  has_many :users, :through => :division
end

class Division < ActiveRecord::Base
  belongs_to :company
  has_many :users
end

class User < ActiveRecord::Base
  belongs_to :post
end

我的规则:

role :company_admin do
includes :company_admin
  has_permission_on :companies, :to => [:index, :show, :edit, :update] do
  if_attribute :id => is { user.division.company.id } # This is the problem....
end

在我的层次结构中,我定义了一个 company_admin 角色,应该允许该角色编辑他自己的公司以及所有部门和用户。公司管理员上方还有一个角色,可以完全编辑和添加公司以及下面的所有角色。

我似乎被挂断的地方是上面列出的规则(我知道这不正确,它只是一个例子的填充物)。我需要确定当前用户只能编辑自己的公司,不能编辑其他公司。这似乎是一个嵌套的 if_attribute 但我似乎无法理解文档中嵌套 if_attributes 的示例。

提前感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails activerecord declarative-authorization


    【解决方案1】:

    解析不需要嵌套的 if_attribute。我使用的示例实际上是正确的,我的 authorization_rules.rb 文件中存在其他权限错误,该用户继承了导致混淆。

    if_attribute :id => is { user.division.company.id } #This was the correct if_attribute
    

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-18
      • 2014-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多