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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 27bf0b1187752a6de3f29fe3b2d0e15057bba9a925eb7f9860236d9d8c505966
4
- data.tar.gz: 342497749ab4022507a43b88c1ef948bf02d47d8a04bb36f15b27ff8cb260ddc
3
+ metadata.gz: b1eb9060882d36e90d8c5b1b77c6df18be6969382eba49fd59df9a30f5196433
4
+ data.tar.gz: 3f5bb4bd1029d7d3646ef0aede9129ff18eb893ba35915386eebbd498e7094cb
5
5
  SHA512:
6
- metadata.gz: 7115ff0b2fd8cd6ba55ae9d8a63c9b90d63550e585c972b71a682432dd0af2ac78be0ae646db3177956bffbb508fe31c424a695c5be6f9e35386f7c020637c68
7
- data.tar.gz: 26d704084b0cebfe63a21eb2f2c8e8439a0787691fc7d08c87d8b4d946c18c0d75c064d55b481eae2dcfd77952c79017cfc0b0dda604d5de497b5fce1928bcda
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.id)
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, server_id)
70
- ThecoreAuthCommons.align_user email, entry, server_id
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
@@ -0,0 +1,6 @@
1
+ class AddCodeToLdapServer < ActiveRecord::Migration[7.2]
2
+ def change
3
+ add_column :ldap_servers, :code, :string
4
+ add_index :ldap_servers, :code
5
+ end
6
+ end
@@ -1,3 +1,3 @@
1
1
  module ThecoreAuthCommons
2
- VERSION = "3.5.7".freeze
2
+ VERSION = "3.5.8".freeze
3
3
  end
@@ -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.id
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
- # Your code goes here...
84
- def self.align_user(email, entry, server_id)
83
+
84
+ def self.align_user(email, entry, server)
85
85
  user = User.find_or_initialize_by(email: email)
86
- user.auth_source = "ldap #{server_id}"
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[:givenname]&.first if user.respond_to?(:name)
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 dala entry i gruppi di cui fa parte l'utente e crea i relativi record in Role assegnandoli all'utente corrente
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.7
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