switch_user 1.4.0 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +22 -0
  3. data/Gemfile +2 -0
  4. data/README.md +22 -20
  5. data/Rakefile +2 -0
  6. data/app/controllers/switch_user_controller.rb +25 -11
  7. data/app/helpers/switch_user_helper.rb +16 -19
  8. data/app/views/switch_user/_widget.html.erb +2 -2
  9. data/config/routes.rb +4 -2
  10. data/lib/generators/switch_user/install/install_generator.rb +3 -2
  11. data/lib/generators/switch_user/install/templates/switch_user.rb +8 -6
  12. data/lib/switch_user.rb +22 -21
  13. data/lib/switch_user/base_guard.rb +7 -5
  14. data/lib/switch_user/data_source.rb +8 -8
  15. data/lib/switch_user/lambda_guard.rb +2 -0
  16. data/lib/switch_user/provider.rb +16 -13
  17. data/lib/switch_user/provider/authlogic.rb +6 -6
  18. data/lib/switch_user/provider/base.rb +7 -8
  19. data/lib/switch_user/provider/clearance.rb +8 -6
  20. data/lib/switch_user/provider/devise.rb +5 -3
  21. data/lib/switch_user/provider/dummy.rb +8 -12
  22. data/lib/switch_user/provider/restful_authentication.rb +5 -3
  23. data/lib/switch_user/provider/session.rb +5 -3
  24. data/lib/switch_user/provider/sorcery.rb +8 -9
  25. data/lib/switch_user/rails.rb +7 -3
  26. data/lib/switch_user/rspec.rb +4 -4
  27. data/lib/switch_user/rspec/feature_helpers.rb +13 -14
  28. data/lib/switch_user/user_loader.rb +5 -2
  29. data/lib/switch_user/user_set.rb +14 -9
  30. data/lib/switch_user/version.rb +3 -1
  31. data/spec/controllers/switch_user_controller_spec.rb +24 -27
  32. data/spec/helpers/switch_user_helper_spec.rb +58 -55
  33. data/spec/integration/switch_user_spec.rb +105 -21
  34. data/spec/provider/authlogic_spec.rb +3 -1
  35. data/spec/provider/clearance_spec.rb +3 -1
  36. data/spec/provider/devise_spec.rb +19 -18
  37. data/spec/provider/dummy_spec.rb +4 -3
  38. data/spec/provider/restful_authentication_spec.rb +3 -1
  39. data/spec/provider/session_spec.rb +4 -2
  40. data/spec/provider/sorcery_spec.rb +3 -1
  41. data/spec/provider_spec.rb +3 -1
  42. data/spec/rspec/feature_helpers_spec.rb +38 -37
  43. data/spec/spec_helper.rb +4 -2
  44. data/spec/support/application.rb +35 -23
  45. data/spec/support/provider.rb +13 -11
  46. data/spec/switch_user/data_source_spec.rb +7 -5
  47. data/spec/switch_user/lambda_guard_spec.rb +6 -4
  48. data/spec/switch_user/user_loader_spec.rb +23 -23
  49. data/spec/switch_user/user_set_spec.rb +12 -10
  50. data/spec/switch_user_spec.rb +6 -4
  51. data/switch_user.gemspec +24 -23
  52. metadata +28 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 06adf7119a277108834d59b13db51a1db026d52b
4
- data.tar.gz: 993205a4f732d652bf60d4f083d2d9f0ed54b73a
2
+ SHA256:
3
+ metadata.gz: d8264ad76309cd8d7761b68d34a9b5f6c4b64663375a27914a0904563109e77a
4
+ data.tar.gz: 1c6d21f1da42869a3c5008b0b8ed2b382f9a74f08e572ecfe8aec2502bee77c3
5
5
  SHA512:
6
- metadata.gz: a190126c3a2323ff087712933e3ace25110c624435897c6df8c803959fbd288ac19130c32c90fff7215e38708730de2fa4d8568aced23d756da1b36bdfe975d5
7
- data.tar.gz: 91ab7a7bba1f5535f913e230d8f42a47a9eb84b2575843e91d95ff372631dd3d5cbb1d2e05c91538faa79644f7ac22dc14e810fcc6179adfdc725f1446a77f8f
6
+ metadata.gz: 40ceb0b1424c19eb3bc756449f9e2b001da97cf4128a6cc645f835a851f10ea8acf0db07ab612b15590bd554bc72738dd6320e31a16f283a7bd01b41d5e43d97
7
+ data.tar.gz: 1fe7e2d3d61a4523d31f6697df4280b9715247b1bde06307b99df38ebebf0f92762999849210670c14171031f6cdc3fda39b58e7ad6d926912fe47af35d4d5c1
@@ -1,5 +1,27 @@
1
1
  # Next Release
2
2
 
3
+ ## 1.5.3 (01/26/2021)
4
+
5
+ * Fix `relative_url_root` behaviour
6
+
7
+ ## 1.5.3 (10/20/2020)
8
+
9
+ * Fix zeitwerk autloading issue
10
+
11
+ ## 1.5.2 (03/01/2019)
12
+
13
+ * Clearance has moved their controller methods to be private
14
+
15
+ ## 1.5.1 (10/28/2018)
16
+
17
+ * Respect identifier when storing `original_user`
18
+ * Refactor code by awesomecode.io
19
+
20
+ ## 1.5.0 (10/27/2017)
21
+
22
+ * Allow `SwitchUser.switch_back` to be considered even when not calling `#remember_user`.
23
+ * Use `redirect_back` for rails 5
24
+
3
25
  ## 1.4.0 (10/21/2016)
4
26
 
5
27
  * Add ability to `store_sign_in` info with devise provider
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in switch_user.gemspec
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # switch_user
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/flyerhzm/switch_user.png)](http://travis-ci.org/flyerhzm/switch_user)
3
+ [![Build Status](https://secure.travis-ci.org/flyerhzm/switch_user.svg)](http://travis-ci.org/flyerhzm/switch_user)
4
+ [![AwesomeCode Status for flyerhzm/switch_user](https://awesomecode.io/projects/5f029f36-047b-4332-8405-9c7913b195bc/status)](https://awesomecode.io/repos/flyerhzm/switch_user)
4
5
 
5
6
  Inspired from [hobo][0], switch_user provides a convenient way to switch current user without needing to log out and log in manually.
6
7
 
@@ -14,7 +15,7 @@ switch_user is very useful in such use cases
14
15
 
15
16
  ## Example
16
17
 
17
- Visit here: <http://switch-user-example.heroku.com>, switch the current user in the select box.
18
+ Visit here: <http://switch-user-example.herokuapp.com/admin>, switch the current user in the select box.
18
19
 
19
20
  And source code here: <https://github.com/flyerhzm/switch_user_example>
20
21
 
@@ -24,6 +25,9 @@ Add in Gemfile.
24
25
  ```ruby
25
26
  gem "switch_user"
26
27
  ```
28
+
29
+ If you get the following error: **undefined method `before_action' for SwitchUserController:Class**, you are probably using an older version of Rails (<4). You can use this gem: https://github.com/pschambacher/rails3-before_action
30
+
27
31
  ## Usage
28
32
 
29
33
  Add following code into your layout page.
@@ -69,7 +73,7 @@ SwitchUser.setup do |config|
69
73
  # available_users is a hash,
70
74
  # key is the model name of user (:user, :admin, or any name you use),
71
75
  # value is a block that return the users that can be switched.
72
- config.available_users = { :user => lambda { User.all } } # use User.scoped instead for rails 3.2
76
+ config.available_users = { user: -> { User.all } } # use User.scoped instead for rails 3.2
73
77
 
74
78
  # available_users_identifiers is a hash,
75
79
  # keys in this hash should match a key in the available_users hash
@@ -77,55 +81,55 @@ SwitchUser.setup do |config|
77
81
  # defaults to id
78
82
  # this hash is to allow you to specify a different column to
79
83
  # expose for instance a username on a User model instead of id
80
- config.available_users_identifiers = { :user => :id }
84
+ config.available_users_identifiers = { user: :id }
81
85
 
82
86
  # available_users_names is a hash,
83
87
  # keys in this hash should match a key in the available_users hash
84
88
  # value is the column name which will be displayed in select box
85
- config.available_users_names = { :user => :email }
89
+ config.available_users_names = { user: :email }
86
90
 
87
91
  # controller_guard is a block,
88
92
  # if it returns true, the request will continue,
89
93
  # else the request will be refused and returns "Permission Denied"
90
94
  # if you switch from "admin" to user, the current_user param is "admin"
91
- config.controller_guard = lambda { |current_user, request| Rails.env.development? }
95
+ config.controller_guard = ->(current_user, request) { Rails.env.development? }
92
96
 
93
97
  # view_guard is a block,
94
98
  # if it returns true, the switch user select box will be shown,
95
99
  # else the select box will not be shown
96
100
  # if you switch from admin to "user", the current_user param is "user"
97
- config.view_guard = lambda { |current_user, request| Rails.env.development? }
101
+ config.view_guard = ->(current_user, request) { Rails.env.development? }
98
102
 
99
103
  # redirect_path is a block, it returns which page will be redirected
100
104
  # after switching a user.
101
- config.redirect_path = lambda { |request, params| '/' }
105
+ config.redirect_path = ->(request, params) { '/' }
102
106
  end
103
107
  ```
104
108
  If you need to override the default configuration, run <code>rails g switch_user:install</code> and a copy of the configuration file will be copied to <code>config/initializers/switch_user.rb</code> in your project.
105
109
 
106
110
  If you want to switch both available users and available admins
107
111
  ```ruby
108
- config.available_users = { :user => lambda { User.available }, :admin => lambda { Admin.available } }
112
+ config.available_users = { :user => -> { User.available }, :admin => -> { Admin.available } }
109
113
  ```
110
114
  If you want to use name column as the user identifier
111
115
  ```ruby
112
- config.available_users_identifiers => { :user => :name }
116
+ config.available_users_identifiers => { user: :name }
113
117
  ```
114
118
  If you want to display the login field in switch user select box
115
119
  ```ruby
116
- config.available_users_names = { :user => :login }
120
+ config.available_users_names = { user: :login }
117
121
  ```
118
122
  If you only allow switching from admin to user in production environment
119
123
  ```ruby
120
- config.controller_guard = lambda { |current_user, request| Rails.env == "production" and current_user.admin? }
124
+ config.controller_guard = ->(current_user, request) { Rails.env.production? && current_user.admin? }
121
125
  ```
122
126
  If you only want to display switch user select box for admins in production environment
123
127
  ```ruby
124
- config.view_guard = lambda { |current_user, request| Rails.env == "production" and current_user and current_user.admin? }
128
+ config.view_guard = ->(current_user, request) { Rails.env.production? && current_user && current_user.admin? }
125
129
  ```
126
130
  If you want to redirect user to "/dashboard" page
127
131
  ```ruby
128
- config.redirect_path = lambda { |request, params| "/dashboard" }
132
+ config.redirect_path = ->(request, params) { "/dashboard" }
129
133
  ```
130
134
  If you want to hide a 'Guest' item in the helper dropdown list
131
135
  ```ruby
@@ -137,16 +141,14 @@ Sometimes you'll want to be able to switch to an unprivileged user and then back
137
141
  You will need to make the following modifications to your configuration:
138
142
  ```ruby
139
143
  config.switch_back = true
140
- config.controller_guard = lambda { |current_user, request, original_user|
141
- current_user && current_user.admin? || original_user && original_user.super_admin?
142
- }
144
+ config.controller_guard = ->(current_user, request, original_user) { current_user && current_user.admin? || original_user && original_user.super_admin? }
143
145
  # Do something similar for the view_guard as well.
144
146
  ```
145
147
  This example would allow an admin user to user switch_user, but would only let you switch back to another user if the original user was a super admin.
146
148
 
147
149
  ## Using SwitchUser with RSpec and Capybara
148
150
 
149
- Add the following code to spec/support/switch_user.rb or spec/spec_helper.rb :
151
+ Add the following code to spec/support/switch_user.rb or spec/spec_helper.rb:
150
152
 
151
153
  ```ruby
152
154
  require 'switch_user/rspec'
@@ -157,7 +159,7 @@ You can now write your specs like so :
157
159
  ```ruby
158
160
  feature "Your feature", type: :feature do
159
161
  background do
160
- @user = User.make(:email => 'user@example.com', :password => 'password')
162
+ @user = User.make(email: 'user@example.com', password: 'password')
161
163
  end
162
164
 
163
165
  scenario "Your scenario" do
@@ -189,6 +191,6 @@ This feature should be used with extreme caution because of the security implica
189
191
 
190
192
  ## Credit
191
193
 
192
- Copyright © 2010 - 2015 Richard Huang (flyerhzm@gmail.com), released under the MIT license
194
+ Copyright © 2010 - 2017 Richard Huang (flyerhzm@gmail.com), released under the MIT license
193
195
 
194
196
  [0]: https://github.com/tablatom/hobo
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  Bundler::GemHelper.install_tasks
@@ -1,25 +1,39 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class SwitchUserController < ApplicationController
2
- before_action :developer_modes_only
4
+ before_action :developer_modes_only, :switch_back
3
5
 
4
6
  def set_current_user
5
7
  handle_request(params)
6
8
 
7
- redirect_to(SwitchUser.redirect_path.call(request, params))
9
+ redirect_path = SwitchUser.redirect_path.call(request, params)
10
+ if Rails.version.to_i >= 5 && redirect_path == :back
11
+ redirect_back(fallback_location: root_path)
12
+ else
13
+ redirect_to(redirect_path)
14
+ end
8
15
  end
9
16
 
10
17
  def remember_user
11
- # NOOP unless the user has explicity enabled this feature
12
- if SwitchUser.switch_back
13
- provider.remember_current_user(params[:remember] == "true")
18
+ redirect_path = SwitchUser.redirect_path.call(request, params)
19
+ if Rails.version.to_i >= 5 && redirect_path == :back
20
+ redirect_back(fallback_location: root_path)
21
+ else
22
+ redirect_to(redirect_path)
14
23
  end
15
-
16
- redirect_to(SwitchUser.redirect_path.call(request, params))
17
24
  end
18
25
 
19
26
  private
20
27
 
28
+ def switch_back
29
+ if SwitchUser.switch_back
30
+ provider.remember_current_user(true) if params[:remember] == 'true'
31
+ provider.remember_current_user(false) if params[:remember] == 'false'
32
+ end
33
+ end
34
+
21
35
  def developer_modes_only
22
- raise ActionController::RoutingError.new('Do not try to hack us.') unless available?
36
+ raise ActionController::RoutingError, 'Do not try to hack us.' unless available?
23
37
  end
24
38
 
25
39
  def available?
@@ -36,14 +50,14 @@ class SwitchUserController < ApplicationController
36
50
  return
37
51
  end
38
52
  if SwitchUser.login_exclusive
39
- provider.login_exclusive(record.user, :scope => record.scope)
53
+ provider.login_exclusive(record.user, scope: record.scope)
40
54
  else
41
- provider.login_inclusive(record.user, :scope => record.scope)
55
+ provider.login_inclusive(record.user, scope: record.scope)
42
56
  end
43
57
  end
44
58
  end
45
59
 
46
- # TODO make helper methods, so this can be eliminated from the
60
+ # TODO: make helper methods, so this can be eliminated from the
47
61
  # SwitchUserHelper
48
62
  def provider
49
63
  SwitchUser::Provider.init(self)
@@ -1,34 +1,31 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SwitchUserHelper
2
4
  SelectOption = Struct.new(:label, :scope_id)
5
+
3
6
  def switch_user_select(options = {})
4
7
  return unless available?
5
8
 
6
9
  selected_user = nil
7
10
 
8
- grouped_options_container = {}.tap do |h|
9
- SwitchUser.all_users.each do |record|
10
- scope = record.is_a?(SwitchUser::GuestRecord) ? :Guest : record.scope.to_s.capitalize
11
- h[scope] ||= []
12
- h[scope] << [record.label, record.scope_id]
13
-
14
- if selected_user.nil?
15
- unless record.is_a?(SwitchUser::GuestRecord)
16
- if provider.current_user?(record.user, record.scope)
17
- selected_user = record.scope_id
18
- end
19
- end
11
+ grouped_options_container =
12
+ {}.tap do |h|
13
+ SwitchUser.all_users.each do |record|
14
+ scope = record.is_a?(SwitchUser::GuestRecord) ? :Guest : record.scope.to_s.capitalize
15
+ h[scope] ||= []
16
+ h[scope] << [record.label, record.scope_id]
17
+
18
+ next unless selected_user.nil?
19
+ next if record.is_a?(SwitchUser::GuestRecord)
20
+
21
+ selected_user = record.scope_id if provider.current_user?(record.user, record.scope)
20
22
  end
21
23
  end
22
- end
23
24
 
24
25
  option_tags = grouped_options_for_select(grouped_options_container.to_a, selected_user)
25
26
 
26
- render :partial => "switch_user/widget",
27
- :locals => {
28
- :option_tags => option_tags,
29
- :classes => options[:class],
30
- :styles => options[:style],
31
- }
27
+ render partial: 'switch_user/widget',
28
+ locals: { option_tags: option_tags, classes: options[:class], styles: options[:style] }
32
29
  end
33
30
 
34
31
  private
@@ -1,4 +1,4 @@
1
1
  <% if SwitchUser.switch_back %>
2
- <%= check_box_tag "remember_user", "remember_user", provider.original_user.present?, :onchange => "location.href = '#{ActionController::Base.relative_url_root || '/'}switch_user/remember_user?remember=' + encodeURIComponent(this.checked)" %>
2
+ <%= check_box_tag "remember_user", "remember_user", provider.original_user.present?, onchange: "location.href = '#{ActionController::Base.relative_url_root}/switch_user/remember_user?remember=' + encodeURIComponent(this.checked)" %>
3
3
  <% end %>
4
- <%= select_tag "switch_user_identifier", option_tags, :onchange => "location.href = '#{ActionController::Base.relative_url_root || '/'}switch_user?scope_identifier=' + encodeURIComponent(this.options[this.selectedIndex].value)", :class => classes, :style => styles %>
4
+ <%= select_tag "switch_user_identifier", option_tags, onchange: "location.href = '#{ActionController::Base.relative_url_root}/switch_user?scope_identifier=' + encodeURIComponent(this.options[this.selectedIndex].value)", class: classes, style: styles %>
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.routes.draw do
2
- get :switch_user, :to => 'switch_user#set_current_user'
3
- get 'switch_user/remember_user', :to => 'switch_user#remember_user'
4
+ get :switch_user, to: 'switch_user#set_current_user'
5
+ get 'switch_user/remember_user', to: 'switch_user#remember_user'
4
6
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SwitchUser
2
4
  module Generators
3
5
  class InstallGenerator < Rails::Generators::Base
4
- TEMPLATES_PATH = File.expand_path('../templates', __FILE__)
6
+ TEMPLATES_PATH = File.expand_path('templates', __dir__)
5
7
  source_root File.expand_path(Engine.root, __FILE__)
6
8
 
7
9
  def install_initializer
@@ -10,4 +12,3 @@ module SwitchUser
10
12
  end
11
13
  end
12
14
  end
13
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  SwitchUser.setup do |config|
2
4
  # provider may be :devise, :authlogic, :clearance, :restful_authentication, :sorcery, or :session
3
5
  config.provider = :devise
@@ -5,7 +7,7 @@ SwitchUser.setup do |config|
5
7
  # available_users is a hash,
6
8
  # key is the model name of user (:user, :admin, or any name you use),
7
9
  # value is a block that return the users that can be switched.
8
- config.available_users = { :user => lambda { User.all } }
10
+ config.available_users = { user: -> { User.all } }
9
11
 
10
12
  # available_users_identifiers is a hash,
11
13
  # keys in this hash should match a key in the available_users hash
@@ -13,28 +15,28 @@ SwitchUser.setup do |config|
13
15
  # defaults to id
14
16
  # this hash is to allow you to specify a different column to
15
17
  # expose for instance a username on a User model instead of id
16
- config.available_users_identifiers = { :user => :id }
18
+ config.available_users_identifiers = { user: :id }
17
19
 
18
20
  # available_users_names is a hash,
19
21
  # keys in this hash should match a key in the available_users hash
20
22
  # value is the column name which will be displayed in select box
21
- config.available_users_names = { :user => :email }
23
+ config.available_users_names = { user: :email }
22
24
 
23
25
  # controller_guard is a block,
24
26
  # if it returns true, the request will continue,
25
27
  # else the request will be refused and returns "Permission Denied"
26
28
  # if you switch from "admin" to user, the current_user param is "admin"
27
- config.controller_guard = lambda { |current_user, request| Rails.env.development? }
29
+ config.controller_guard = ->(_current_user, _request) { Rails.env.development? }
28
30
 
29
31
  # view_guard is a block,
30
32
  # if it returns true, the switch user select box will be shown,
31
33
  # else the select box will not be shown
32
34
  # if you switch from admin to "user", the current_user param is "user"
33
- config.view_guard = lambda { |current_user, request| Rails.env.development? }
35
+ config.view_guard = ->(_current_user, _request) { Rails.env.development? }
34
36
 
35
37
  # redirect_path is a block, it returns which page will be redirected
36
38
  # after switching a user.
37
- config.redirect_path = lambda { |request, params| '/' }
39
+ config.redirect_path = ->(_request, _params) { '/' }
38
40
 
39
41
  # helper_with_guest is a boolean value, if it set to false
40
42
  # the guest item in the helper won't be shown
@@ -1,16 +1,16 @@
1
- if defined?(Rails)
2
- require 'switch_user/rails'
3
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'switch_user/rails' if defined?(Rails)
4
4
 
5
5
  module SwitchUser
6
6
  require 'switch_user/data_source'
7
- autoload :UserSet, "switch_user/user_set"
8
- autoload :UserLoader, "switch_user/user_loader"
9
- autoload :Provider, "switch_user/provider"
10
- autoload :BaseGuard, "switch_user/base_guard"
7
+ autoload :UserSet, 'switch_user/user_set'
8
+ autoload :UserLoader, 'switch_user/user_loader'
9
+ autoload :Provider, 'switch_user/provider'
10
+ autoload :BaseGuard, 'switch_user/base_guard'
11
11
  autoload :LambdaGuard, 'switch_user/lambda_guard'
12
12
 
13
- class InvalidScope < Exception; end
13
+ class InvalidScope < RuntimeError; end
14
14
 
15
15
  mattr_accessor :provider
16
16
  mattr_accessor :available_users
@@ -23,7 +23,7 @@ module SwitchUser
23
23
  mattr_accessor :login_exclusive
24
24
  mattr_accessor :controller_guard
25
25
  mattr_accessor :view_guard
26
- mattr_reader :guard_class
26
+ mattr_reader :guard_class
27
27
 
28
28
  def self.setup
29
29
  yield self
@@ -42,24 +42,25 @@ module SwitchUser
42
42
  end
43
43
 
44
44
  def self.data_sources
45
- sources = available_users.map do |scope, loader|
46
- identifier = available_users_identifiers.fetch(scope)
47
- name = available_users_names.fetch(scope)
48
- DataSource.new(loader, scope, identifier, name)
49
- end
45
+ sources =
46
+ available_users.map do |scope, loader|
47
+ identifier = available_users_identifiers.fetch(scope)
48
+ name = available_users_names.fetch(scope)
49
+ DataSource.new(loader, scope, identifier, name)
50
+ end
50
51
  sources.unshift(GuestDataSource.new) if helper_with_guest
51
52
  DataSources.new(sources)
52
53
  end
53
54
 
54
55
  def self.reset_config
55
56
  self.provider = :devise
56
- self.available_users = { :user => lambda { User.all } }
57
- self.available_users_identifiers = { :user => :id }
58
- self.available_users_names = { :user => :email }
59
- self.guard_class = "SwitchUser::LambdaGuard"
60
- self.controller_guard = lambda { |current_user, request| Rails.env.development? }
61
- self.view_guard = lambda { |current_user, request| Rails.env.development? }
62
- self.redirect_path = lambda { |request, params| request.env["HTTP_REFERER"] ? :back : root_path }
57
+ self.available_users = { user: -> { User.all } }
58
+ self.available_users_identifiers = { user: :id }
59
+ self.available_users_names = { user: :email }
60
+ self.guard_class = 'SwitchUser::LambdaGuard'
61
+ self.controller_guard = ->(_current_user, _request) { Rails.env.development? }
62
+ self.view_guard = ->(_current_user, _request) { Rails.env.development? }
63
+ self.redirect_path = ->(request, _params) { request.env['HTTP_REFERER'] ? :back : root_path }
63
64
  self.session_key = :user_id
64
65
  self.helper_with_guest = true
65
66
  self.switch_back = false