【发布时间】:2013-02-24 17:05:27
【问题描述】:
我对 Rails 很陌生,我正在尝试设置一个授权系统,允许我控制用户可以修改模型的哪些属性。
我将 declarative_authorization 用于基于角色的授权。这已经为我提供了相当多的功能:根据用户的角色限制用户在视图中可以看到的内容、他可以在控制器中执行的操作以及基本上允许他在模型上执行的操作。
但是,我只是找不到关于如何根据角色限制对模型的特定属性的操作的答案。
示例: 允许具有 :guest 角色的用户更新用户帐户的某些属性:当他尝试使用错误密码登录时,我想更新用户帐户的特定字段,这将使该帐户处于非活动状态。但是 :guest 角色永远不能更改此用户帐户的昵称。
因此,我在我的用户模型中使用“using_access_control”方法,但这要么赋予帐户所有属性的“更新”权限,要么根本没有“更新”权限,具体取决于角色。
我知道“strong_parameters”是一个基本上可以提供此类功能的 gem,但我不知道如何将“declarative_authorization”和“strong_parameters”结合在一起,或者如何简单地使用“declarative_authorization”。
有人可以指点我的解决方案吗?
非常感谢!
【问题讨论】:
标签: ruby-on-rails authorization declarative-authorization strong-parameters