声明性授权:只允许更新某些字段



我使用声明性授权来管理应用程序中的用户权限
我有一个后模型,它的所有者可以管理它。

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

我想允许一些不是帖子创建者的用户发布它。
不过,我不能只允许他们更新对象,除了发布状态之外,他们不应该更改其他字段。

不过,似乎没有办法只允许编辑模型中的某些字段。

我已经通过使用模型授权和控制器授权解决了这个问题
我允许所有创建者和管理员编辑帖子
然后,在控制器中,我指定只有后期创建者可以访问更新操作,只有管理员可以访问发布操作。

最新更新