class Authorizy::Core
Public Class Methods
new(user, params, session, cop:)
click to toggle source
# File lib/authorizy/core.rb, line 5 def initialize(user, params, session, cop:) @cop = cop @params = params @session = session @user = user end
Public Instance Methods
access?()
click to toggle source
# File lib/authorizy/core.rb, line 12 def access? return false if @user.blank? return true if @cop.access? || session_permissions.any? { |tuple| route_match?(tuple) } || user_permissions.any? { |tuple| route_match?(tuple) } return @cop.public_send(cop_controller) == true if @cop.respond_to?(cop_controller) false end
Private Instance Methods
action()
click to toggle source
# File lib/authorizy/core.rb, line 26 def action @params[:action].to_s end
controller()
click to toggle source
# File lib/authorizy/core.rb, line 30 def controller @params[:controller].to_s end
cop_controller()
click to toggle source
# File lib/authorizy/core.rb, line 34 def cop_controller controller.sub('/', '__') end
expand(permissions)
click to toggle source
# File lib/authorizy/core.rb, line 38 def expand(permissions) return [] if permissions.blank? Authorizy::Expander.new.expand(permissions) end
route_match?(tuple)
click to toggle source
# File lib/authorizy/core.rb, line 48 def route_match?(tuple) tuple[0] == controller && tuple[1] == action end
session_permissions()
click to toggle source
# File lib/authorizy/core.rb, line 44 def session_permissions expand(@session[:permissions]) end
user_permissions()
click to toggle source
# File lib/authorizy/core.rb, line 52 def user_permissions expand(Authorizy.config.field.call(@user).try(:[], 'permissions')) end