1

我对声明性授权有一点问题。我有一个具有 has_and_belongs_to_many 关联的用户和角色模型。

我在我的 authorization_rules.rb 中创建了一个名为 :moderator 的角色

具有角色版主角色的用户是否有可能只获得分配了版主角色的用户?--> User.with_permissions_to(:index)

我认为有可能是这样的:

role :moderator do
  has_permission_on :users, :to => :index do
    if_attribute :roles => contains { ????? }
  end
end

我还在我的用户模型中创建了一个 named_scope,因为我认为它会有所帮助......

class User
  has_and_belongs_to_many :roles
  named_scope :by_role, lambda { |role|
    {
      :include => :roles,
      :conditions => {"roles.name" => role}
    }
  }
end

有谁知道是否可以使用 declarative_authorization 来做到这一点?

谢谢你的帮助!

4

1 回答 1

0

我在我的一个项目中做了类似的事情,但当时发现 dec_auth 真的很混乱。我认为这是你需要做的:

授权规则.rb:

role :moderator do
  has_permission_on :users, :to => :index
end

用户模型:

class User < ActiveRecord::Base
  using_access_control
end

控制器:

@users = User.with_permissions_to(:index)

如果这不起作用,请告诉我。

于 2011-02-16T16:28:48.810 回答