From 6c60ff3a12f23d04feb45d13c14692b5349b52d2 Mon Sep 17 00:00:00 2001 From: Sean Reed Date: Wed, 1 Apr 2026 17:20:37 +0100 Subject: [PATCH 1/3] PO-2816 : new DTOs for tactical user management solution --- build.gradle | 2 +- .../authorisation/client/dto/DomainDto.java | 19 ++++++++++++++ .../client/dto/UserStateV2Dto.java | 25 +++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/DomainDto.java create mode 100644 src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java diff --git a/build.gradle b/build.gradle index 7420216..316d5a3 100644 --- a/build.gradle +++ b/build.gradle @@ -13,7 +13,7 @@ plugins { } group = 'uk.gov.hmcts' -version = '0.3.0' +version = '0.3.1' java { toolchain { diff --git a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/DomainDto.java b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/DomainDto.java new file mode 100644 index 0000000..fc5b818 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/DomainDto.java @@ -0,0 +1,19 @@ +package uk.gov.hmcts.opal.common.user.authorisation.client.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class DomainDto { + + @JsonProperty("business_unit_users") + private List businessUnitUsers; +} diff --git a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java new file mode 100644 index 0000000..e495360 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java @@ -0,0 +1,25 @@ +package uk.gov.hmcts.opal.common.user.authorisation.client.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Map; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class UserStateV2Dto { + + @JsonProperty("cache_name") + private String cacheName; + + @JsonProperty("name") + private String name; + + @JsonProperty("domains") + private Map domains; +} From 2604e5723068873067cb7cc021d90a233e0f679f Mon Sep 17 00:00:00 2001 From: Sean Reed Date: Thu, 2 Apr 2026 12:08:22 +0100 Subject: [PATCH 2/3] PO-2816 : new DTOs for tactical user management solution 2 --- .../client/dto/UserStateV2Dto.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java index e495360..78e898c 100644 --- a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java +++ b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java @@ -5,21 +5,45 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import uk.gov.hmcts.opal.common.dto.ToJsonString; +import uk.gov.hmcts.opal.common.dto.Versioned; +import java.math.BigInteger; import java.util.Map; +import java.util.Optional; @Data @NoArgsConstructor @AllArgsConstructor @Builder -public class UserStateV2Dto { +public class UserStateV2Dto implements Versioned, ToJsonString { - @JsonProperty("cache_name") - private String cacheName; + @JsonProperty("user_id") + private Long userId; + + //users.username + @JsonProperty("username") + private String username; + //Obtained from the Access Token (via Spring Security) until stored in the Database under + // TDIA: User Service - Matching Key and JIT Provisioning, and only applies when id is 0 (zero) until then. @JsonProperty("name") private String name; + @JsonProperty("status") + private String status; + + @JsonProperty("version") + private Long version; + + @JsonProperty("cache_name") + private String cacheName; + @JsonProperty("domains") private Map domains; + + @Override + public BigInteger getVersion() { + return Optional.ofNullable(version).map(BigInteger::valueOf).orElse(null); + } } From 7c66fc8c03d23d021db9bbbd9961723b42e64103 Mon Sep 17 00:00:00 2001 From: Sean Reed Date: Thu, 2 Apr 2026 17:04:00 +0100 Subject: [PATCH 3/3] PO-2816 : removing obsolete comment from dtos --- .../opal/common/user/authorisation/client/dto/UserStateDto.java | 2 -- .../common/user/authorisation/client/dto/UserStateV2Dto.java | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateDto.java b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateDto.java index 383e775..d837e8e 100644 --- a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateDto.java +++ b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateDto.java @@ -25,8 +25,6 @@ public class UserStateDto implements Versioned, ToJsonString { @JsonProperty("username") private String username; - //Obtained from the Access Token (via Spring Security) until stored in the Database under - // TDIA: User Service - Matching Key and JIT Provisioning, and only applies when id is 0 (zero) until then. @JsonProperty("name") private String name; diff --git a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java index 78e898c..baf19de 100644 --- a/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java +++ b/src/main/java/uk/gov/hmcts/opal/common/user/authorisation/client/dto/UserStateV2Dto.java @@ -25,8 +25,6 @@ public class UserStateV2Dto implements Versioned, ToJsonString { @JsonProperty("username") private String username; - //Obtained from the Access Token (via Spring Security) until stored in the Database under - // TDIA: User Service - Matching Key and JIT Provisioning, and only applies when id is 0 (zero) until then. @JsonProperty("name") private String name;