effective_resources 2.28.0 → 2.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4229845a5685455eaf623f5d8f6516735d3d414c76be408db9e86df50dc1c477
4
- data.tar.gz: 5f0171e49a79cd0cdc7b1438f2c91ab6f52d99efa29a818636bf6593610832ed
3
+ metadata.gz: 90df98c5f5d1a618fc2bc4a0ca4dc4a48a2d2b1464295258d489e77c90a495e8
4
+ data.tar.gz: 1e68120f9b3eff24664b401b09fafaf0fe799ce8bd5da03f47398958b69e700f
5
5
  SHA512:
6
- metadata.gz: ee066f39b9632ebb46cf77d47f96334c433360dadd9a60e41faffa30e1cc4dad249e5903faa67c7196cc0c8a8762b54cda94c02e218bda9cad36556015e0cb9e
7
- data.tar.gz: 13cf2ff5ccb197c951ffedd77ed1cc3d96872a81327903072fd6a4ef852fed53f51587704d7928350ea8f6d7450301660ce51876172897843ad2d0012808ac56
6
+ metadata.gz: 8480ea5fc56d57afc54874d53d095a5d2df354e9c75df35ef0774387e41fca1503989f831170fce558a41d23fc4007ac724238c8a4b45f03875524ec2ad6ea49
7
+ data.tar.gz: '0392e670ebc5e8b46688f1f5c31c0db82bb77f9622bb46b8ac6fee7adb625a2f2a94e4763181f07bb0865f3937a0389442367a2be691c45e2df2976bfa096c45'
@@ -81,7 +81,7 @@ module Effective
81
81
  end
82
82
 
83
83
  if respond_to?(:current_user) && resource.respond_to?(:created_by=)
84
- resource.created_by ||= current_user
84
+ resource.created_by ||= (impersonation_user || current_user)
85
85
  end
86
86
 
87
87
  resource.assign_attributes(send(resource_params_method_name))
@@ -142,7 +142,7 @@ module Effective
142
142
  end
143
143
 
144
144
  if respond_to?(:current_user) && resource.respond_to?(:updated_by=)
145
- resource.updated_by ||= current_user
145
+ resource.updated_by ||= (impersonation_user || current_user)
146
146
  end
147
147
 
148
148
  resource.assign_attributes(send(resource_params_method_name))
@@ -0,0 +1,15 @@
1
+ module Effective
2
+ module CrudController
3
+ module Users
4
+
5
+ # If we're impersonating, this is the original user
6
+ def impersonation_user
7
+ return unless current_user.present?
8
+ return unless session[:impersonation_user_id].present?
9
+
10
+ @impersonation_user ||= current_user.class.find(session[:impersonation_user_id])
11
+ end
12
+
13
+ end
14
+ end
15
+ end
@@ -10,6 +10,7 @@ module Effective
10
10
  include Effective::CrudController::Respond
11
11
  include Effective::CrudController::Save
12
12
  include Effective::CrudController::Submits
13
+ include Effective::CrudController::Users
13
14
 
14
15
  included do
15
16
  define_callbacks :resource_render, :resource_before_save, :resource_after_save, :resource_after_commit, :resource_error
@@ -1,6 +1,11 @@
1
1
  module Effective
2
2
  module ImpersonationController
3
3
  module Impersonate
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ before_action :delete_blank_password_params, only: [:update]
8
+ end
4
9
 
5
10
  def impersonate
6
11
  @user = current_user.class.find(params[:id])
@@ -24,6 +29,15 @@ module Effective
24
29
  try(:dashboard_path) || try(:root_path) || '/'
25
30
  end
26
31
 
32
+ private
33
+
34
+ def delete_blank_password_params
35
+ if params[:user] && params[:user][:password].blank?
36
+ params[:user].delete(:password)
37
+ params[:user].delete(:password_confirmation)
38
+ end
39
+ end
40
+
27
41
  end
28
42
  end
29
43
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '2.28.0'.freeze
2
+ VERSION = '2.30.0'.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.28.0
4
+ version: 2.30.0
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: 2025-05-06 00:00:00.000000000 Z
11
+ date: 2025-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -197,6 +197,7 @@ files:
197
197
  - app/controllers/concerns/effective/crud_controller/respond.rb
198
198
  - app/controllers/concerns/effective/crud_controller/save.rb
199
199
  - app/controllers/concerns/effective/crud_controller/submits.rb
200
+ - app/controllers/concerns/effective/crud_controller/users.rb
200
201
  - app/controllers/concerns/effective/flash_messages.rb
201
202
  - app/controllers/concerns/effective/impersonation_controller/destroy.rb
202
203
  - app/controllers/concerns/effective/impersonation_controller/impersonate.rb