lib/miau.rb in miau-1.0.3 vs lib/miau.rb in miau-1.1.1
- old
+ new
@@ -2,10 +2,11 @@
require "active_support/concern"
require "miau/version"
require "miau/error"
require "miau/storage"
+require "miau/run"
require "miau/application_policy"
module Miau
extend ActiveSupport::Concern
@@ -18,41 +19,41 @@
def authorize!(resource = nil, hsh = {})
@_miau_authorization_performed = true
return true if authorized?(resource, hsh)
- klass, action = klass_action(hsh)
+ klass, action = klass_action
msg = "class <#{klass} action <#{action}>"
- raise Miau::NotAuthorizedError, msg
+ raise NotAuthorizedError, msg
end
def authorized?(resource = nil, hsh = {})
- klass, action = klass_action(hsh)
- Miau::PolicyStorage.instance.run(klass, action, miau_user, resource)
+ klass, action = klass_action
+ PolicyRun.instance.run(klass, action, miau_user, resource)
end
def miau_user
current_user
end
- def skip_authorization
- @_miau_authorization_performed = true
- end
-
def verify_authorized
raise AuthorizationNotPerformedError unless miau_authorization_performed?
end
def miau_authorization_performed?
!!@_miau_authorization_performed
end
+ def authorize_controller!
+ name = params[:controller].to_sym
+ policy = PolicyStorage.instance.find_or_create_policy(name)
+ raise NotDefinedError unless policy&.respond_to?(:controller)
+
+ policy.send(:controller)
+ end
+
private
- def klass_action(hsh)
- klass = hsh[:class]
- klass ||= params[:controller]
- action = hsh[:action]
- action ||= params[:action]
- [klass.to_sym, action.to_sym]
+ def klass_action
+ [params[:controller].to_sym, params[:action].to_sym]
end
end