声明授权和IF_ATTRIBUTE不起作用
题
我遇到的问题几乎与 维克多·马丁 (您可以在这里看到问题)。
我有声明性的授权为几乎所有不涉及使用条件的所有内容都可以使用。例如
has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { current_user }
end
声明授权是否有任何共同的陷阱?我正在使用authlogic,并且在应用程序控制器中的“ current_user”方法可疑可能是问题的来源。
解决方案
请注意,如果您在控制器中使用“ filter_access_to”,则需要确保拥有”:attribute_check => true”。没有它,条件的“ IF_ATTRIBUTE”声明无能为力。
有关此的更多详细信息 在声明授权文档中
其他提示
如果还没有,则需要将其添加到您的Application Controller中:
before_filter :set_current_user
protected
def set_current_user
Authorization.current_user = current_user
end
然后,您的规则看起来像这样:
has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { user }
end
据我所知 current_user
在您的示例中的意思,但这是您的实例 Authorization.current_user
叫 user
您可以在您的 authorization_rules.rb
文件。
不隶属于 StackOverflow