我遇到的问题几乎与 维克多·马丁 (您可以在这里看到问题)。

我有声明性的授权为几乎所有不涉及使用条件的所有内容都可以使用。例如

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_useruser 您可以在您的 authorization_rules.rb 文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top