From 0b478739415d379b6dc952186cdb909cc357074b Mon Sep 17 00:00:00 2001 From: "witold.brzozowski" Date: Tue, 22 Oct 2024 17:27:32 +0200 Subject: [PATCH] Allow for non-unique principal name --- .../fingo/urlopia/user/ActiveDirectoryUserLeaderProvider.java | 2 +- src/main/java/info/fingo/urlopia/user/User.java | 2 +- src/main/java/info/fingo/urlopia/user/UserRepository.java | 2 +- .../scripts/U3_5_0_4__drop_principal_name_unique_constraint.sql | 2 ++ .../scripts/V3_5_0_4__drop_principal_name_unique_constraint.sql | 2 ++ 5 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 src/main/resources/scripts/U3_5_0_4__drop_principal_name_unique_constraint.sql create mode 100644 src/main/resources/scripts/V3_5_0_4__drop_principal_name_unique_constraint.sql diff --git a/src/main/java/info/fingo/urlopia/user/ActiveDirectoryUserLeaderProvider.java b/src/main/java/info/fingo/urlopia/user/ActiveDirectoryUserLeaderProvider.java index b0d039a..5e0ab75 100644 --- a/src/main/java/info/fingo/urlopia/user/ActiveDirectoryUserLeaderProvider.java +++ b/src/main/java/info/fingo/urlopia/user/ActiveDirectoryUserLeaderProvider.java @@ -91,7 +91,7 @@ private Optional getManagerDetails(String managerDN) throws NamingExceptio var principalNameAttribute = attributes.get(Attribute.PRINCIPAL_NAME.getKey()); var principalName = principalNameAttribute != null ? (String) principalNameAttribute.get() : ""; if (!principalName.isBlank()) { - return this.userRepository.findFirstByPrincipalName(principalName); + return this.userRepository.findFirstByPrincipalNameAndActiveTrue(principalName); } } return Optional.empty(); diff --git a/src/main/java/info/fingo/urlopia/user/User.java b/src/main/java/info/fingo/urlopia/user/User.java index 8eb79d4..662b0f4 100644 --- a/src/main/java/info/fingo/urlopia/user/User.java +++ b/src/main/java/info/fingo/urlopia/user/User.java @@ -19,7 +19,7 @@ public class User { @Column(nullable = false, unique = true) private String accountName; - @Column(nullable = false, unique = true) + @Column(nullable = false) private String principalName; @Column(nullable = false, unique = true) diff --git a/src/main/java/info/fingo/urlopia/user/UserRepository.java b/src/main/java/info/fingo/urlopia/user/UserRepository.java index 4180959..8f320a5 100644 --- a/src/main/java/info/fingo/urlopia/user/UserRepository.java +++ b/src/main/java/info/fingo/urlopia/user/UserRepository.java @@ -11,7 +11,7 @@ public interface UserRepository extends BaseRepository, JpaRepository findFirstByMailAndActiveTrue(String mail); - Optional findFirstByPrincipalName(String principalName); + Optional findFirstByPrincipalNameAndActiveTrue(String principalName); Optional findFirstByAccountName(String accountName); diff --git a/src/main/resources/scripts/U3_5_0_4__drop_principal_name_unique_constraint.sql b/src/main/resources/scripts/U3_5_0_4__drop_principal_name_unique_constraint.sql new file mode 100644 index 0000000..f2d7688 --- /dev/null +++ b/src/main/resources/scripts/U3_5_0_4__drop_principal_name_unique_constraint.sql @@ -0,0 +1,2 @@ +CREATE UNIQUE INDEX users_principal_name_index ON users (principal_name); +CREATE UNIQUE INDEX users_principal_name_key ON users (principal_name); \ No newline at end of file diff --git a/src/main/resources/scripts/V3_5_0_4__drop_principal_name_unique_constraint.sql b/src/main/resources/scripts/V3_5_0_4__drop_principal_name_unique_constraint.sql new file mode 100644 index 0000000..b48749c --- /dev/null +++ b/src/main/resources/scripts/V3_5_0_4__drop_principal_name_unique_constraint.sql @@ -0,0 +1,2 @@ +ALTER TABLE users DROP CONSTRAINT IF EXISTS users_principal_name_index; +ALTER TABLE users DROP CONSTRAINT IF EXISTS users_principal_name_key; \ No newline at end of file