Sha256: c9924915c33c3eda334c6976e14909b0abe537102ced087d9aa7195888297126
Contents?: true
Size: 790 Bytes
Versions: 2
Compression:
Stored size: 790 Bytes
Contents
require "active_support/core_ext/module/delegation" require "active_support/core_ext/string/inflections" require "action_authorization/version" require "action_authorization/base_policy" require "action_authorization/authorization_failure" module ActionAuthorization def self.included(base) base.class_eval do helper_method :policy end end protected def authorize(object, action: action_name, policy_class: nil) if policy(object, policy_class).send("#{action}?") object else raise ActionAuthorization::AuthorizationFailure end end def policy(object, policy_class = nil) (policy_class || policy_class_for(object)).new(current_user, object) end def policy_class_for(object) "#{object.class.name}Policy".constantize end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
action_authorization-0.3.0 | lib/action_authorization.rb |
action_authorization-0.2.3 | lib/action_authorization.rb |