From b4cba8a850ecd7a25aeff6ca7dea0dc432d43d86 Mon Sep 17 00:00:00 2001 From: Mohit Yadav <105265192+mohityadav766@users.noreply.github.com> Date: Fri, 14 Jun 2024 23:46:45 +0530 Subject: [PATCH] - Fix User Signup (#16667) --- .../service/resources/teams/UserResource.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/teams/UserResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/teams/UserResource.java index 23d9954bf63..4c8cbfbafa5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/teams/UserResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/teams/UserResource.java @@ -567,15 +567,23 @@ public class UserResource extends EntityResource { // Add the roles on user creation updateUserRolesIfRequired(user, containerRequestContext); - // TODO do we need to authenticate user is creating himself? - Response createdUser = create(uriInfo, securityContext, user); + Response createdUserRes = null; + try { + createdUserRes = create(uriInfo, securityContext, user); + } catch (EntityNotFoundException ex) { + if (securityContext.getUserPrincipal().getName().equals(create.getName())) { + // User is creating himself on signup ?! :( + User created = addHref(uriInfo, repository.create(uriInfo, user)); + createdUserRes = Response.created(created.getHref()).entity(created).build(); + } + } // Send Invite mail to user sendInviteMailToUserForBasicAuth(uriInfo, user, create); // Update response to remove auth fields - decryptOrNullify(securityContext, (User) createdUser.getEntity()); - return createdUser; + decryptOrNullify(securityContext, (User) createdUserRes.getEntity()); + return createdUserRes; } private void validateAndAddUserAuthForBasic(User user, CreateUser create) {