diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOAuth2UserServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOAuth2UserServiceCEImpl.java index 33cced2fd3..fc8ce6974f 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOAuth2UserServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOAuth2UserServiceCEImpl.java @@ -47,9 +47,7 @@ public class CustomOAuth2UserServiceCEImpl extends DefaultReactiveOAuth2UserServ String username = oAuth2User.getName(); - return repository - .findByEmail(username) - .switchIfEmpty(repository.findFirstByEmailIgnoreCaseOrderByCreatedAtDesc(username)) + return this.findByUsername(username) .switchIfEmpty(Mono.defer(() -> { User newUser = new User(); newUser.setName(oAuth2User.getName()); @@ -76,4 +74,10 @@ public class CustomOAuth2UserServiceCEImpl extends DefaultReactiveOAuth2UserServ error -> new AppsmithOAuth2AuthenticationException( new OAuth2Error(error.getAppErrorCode().toString(), error.getMessage(), ""))); } + + protected Mono findByUsername(String email) { + return repository + .findByEmail(email) + .switchIfEmpty(repository.findFirstByEmailIgnoreCaseOrderByCreatedAtDesc(email)); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOidcUserServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOidcUserServiceCEImpl.java index cbfc782c5e..29ef72f2a5 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOidcUserServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/authentication/handlers/ce/CustomOidcUserServiceCEImpl.java @@ -49,9 +49,7 @@ public class CustomOidcUserServiceCEImpl extends OidcReactiveOAuth2UserService { String username = (!StringUtils.isEmpty(oidcUser.getEmail())) ? oidcUser.getEmail() : oidcUser.getName(); - return repository - .findByEmail(username) - .switchIfEmpty(repository.findFirstByEmailIgnoreCaseOrderByCreatedAtDesc(username)) + return this.findByUsername(username) .switchIfEmpty(Mono.defer(() -> { User newUser = new User(); if (oidcUser.getUserInfo() != null) { @@ -82,4 +80,10 @@ public class CustomOidcUserServiceCEImpl extends OidcReactiveOAuth2UserService { error -> new AppsmithOAuth2AuthenticationException( new OAuth2Error(error.getAppErrorCode().toString(), error.getMessage(), ""))); } + + protected Mono findByUsername(String email) { + return repository + .findByEmail(email) + .switchIfEmpty(repository.findFirstByEmailIgnoreCaseOrderByCreatedAtDesc(email)); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCE.java index 6ceef7aed4..10c66781ec 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCE.java @@ -6,6 +6,8 @@ import com.appsmith.server.repositories.AppsmithRepository; import org.springframework.data.mongodb.core.query.UpdateDefinition; import reactor.core.publisher.Mono; +import java.util.Set; + public interface CustomUserRepositoryCE extends AppsmithRepository { Mono findByEmail(String email, AclPermission aclPermission); @@ -14,5 +16,7 @@ public interface CustomUserRepositoryCE extends AppsmithRepository { Mono isUsersEmpty(); + Set getSystemGeneratedUserEmails(); + Mono updateById(String id, UpdateDefinition updateObj); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCEImpl.java index b09ac27cc2..17db686832 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomUserRepositoryCEImpl.java @@ -48,7 +48,8 @@ public class CustomUserRepositoryCEImpl extends BaseAppsmithRepositoryImpl .map(count -> count == 0); } - protected Set getSystemGeneratedUserEmails() { + @Override + public Set getSystemGeneratedUserEmails() { Set systemGeneratedEmails = new HashSet<>(); systemGeneratedEmails.add(FieldName.ANONYMOUS_USER); return systemGeneratedEmails; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCE.java index 2bdb85f678..24dfffcbc0 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCE.java @@ -41,6 +41,8 @@ public interface UserServiceCE extends CrudService { Flux getAllByEmails(Set emails, AclPermission permission); + Mono signupIfAllowed(User user); + Mono updateWithoutPermission(String id, User update); Mono resendEmailVerification(ResendEmailVerificationDTO resendEmailVerificationDTO, String redirectUrl); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCEImpl.java index 35d24c352a..371d6b3a9e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserServiceCEImpl.java @@ -510,7 +510,8 @@ public class UserServiceCEImpl extends BaseService * @param user User object representing the user to be created/enabled. * @return Publishes the user object, after having been saved. */ - private Mono signupIfAllowed(User user) { + @Override + public Mono signupIfAllowed(User user) { boolean isAdminUser = false; if (!commonConfig.getAdminEmails().contains(user.getEmail())) {