thecore_ui_commons 3.1.5 → 3.1.7
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd6232595aa3e317fbfe577e1e4abddcdac5692bf90d09cf1c71dea6ce5ef3b5
|
4
|
+
data.tar.gz: 06a943dbb148675096b94c9845ae15db2b78f012028e08ea2c7b95ecb46a0f7e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5ee92273720eacc56372b96dd4ef1778b176a77fe7b2f6cb64d4bbc1eba98ad7a1b20dba50f7a940948130598795421591a01fee2ba100f6c442bd169b502fc
|
7
|
+
data.tar.gz: 5623c5a81ae20cfd042c8143cc58ca5239418620dd60e83c6c84a41daef38709fcf85481fcbe22e350af4b25b19192923dfd2783d30bb76e914d523de72805c1
|
@@ -1,8 +1,7 @@
|
|
1
1
|
Rails.application.configure do
|
2
2
|
config.after_initialize do
|
3
3
|
# Controllers
|
4
|
-
ApplicationController.send
|
5
|
-
RailsAdmin::ApplicationController.send :include, ConcernApplicationController
|
4
|
+
ApplicationController.send(:include, ConcernCommonApplicationController)
|
6
5
|
User.send(:include, ThecoreUiCommonsUserConcern)
|
7
6
|
end
|
8
7
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
Rails.logger.debug "ApplicationController Concern from ThecoreUiCommons"
|
2
|
+
require 'active_support/concern'
|
3
|
+
|
4
|
+
module ConcernCommonApplicationController
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
# protect_from_forgery prepend: true
|
9
|
+
protect_from_forgery except: :sign_in, prepend: true
|
10
|
+
|
11
|
+
rescue_from CanCan::AccessDenied do |exception|
|
12
|
+
redirect_to main_app.root_url, alert: exception.message
|
13
|
+
end
|
14
|
+
|
15
|
+
before_action :store_user_location!, if: :storable_location?
|
16
|
+
before_action :reject_locked!, if: :devise_controller?
|
17
|
+
|
18
|
+
# Auto-sign out locked users
|
19
|
+
def reject_locked!
|
20
|
+
if !current_user.blank? && current_user.locked?
|
21
|
+
Rails.logger.debug " - Cleaning session"
|
22
|
+
sign_out current_user
|
23
|
+
user_session = nil
|
24
|
+
current_user = nil
|
25
|
+
flash[:alert] = "Your account is locked."
|
26
|
+
flash[:notice] = nil
|
27
|
+
redirect_to root_url
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# Its important that the location is NOT stored if:
|
32
|
+
# - The request method is not GET (non idempotent)
|
33
|
+
# - The request is handled by a Devise controller such as
|
34
|
+
# Devise::SessionsController as that could cause an
|
35
|
+
# infinite redirect loop.
|
36
|
+
# - The request is an Ajax request as this can lead to very unexpected
|
37
|
+
# behaviour.
|
38
|
+
def storable_location?
|
39
|
+
request.get? && is_navigational_format? && !devise_controller? && !request.xhr?
|
40
|
+
end
|
41
|
+
|
42
|
+
def store_user_location!
|
43
|
+
# :user is the scope we are authenticating
|
44
|
+
store_location_for(:user, request.fullpath)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thecore_ui_commons
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriele Tassoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thecore_backend_commons
|
@@ -131,7 +131,7 @@ files:
|
|
131
131
|
- config/initializers/after_initialize.rb
|
132
132
|
- config/initializers/application_config.rb
|
133
133
|
- config/initializers/assets.rb
|
134
|
-
- config/initializers/
|
134
|
+
- config/initializers/concern_common_application_controller.rb
|
135
135
|
- config/initializers/concern_user.rb
|
136
136
|
- config/initializers/helper_charts.rb
|
137
137
|
- config/locales/en.ra_settings.yml
|
@@ -1,81 +0,0 @@
|
|
1
|
-
puts "ApplicationController Concern from ThecoreUiCommons"
|
2
|
-
require 'active_support/concern'
|
3
|
-
|
4
|
-
module ConcernApplicationController
|
5
|
-
extend ActiveSupport::Concern
|
6
|
-
|
7
|
-
included do
|
8
|
-
# protect_from_forgery prepend: true
|
9
|
-
protect_from_forgery except: :sign_in, prepend: true
|
10
|
-
|
11
|
-
rescue_from CanCan::AccessDenied do |exception|
|
12
|
-
redirect_to main_app.root_url, alert: exception.message
|
13
|
-
end
|
14
|
-
|
15
|
-
before_action :store_user_location!, if: :storable_location?
|
16
|
-
before_action :reject_locked!, if: :devise_controller?
|
17
|
-
|
18
|
-
# Redirects on successful sign in
|
19
|
-
def after_sign_in_path_for resource
|
20
|
-
root_actions = RailsAdmin::Config::Actions.all(:root).select {|action| can? action.action_name, :all }.collect(&:action_name)
|
21
|
-
|
22
|
-
# Default root action as landing page: the first to which I have authorization to read
|
23
|
-
action = root_actions.first
|
24
|
-
puts "after_sign_in_path_for action: #{action}"
|
25
|
-
# Otherwise, if I set a Manual override for landing actions in config, I can test if I'm authorized to see it
|
26
|
-
override_landing_page = Settings.ns(:main).after_sign_in_redirect_to_root_action
|
27
|
-
action = override_landing_page.to_sym if !override_landing_page.blank? && root_actions.include?(override_landing_page.to_sym)
|
28
|
-
|
29
|
-
# If I ask for a specific page, Let's try to go back there if I need to login or re-login
|
30
|
-
# This takes precedence on automatic computed action
|
31
|
-
stored_location = stored_location_for(resource)
|
32
|
-
puts "after_sign_in_path_for stored_location: #{stored_location}"
|
33
|
-
if !stored_location.blank? && can?(resource, :all)
|
34
|
-
# Go to the latest navigated page
|
35
|
-
puts "after_sign_in_path_for Redirect to stored_location"
|
36
|
-
return stored_location
|
37
|
-
elsif action
|
38
|
-
path = rails_admin.send("#{action}_path").sub("#{ENV['RAILS_RELATIVE_URL_ROOT']}#{ENV['RAILS_RELATIVE_URL_ROOT']}", "#{ENV['RAILS_RELATIVE_URL_ROOT']}")
|
39
|
-
puts "after_sign_in_path_for Redirect to action #{path}"
|
40
|
-
return path
|
41
|
-
else
|
42
|
-
puts "after_sign_in_path_for ERROR! Signing out user :-("
|
43
|
-
sign_out current_user
|
44
|
-
user_session = nil
|
45
|
-
current_user = nil
|
46
|
-
flash[:alert] = "Your user is not authorized to access any page."
|
47
|
-
flash[:notice] = nil
|
48
|
-
return root_path
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# Auto-sign out locked users
|
53
|
-
def reject_locked!
|
54
|
-
if !current_user.blank? && current_user.locked?
|
55
|
-
puts " - Cleaning session"
|
56
|
-
sign_out current_user
|
57
|
-
user_session = nil
|
58
|
-
current_user = nil
|
59
|
-
flash[:alert] = "Your account is locked."
|
60
|
-
flash[:notice] = nil
|
61
|
-
redirect_to root_url
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
# Its important that the location is NOT stored if:
|
66
|
-
# - The request method is not GET (non idempotent)
|
67
|
-
# - The request is handled by a Devise controller such as
|
68
|
-
# Devise::SessionsController as that could cause an
|
69
|
-
# infinite redirect loop.
|
70
|
-
# - The request is an Ajax request as this can lead to very unexpected
|
71
|
-
# behaviour.
|
72
|
-
def storable_location?
|
73
|
-
request.get? && is_navigational_format? && !devise_controller? && !request.xhr?
|
74
|
-
end
|
75
|
-
|
76
|
-
def store_user_location!
|
77
|
-
# :user is the scope we are authenticating
|
78
|
-
store_location_for(:user, request.fullpath)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|