2011-02-16 125 views
1

聲明性授權有一點問題。我有一個has_and_belongs_to_many關聯的用戶和角色模型。聲明性授權和has_and_belongs_to_many

我已經創建了一個名爲角色:主持人,我authorization_rules.rb

是否有可能與作用主持人用戶只能獲得具有分配給它的主持人角色的用戶? - > 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做到這一點?

感謝您的幫助!

回答

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) 

讓我知道那並不沒有工作。

+0

感謝您的回覆!首先,我完全忘了在我的用戶模型中添加「using_access_control」...我也忘了告訴你,我在我的UsersController中使用了一個管理員名稱空間...我必須爲我的authorization_rules添加一個新的權限,稱爲用戶...它現在正在工作,但是 - 可以在模型中使用命名空間嗎?!?...我想我必須學習更多關於這種語言的知識^^ – 2011-02-16 18:09:58