From 45eb3f8f636752a5d8aadb1b467eaafd24974a9b Mon Sep 17 00:00:00 2001 From: Laura Date: Wed, 22 Jan 2025 08:50:20 +0100 Subject: [PATCH] Added UC, openapi and path #3583 --- .../AdministrationAPIConstants.java | 5 +++ .../user/UserRestController.java | 8 +++++ .../src/main/resources/openapi.yaml | 31 ++++++++++++++++--- .../usecases/UseCaseIdentifier.java | 4 ++- .../user/UseCaseUserUpdatesEmailAddress.java | 26 ++++++++++++++++ 5 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/admin/user/UseCaseUserUpdatesEmailAddress.java diff --git a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/AdministrationAPIConstants.java b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/AdministrationAPIConstants.java index 0aca804ba..1aeaa25be 100644 --- a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/AdministrationAPIConstants.java +++ b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/AdministrationAPIConstants.java @@ -72,6 +72,11 @@ private AdministrationAPIConstants() { */ public static final String API_USER_DETAIL_INFO = API_MANAGEMENT + "user"; + /** + * User updates his email address + */ + public static final String API_USER_UPDATE_EMAIL = API_USER_DETAIL_INFO + "/email/{newEmailAddress}"; + /* +-----------------------------------------------------------------------+ */ /* +............................ Users (Admin) ............................+ */ /* +-----------------------------------------------------------------------+ */ diff --git a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/user/UserRestController.java b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/user/UserRestController.java index 99f0a1550..6b37c02b7 100644 --- a/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/user/UserRestController.java +++ b/sechub-administration/src/main/java/com/mercedesbenz/sechub/domain/administration/user/UserRestController.java @@ -7,6 +7,7 @@ import com.mercedesbenz.sechub.sharedkernel.Step; import com.mercedesbenz.sechub.sharedkernel.security.RoleConstants; import com.mercedesbenz.sechub.sharedkernel.usecases.admin.user.UseCaseUserFetchesUserDetailInformation; +import com.mercedesbenz.sechub.sharedkernel.usecases.admin.user.UseCaseUserUpdatesEmailAddress; import jakarta.annotation.security.RolesAllowed; @@ -27,4 +28,11 @@ public UserDetailInformation fetchUserDetailInformation() { /* @formatter:on */ return userDetailInformationService.fetchDetails(); } + + @UseCaseUserUpdatesEmailAddress(@Step(number = 1, name = "Rest call", description = "User updates his email address", needsRestDoc = true)) + @GetMapping(AdministrationAPIConstants.API_USER_UPDATE_EMAIL) + public void updateUserEmailAddress() { + // todo: implement + + } } diff --git a/sechub-openapi-java/src/main/resources/openapi.yaml b/sechub-openapi-java/src/main/resources/openapi.yaml index 3e9917cf1..efd95b71d 100644 --- a/sechub-openapi-java/src/main/resources/openapi.yaml +++ b/sechub-openapi-java/src/main/resources/openapi.yaml @@ -17,7 +17,7 @@ tags: - name: User Administration description: Operations relevant to user administration - name: Project Administration - description: Operations relevant to project administration + description: Operations relevant to project administration by administrators - name: User Self Service description: Operations relevant to the authenticated user - name: SecHub Execution @@ -25,7 +25,7 @@ tags: - name: Sign Up description: Operations relevant to user registration - name: Job Administration - description: Operations relevant to job administration + description: Operations relevant to job administration by administrators - name: Testing description: Operations relevant to testing - name: Configuration @@ -35,7 +35,7 @@ tags: - name: Other description: All other use cases - name: Job Management - description: Operations relevant to manage jobs + description: Operations relevant to manage jobs by an user components: securitySchemes: @@ -2718,6 +2718,28 @@ paths: tags: - User Self Service + /api/management/user//email/{newEmailAddress}: + put: + summary: User updates his email address + description: The authenticated user updates his email address + operationId: userUpdatesEmailAddress + parameters: + - name: newEmailAddress + description: The new email address + in: path + required: true + schema: + type: string + responses: + "200": + description: "Ok" + "404": + description: "Not found" + "406": + description: "Not acceptable" + tags: + - User Self Service + ###################### ## SecHub Execution ## ###################### @@ -4213,4 +4235,5 @@ paths: summary: User cancels a job tags: - Job Management - x-accepts: application/json \ No newline at end of file + x-accepts: application/json + diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/UseCaseIdentifier.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/UseCaseIdentifier.java index ef5391c2f..f5a1aec98 100644 --- a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/UseCaseIdentifier.java +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/UseCaseIdentifier.java @@ -211,7 +211,9 @@ public enum UseCaseIdentifier { UC_USER_CANCELS_JOB(94), - UC_USER_FETCHES_USER_DETAIL_INFORMATION(95) + UC_USER_FETCHES_USER_DETAIL_INFORMATION(95), + + UC_USER_UPDATES_EMAIL_ADDRESS(96) ; /* +-----------------------------------------------------------------------+ */ diff --git a/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/admin/user/UseCaseUserUpdatesEmailAddress.java b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/admin/user/UseCaseUserUpdatesEmailAddress.java new file mode 100644 index 000000000..512d0d5d6 --- /dev/null +++ b/sechub-shared-kernel/src/main/java/com/mercedesbenz/sechub/sharedkernel/usecases/admin/user/UseCaseUserUpdatesEmailAddress.java @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT +package com.mercedesbenz.sechub.sharedkernel.usecases.admin.user; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import com.mercedesbenz.sechub.sharedkernel.Step; +import com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseDefinition; +import com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseGroup; +import com.mercedesbenz.sechub.sharedkernel.usecases.UseCaseIdentifier; + +/* @formatter:off */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@UseCaseDefinition( + id=UseCaseIdentifier.UC_USER_UPDATES_EMAIL_ADDRESS, + group=UseCaseGroup.USER_SELF_SERVICE, + apiName="userUpdatesEmailAddress", + title="User updates his own email address", + description="The authenticated user updates his own email address") +public @interface UseCaseUserUpdatesEmailAddress { + Step value(); +} +/* @formatter:on */