effective_resources 2.4.6 → 2.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b34bdcaa231b87cff3e1f0ed43b8a1ecf7a8de5dfb784dae9dfcc677bb2a3754
4
- data.tar.gz: 182008fc51596a0039e957fe9dfb49531c5e5b58466e4bf8d4f4d3f63d0091dd
3
+ metadata.gz: 59a393d33cfa210550260fe050c11b1eab54ff0b7f534391aad7bb2058a01ea0
4
+ data.tar.gz: 5edbfb9aa5538100895dc35e2fb4806a5915c730862d9e312f4900e858914b66
5
5
  SHA512:
6
- metadata.gz: b8a5e3bec0689b942e6bb95b8dc1ced888435dba9dc423a2b76684a88ce771ac7c1cbb6db6313f9f3c1454b4bee730d7571ab7a55ada80fcc341c042a729deb1
7
- data.tar.gz: 0c983b39196510bbc506a2c8e6090310530632a015f68dfb5f99d13f65d4f1bac43dbbf82ebb6154eb4be7322562f7ea8f3903eced1ef1fb92f01a3b0762b7f8
6
+ metadata.gz: bb45c37f2c5e2afef660925a218aceb7ee93f6ed7cc3e670c82e002edce9c9670e5a93604c677ea792999ecfa14ec93dfc25050de9ff0a66a151cf8ac9ebd568
7
+ data.tar.gz: cd3e71440f3693dcb12278dea707273c974beff4dbd6801546d199d618dc731877f4487726a8c4519f4beb1d3492c727f693dc5d5b9a706dfee6dc2e214d6b88
@@ -0,0 +1,25 @@
1
+ module Effective
2
+ module ImpersonationController
3
+ module Destroy
4
+
5
+ def destroy
6
+ @user = current_user.class.find(session[:impersonation_user_id])
7
+ redirect_path = after_destroy_impersonate_path_for(@user)
8
+
9
+ # Reset impersonation
10
+ session[:impersonation_user_id] = nil
11
+ session[:impersonation_original_path] = nil
12
+
13
+ expire_data_after_sign_in!
14
+ warden.session_serializer.store(@user, Devise::Mapping.find_scope!(@user))
15
+
16
+ redirect_to(redirect_path)
17
+ end
18
+
19
+ def after_destroy_impersonate_path_for(user)
20
+ session[:impersonation_original_path].presence || '/admin/users'
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,29 @@
1
+ module Effective
2
+ module ImpersonationController
3
+ module Impersonate
4
+
5
+ def impersonate
6
+ @user = current_user.class.find(params[:id])
7
+ redirect_path = after_impersonate_path_for(@user)
8
+
9
+ authorize! :impersonate, @user
10
+
11
+ # Impersonate
12
+ session[:impersonation_user_id] = current_user.id
13
+ session[:impersonation_original_path] = request.referer.presence || '/admin/users'
14
+
15
+ expire_data_after_sign_in!
16
+ warden.session_serializer.store(@user, Devise::Mapping.find_scope!(@user))
17
+
18
+ @user.touch
19
+
20
+ redirect_to(redirect_path)
21
+ end
22
+
23
+ def after_impersonate_path_for(user)
24
+ try(:dashboard_path) || try(:root_path) || '/'
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.4.6'.freeze
2
+ VERSION = '2.4.7'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.6
4
+ version: 2.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-14 00:00:00.000000000 Z
11
+ date: 2023-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -143,6 +143,8 @@ files:
143
143
  - app/controllers/concerns/effective/crud_controller/save.rb
144
144
  - app/controllers/concerns/effective/crud_controller/submits.rb
145
145
  - app/controllers/concerns/effective/flash_messages.rb
146
+ - app/controllers/concerns/effective/impersonation_controller/destroy.rb
147
+ - app/controllers/concerns/effective/impersonation_controller/impersonate.rb
146
148
  - app/controllers/concerns/effective/select2_ajax_controller.rb
147
149
  - app/controllers/concerns/effective/wizard_controller.rb
148
150
  - app/controllers/concerns/effective/wizard_controller/actions.rb