module Seven::Rails::ControllerHelpers
Public Class Methods
included(cls)
click to toggle source
reuqire methods
current_user abilities_manager ability_check_callback
# File lib/seven/rails/controller_helpers.rb, line 9 def self.included(cls) cls.extend(ClassMethods) end
Public Instance Methods
can?(ability, target = nil)
click to toggle source
# File lib/seven/rails/controller_helpers.rb, line 13 def can?(ability, target = nil) abilities_manager.can?(current_user, ability, target) end
seven_ability_check_filter()
click to toggle source
# File lib/seven/rails/controller_helpers.rb, line 17 def seven_ability_check_filter current_action_name = action_name.to_sym action_checker = self.class.seven_ability_checker[current_action_name] if action_checker target = seven_fetch_target(action_checker[:target]) result = can?(action_checker[:ability], target) ability_check_callback(result, action_checker[:ability], target) else ability_check_callback(false, nil, nil) end end
seven_fetch_target(target_list)
click to toggle source
# File lib/seven/rails/controller_helpers.rb, line 31 def seven_fetch_target(target_list) return if target_list.empty? target_list.each do |t| case t when Symbol, String instance = instance_variable_defined?(t) ? instance_variable_get(t) : nil return instance if instance when Proc result = instance_eval(&t) return result if result else return t end end return nil end