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