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

时间:2012-09-11 15:37:52

标签: ruby-on-rails ruby declarative-authorization

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

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

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

似乎没有办法允许仅编辑模型中的某些字段。

1 个答案:

答案 0 :(得分:0)

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