Ruby on rails 具有声明式授权的\u权限\u,非属性条件

Ruby on rails 具有声明式授权的\u权限\u,非属性条件,ruby-on-rails,declarative-authorization,Ruby On Rails,Declarative Authorization,如果在我的应用程序中设置了会话变量,我想授权特定操作。我不知道该怎么做。比如: has_permission_on :admin, :to => :action do true if session[:key] end 我不明白如何完成这项基本任务。感谢您的帮助。您想在函数上使用before\u过滤器,例如 before_filter :authorize, :only => :action private def authorize unless session[:key]

如果在我的应用程序中设置了会话变量,我想授权特定操作。我不知道该怎么做。比如:

has_permission_on :admin, :to => :action do
  true if session[:key]
end

我不明白如何完成这项基本任务。感谢您的帮助。

您想在函数上使用before\u过滤器,例如

before_filter :authorize, :only => :action

private
def authorize
unless session[:key]
flash[:notice] = "Cannot do this"
redirect_to(:controller => "controller", :action => "otheraction")
end

但这完全绕过了声明性身份验证。我只是不明白重点。例如,在我的测试中,当我想知道用户是否有权访问某个资源时,我应该能够使用您提到的before_过滤器执行以下操作:Authorization::Engine.instance.permit?(:action,:context=>:controller,:object=>obj)检查访问时,上面的代码会出现误报。