2012-09-11 78 views
1

我使用聲明式授權來管理應用程序中的用戶權限。
我有一個後期模型,可以由它的所有者管理。聲明式授權:僅允許更新某些字段

has_permission_on :post, :to => :manage do 
    if_attribute :creator_id => is{user.id} 
end 

不過,我也有我的模型如下:

class Post < ActiveRecord::Base 
    def publish! 
    update_attributes(:published, true) 
    end 
end 

我想允許一些用戶,誰都不崗位的創造者將其發佈。
雖然我不能只允許他們更新對象,但他們不應該能夠更改發佈狀態以外的其他字段。

雖然似乎沒有辦法允許只編輯模型中的某些字段。

回答

0

我已經通過使用模型授權和控制器修復了問題。
我允許所有創建者和管理員編輯帖子。
然後,在控制器中,我指定只有創建者可以訪問更新操作,並且只有管理員可以訪問發佈操作。