Class: Ddr::Auth::AbilityFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/ddr/auth/ability_factory.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(user, env) ⇒ AbilityFactory

Returns a new instance of AbilityFactory.



14
15
16
# File 'lib/ddr/auth/ability_factory.rb', line 14

def initialize(user, env)
  @auth_context = AuthContextFactory.call(user, env)
end

Instance Attribute Details

#auth_contextObject (readonly)

Returns the value of attribute auth_context.



10
11
12
# File 'lib/ddr/auth/ability_factory.rb', line 10

def auth_context
  @auth_context
end

Class Method Details

.call(user = nil, env = nil) ⇒ Object



6
7
8
# File 'lib/ddr/auth/ability_factory.rb', line 6

def self.call(user = nil, env = nil)
  new(user, env).call
end

Instance Method Details

#callObject



18
19
20
21
22
23
24
25
26
# File 'lib/ddr/auth/ability_factory.rb', line 18

def call
  if anonymous?
    AnonymousAbility.new(auth_context)
  elsif superuser?
    SuperuserAbility.new(auth_context)
  else
    default_ability.new(auth_context)
  end
end

#default_abilityObject



28
29
30
# File 'lib/ddr/auth/ability_factory.rb', line 28

def default_ability
  Ddr::Auth::default_ability.constantize
end