Class: SwitchUser::Provider::Base
- Inherits:
-
Object
- Object
- SwitchUser::Provider::Base
show all
- Defined in:
- lib/switch_user/provider/base.rb
Instance Method Summary
collapse
Instance Method Details
#clear_original_user ⇒ Object
55
56
57
|
# File 'lib/switch_user/provider/base.rb', line 55
def clear_original_user
@controller.session.delete(:original_user_scope_identifier)
end
|
#current_user?(user, scope = :user) ⇒ Boolean
59
60
61
|
# File 'lib/switch_user/provider/base.rb', line 59
def current_user?(user, scope = :user)
current_user(scope) == user
end
|
#current_users_without_scope ⇒ Object
6
7
8
9
10
11
|
# File 'lib/switch_user/provider/base.rb', line 6
def current_users_without_scope
SwitchUser.available_scopes.each_with_object([]) do |scope, users|
user = current_user(scope)
users << user if user
end
end
|
#login_exclusive(user, args) ⇒ Object
13
14
15
16
17
18
|
# File 'lib/switch_user/provider/base.rb', line 13
def login_exclusive(user, args)
requested_scope = args.fetch(:scope, :user).to_sym
logout_all
login(user, requested_scope)
end
|
#login_inclusive(user, args) ⇒ Object
20
21
22
23
24
25
|
# File 'lib/switch_user/provider/base.rb', line 20
def login_inclusive(user, args)
requested_scope = args.fetch(:scope, :user).to_sym
logout(requested_scope)
login(user, requested_scope)
end
|
#logout_all ⇒ Object
27
28
29
30
31
|
# File 'lib/switch_user/provider/base.rb', line 27
def logout_all
SwitchUser.available_scopes.each do |scope|
logout(scope)
end
end
|
#original_user ⇒ Object
33
34
35
36
37
|
# File 'lib/switch_user/provider/base.rb', line 33
def original_user
user_identifier = @controller.session[:original_user_scope_identifier]
UserLoader.prepare(scope_identifier: user_identifier).user if user_identifier
end
|
#original_user=(user) ⇒ Object
39
40
41
42
43
44
45
|
# File 'lib/switch_user/provider/base.rb', line 39
def original_user=(user)
user_type = user.class.to_s.underscore
column_name = SwitchUser.available_users_identifiers[user_type.to_sym]
user_identifier = "#{user_type}_#{user.send(column_name)}"
@controller.session[:original_user_scope_identifier] = user_identifier
end
|
#remember_current_user(remember) ⇒ Object
47
48
49
50
51
52
53
|
# File 'lib/switch_user/provider/base.rb', line 47
def remember_current_user(remember)
if remember
self.original_user = current_user
else
clear_original_user
end
end
|