Class: DecisionAgent::Auth::PermissionChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/decision_agent/auth/permission_checker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(adapter: nil) ⇒ PermissionChecker

Returns a new instance of PermissionChecker.



8
9
10
# File 'lib/decision_agent/auth/permission_checker.rb', line 8

def initialize(adapter: nil)
  @adapter = adapter || DefaultAdapter.new
end

Instance Attribute Details

#adapterObject (readonly)

Returns the value of attribute adapter.



6
7
8
# File 'lib/decision_agent/auth/permission_checker.rb', line 6

def adapter
  @adapter
end

Instance Method Details

#active?(user) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/decision_agent/auth/permission_checker.rb', line 32

def active?(user)
  @adapter.active?(user)
end

#can?(user, permission, resource = nil) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/decision_agent/auth/permission_checker.rb', line 12

def can?(user, permission, resource = nil)
  @adapter.can?(user, permission, resource)
end

#has_role?(user, role) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/decision_agent/auth/permission_checker.rb', line 22

def has_role?(user, role)
  @adapter.has_role?(user, role)
end

#require_permission!(user, permission, resource = nil) ⇒ Object



16
17
18
19
20
# File 'lib/decision_agent/auth/permission_checker.rb', line 16

def require_permission!(user, permission, resource = nil)
  raise PermissionDeniedError, "User does not have permission: #{permission}" unless can?(user, permission, resource)

  true
end

#require_role!(user, role) ⇒ Object



26
27
28
29
30
# File 'lib/decision_agent/auth/permission_checker.rb', line 26

def require_role!(user, role)
  raise PermissionDeniedError, "User does not have role: #{role}" unless has_role?(user, role)

  true
end

#user_email(user) ⇒ Object



40
41
42
# File 'lib/decision_agent/auth/permission_checker.rb', line 40

def user_email(user)
  @adapter.user_email(user)
end

#user_id(user) ⇒ Object



36
37
38
# File 'lib/decision_agent/auth/permission_checker.rb', line 36

def user_id(user)
  @adapter.user_id(user)
end