Class: RubyUIAdmin::Services::AuthorizationService

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_ui_admin/services/authorization_service.rb

Overview

Facade over the configured authorization adapter (config.authorization_client, default action_policy). Resolves the adapter and delegates, so controllers/views/resources stay backend-agnostic. The backend logic lives in RubyUIAdmin::Authorization::*Adapter.

Instance Method Summary collapse

Constructor Details

#initialize(user, record = nil, policy_class: nil, true_user: nil) ⇒ AuthorizationService

Returns a new instance of AuthorizationService.



9
10
11
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 9

def initialize(user, record = nil, policy_class: nil, true_user: nil)
  @adapter = RubyUIAdmin::Authorization.build(user, record, policy_class: policy_class, true_user: true_user)
end

Instance Method Details

#allowed?(rule, record: nil) ⇒ Boolean

Returns:

  • (Boolean)


17
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 17

def allowed?(rule, record: nil) = @adapter.allowed?(rule, record: record)

#apply_policy(scope) ⇒ Object



19
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 19

def apply_policy(scope) = @adapter.apply_policy(scope)

#authorize_action(rule, record: nil, raise_exception: true) ⇒ Object



13
14
15
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 13

def authorize_action(rule, record: nil, raise_exception: true)
  @adapter.authorize_action(rule, record: record, raise_exception: raise_exception)
end

#defines_rule?(rule) ⇒ Boolean

Returns:

  • (Boolean)


23
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 23

def defines_rule?(rule) = @adapter.defines_rule?(rule)

#has_rule?(rule, record: nil) ⇒ Boolean

Returns:

  • (Boolean)


21
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 21

def has_rule?(rule, record: nil) = @adapter.has_rule?(rule, record: record)

#policy_classObject



35
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 35

def policy_class = @adapter.policy_class

#recordObject



34
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 34

def record = @adapter.record

#set_record(record) ⇒ Object



27
28
29
30
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 27

def set_record(record)
  @adapter.set_record(record)
  self
end

#true_userObject



25
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 25

def true_user = @adapter.true_user

#userObject

Context readers (kept for backward compatibility with any caller reading them).



33
# File 'lib/ruby_ui_admin/services/authorization_service.rb', line 33

def user = @adapter.user