我使用声明性授权来管理应用程序中的用户权限
我有一个后模型,它的所有者可以管理它。
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
我想允许一些不是帖子创建者的用户发布它。
不过,我不能只允许他们更新对象,除了发布状态之外,他们不应该更改其他字段。
不过,似乎没有办法只允许编辑模型中的某些字段。
我已经通过使用模型授权和控制器授权解决了这个问题
我允许所有创建者和管理员编辑帖子
然后,在控制器中,我指定只有后期创建者可以访问更新操作,只有管理员可以访问发布操作。