Module: Banken

Extended by:
ActiveSupport::Concern
Defined in:
lib/banken.rb,
lib/banken/error.rb,
lib/banken/version.rb,
lib/banken/loyalty_finder.rb,
lib/generators/banken/install/install_generator.rb,
lib/generators/banken/loyalty/loyalty_generator.rb

Defined Under Namespace

Modules: Generators Classes: AuthorizationNotPerformedError, Error, LoyaltyFinder, LoyaltyScopingNotPerformedError, NotAuthorizedError, NotDefinedError

Constant Summary collapse

VERSION =
"1.0.3"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.loyalty!(controller_name, user, record = nil) ⇒ Object



28
29
30
# File 'lib/banken.rb', line 28

def loyalty!(controller_name, user, record=nil)
  LoyaltyFinder.new(controller_name).loyalty!.new(user, record)
end

Instance Method Details

#authorize!(record = nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/banken.rb', line 33

def authorize!(record=nil)
  @_banken_authorization_performed = true

  loyalty = loyalty(record)
  unless loyalty.public_send(banken_query_name)
    raise NotAuthorizedError.new(controller: banken_controller_name, query: banken_query_name, loyalty: loyalty)
  end

  true
end

#banken_authorization_performed?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/banken.rb', line 66

def banken_authorization_performed?
  !!@_banken_authorization_performed
end

#banken_loyalty_authorized?Boolean

Deprecated.

Use banken_authorization_performed? instead.

Returns:

  • (Boolean)


71
72
73
74
# File 'lib/banken.rb', line 71

def banken_loyalty_authorized?
  ActiveSupport::Deprecation.warn('banken_loyalty_authorized? is deprecated, use banken_authorization_performed? instead.')
  banken_authorization_performed?
end

#banken_userObject



54
55
56
# File 'lib/banken.rb', line 54

def banken_user
  current_user
end

#loyalty(record = nil, controller_name = nil) ⇒ Object



49
50
51
52
# File 'lib/banken.rb', line 49

def loyalty(record=nil, controller_name=nil)
  controller_name = banken_controller_name unless controller_name
  Banken.loyalty!(controller_name, banken_user, record)
end

#permitted_attributes(record) ⇒ Object



44
45
46
47
# File 'lib/banken.rb', line 44

def permitted_attributes(record)
  name = record.class.to_s.demodulize.underscore
  params.require(name).permit(loyalty(record).permitted_attributes)
end

#skip_authorizationObject



58
59
60
# File 'lib/banken.rb', line 58

def skip_authorization
  @_banken_authorization_performed = true
end

#verify_authorizedObject



62
63
64
# File 'lib/banken.rb', line 62

def verify_authorized
  raise AuthorizationNotPerformedError unless banken_authorization_performed?
end