Content-Length: 2708 | pFad | http://github.com/lowcoder-org/lowcoder/pull/1710.diff
thub.com
diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
index 8da89a8476..1a8dcf566e 100644
--- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
+++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/user/service/UserServiceImpl.java
@@ -183,6 +183,11 @@ public Mono createNewUserByAuthUser(AuthUser authUser, boolean isSuperAdmi
newUser.setConnections(connections);
newUser.setActiveAuthId(connection.getAuthId());
newUser.setIsNewUser(true);
+ if(isSuperAdmin) {
+ return repository.findBySuperAdminIsTrue()
+ .flatMap(user -> update(user.getId(), newUser))
+ .switchIfEmpty(create(newUser));
+ }
return create(newUser);
}
diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
index 20611b8d8a..d19cb0b3e4 100644
--- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
+++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
@@ -479,6 +479,27 @@ public void renameApplicationRecordCollection(MongockTemplate mongoTemplate, Mon
}
+ @ChangeSet(order = "031", id = "delete-old-super-admin", author = "Thomas")
+ public void deleteOldSuperAdmin(MongockTemplate mongoTemplate, MongoDatabase mongoDatabase) {
+ List users = mongoTemplate.find(
+ Query.query(Criteria.where("superAdmin").is(true))
+ .with(Sort.by(Sort.Direction.DESC, "createdAt")),
+ User.class
+ );
+
+ // Ensure there's more than one superAdmin user
+ if (users.size() > 1) {
+ // Keep the most recent one (first in the sorted list), delete the rest
+ List userIdsToDelete = users.subList(1, users.size())
+ .stream()
+ .map(User::getId)
+ .collect(Collectors.toList());
+
+ Query deleteQuery = Query.query(Criteria.where("_id").in(userIdsToDelete));
+ mongoTemplate.remove(deleteQuery, User.class);
+ }
+ }
+
private void addGidField(MongockTemplate mongoTemplate, String collectionName) {
// Create a query to match all documents
Query query = new Query();
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/lowcoder-org/lowcoder/pull/1710.diff
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy