声明性授权和has_and_belongs_to_many

时间:2011-02-16 14:39:28

标签: ruby declarative-authorization has-and-belongs-to-many

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

我在authorization_rules.rb

中创建了一个名为:moderator的角色

具有角色管理员的用户是否可能只获得分配了主持人角色的用户? - > User.with_permissions_to(:指数)

我认为有可能这样:

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执行此操作?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

authorization_rules.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)

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