module SimpleAcl

Constants

VERSION

Public Class Methods

included(base) click to toggle source
# File lib/simple_acl.rb, line 5
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

acl_action() click to toggle source
# File lib/simple_acl.rb, line 56
def acl_action
  Thread.current[:acl_action] ||= (defined?(params) && params.is_a?(Hash)) ? params[:action] : nil
end
acl_action=(action) click to toggle source

@param action used for the assertion

# File lib/simple_acl.rb, line 52
def acl_action=(action)
  Thread.current[:acl_action] = action
end
acl_current_role() click to toggle source
# File lib/simple_acl.rb, line 47
def acl_current_role
  Thread.current[:acl_current_role] ||= defined?(current_role) ? current_role : nil
end
acl_current_role=(current_role) click to toggle source

@param current_role used for the assertion

# File lib/simple_acl.rb, line 43
def acl_current_role=(current_role)
  Thread.current[:acl_current_role] = current_role
end
acl_values() click to toggle source
# File lib/simple_acl.rb, line 38
def acl_values
  Thread.current[:acl_values] ||= { params: (defined?(params) ? params : nil) }
end
acl_values=(values) click to toggle source

@param values used for custom lambda assertion

# File lib/simple_acl.rb, line 34
def acl_values=(values)
  Thread.current[:acl_values] = values
end
do_acl() click to toggle source

@return True is success, raise ExceptionUnauthorized otherwise

# File lib/simple_acl.rb, line 61
def do_acl
  return Acl.unauthorized unless self.class.acl

  begin
    self.class.acl.check_acl(acl_current_role, acl_action, acl_values)
    self.class.acl.filter_params(acl_current_role, acl_values[:params])
  ensure
    # in case of Thread,current is not cleaned
    Thread.current[:acl_action] = nil
    Thread.current[:acl_current_role] = nil
    Thread.current[:acl_values] = nil
  end
end