thecore_auth_commons 3.5.7 → 3.5.8
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 +4 -4
- data/app/services/ldap/authenticator.rb +3 -3
- data/db/migrate/20251216110301_add_ldap_match_fields_to_ldap_server.rb +10 -0
- data/db/migrate/20251216111217_add_code_to_ldap_server.rb +6 -0
- data/lib/thecore_auth_commons/version.rb +1 -1
- data/lib/thecore_auth_commons.rb +9 -6
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b1eb9060882d36e90d8c5b1b77c6df18be6969382eba49fd59df9a30f5196433
|
|
4
|
+
data.tar.gz: 3f5bb4bd1029d7d3646ef0aede9129ff18eb893ba35915386eebbd498e7094cb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dc229651cf4cdda2944b339d4329d472efa031409ae2968e61e43ad9d744eaa804945cb10e759b6d4b04ae9bedcade5836d85f4b351db33b4b6db83c9c1e1cd8
|
|
7
|
+
data.tar.gz: 98b4790b2c327802296b0dc624f770134cf5d829e644f7211bbc036914df990d16834fff8997ffa945c364e4c2e5e43837b88215dcbfff896ee2e25aa23db941
|
|
@@ -53,7 +53,7 @@ module Ldap
|
|
|
53
53
|
entry = auth_on_single_server(server)
|
|
54
54
|
if entry
|
|
55
55
|
Rails.logger.info("Authentication: LDAP authentication succeeded for #{email} on server #{server.name}")
|
|
56
|
-
return find_or_create_user(entry, server
|
|
56
|
+
return find_or_create_user(entry, server)
|
|
57
57
|
else
|
|
58
58
|
Rails.logger.info("Authentication: LDAP authentication failed for #{email} on server #{server.name}")
|
|
59
59
|
end
|
|
@@ -66,8 +66,8 @@ module Ldap
|
|
|
66
66
|
|
|
67
67
|
attr_reader :email, :password
|
|
68
68
|
|
|
69
|
-
def find_or_create_user(entry,
|
|
70
|
-
ThecoreAuthCommons.align_user email, entry,
|
|
69
|
+
def find_or_create_user(entry, server)
|
|
70
|
+
ThecoreAuthCommons.align_user email, entry, server
|
|
71
71
|
end
|
|
72
72
|
end
|
|
73
73
|
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class AddLdapMatchFieldsToLdapServer < ActiveRecord::Migration[7.2]
|
|
2
|
+
def change
|
|
3
|
+
add_column :ldap_servers, :name, :string
|
|
4
|
+
add_index :ldap_servers, :name
|
|
5
|
+
add_column :ldap_servers, :surname, :string
|
|
6
|
+
add_index :ldap_servers, :surname
|
|
7
|
+
add_column :ldap_servers, :phone, :string
|
|
8
|
+
add_index :ldap_servers, :phone
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/thecore_auth_commons.rb
CHANGED
|
@@ -73,25 +73,28 @@ module ThecoreAuthCommons
|
|
|
73
73
|
puts "Importando utente: #{email}"
|
|
74
74
|
|
|
75
75
|
# Password must contain at least one uppercase letter, one lowercase letter, one number and one special character
|
|
76
|
-
ThecoreAuthCommons.align_user email, entry, server
|
|
76
|
+
ThecoreAuthCommons.align_user email, entry, server
|
|
77
77
|
imported_count += 1
|
|
78
78
|
end
|
|
79
79
|
end
|
|
80
80
|
|
|
81
81
|
puts "== Completato. Utenti importati: #{imported_count} =="
|
|
82
82
|
end
|
|
83
|
-
|
|
84
|
-
def self.align_user(email, entry,
|
|
83
|
+
|
|
84
|
+
def self.align_user(email, entry, server)
|
|
85
85
|
user = User.find_or_initialize_by(email: email)
|
|
86
|
-
user.auth_source = "ldap #{
|
|
86
|
+
user.auth_source = "ldap #{server.id}"
|
|
87
87
|
|
|
88
88
|
# Password don't need to be changed, just created, otherwise it will invalidate the current user session if it's logged in
|
|
89
89
|
user.password = user.password_confirmation = ThecoreAuthCommons.generate_secure_password if user.new_record?
|
|
90
90
|
|
|
91
91
|
# Eventuale mapping LDAP -> campi User
|
|
92
|
-
user.name = entry[
|
|
92
|
+
user.name = entry[server.name]&.first if user.respond_to?(:name) && server.name.present?
|
|
93
|
+
user.surname = entry[server.surname]&.first if user.respond_to?(:surname) && server.surname.present?
|
|
94
|
+
user.phone = entry[server.phone]&.first if user.respond_to?(:phone) && server.phone.present?
|
|
95
|
+
user.code = entry[server.code]&.first if user.respond_to?(:code) && server.code.present?
|
|
93
96
|
|
|
94
|
-
# Recupera
|
|
97
|
+
# Recupera dalla entry i gruppi di cui fa parte l'utente e crea i relativi record in Role assegnandoli all'utente corrente
|
|
95
98
|
is_admin = false
|
|
96
99
|
entry[:memberOf].each do |group|
|
|
97
100
|
group_name = group.split(",").first.split("=").last
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: thecore_auth_commons
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.5.
|
|
4
|
+
version: 3.5.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gabriele Tassoni
|
|
@@ -270,6 +270,8 @@ files:
|
|
|
270
270
|
- db/migrate/20160209153816_create_permissions_chain.rb
|
|
271
271
|
- db/migrate/20250516074016_create_ldap_servers.rb
|
|
272
272
|
- db/migrate/20250516075204_add_auth_source_to_user.rb
|
|
273
|
+
- db/migrate/20251216110301_add_ldap_match_fields_to_ldap_server.rb
|
|
274
|
+
- db/migrate/20251216111217_add_code_to_ldap_server.rb
|
|
273
275
|
- db/seeds.rb
|
|
274
276
|
- lib/tasks/ldap.rake
|
|
275
277
|
- lib/tasks/thecore_auth_commons_tasks.rake
|