Content-Length: 4725 | pFad | http://github.com/lowcoder-org/lowcoder/pull/1710.patch
thub.com
From 6ee6c011e3cb5e598ab4b0011aa20bb476c634c1 Mon Sep 17 00:00:00 2001
From: Thomasr
Date: Mon, 26 May 2025 12:56:54 -0400
Subject: [PATCH 1/2] Only one super admin should exists
---
.../domain/user/service/UserServiceImpl.java | 5 +++++
.../runner/migrations/DatabaseChangelog.java | 18 ++++++++++++++++++
2 files changed, 23 insertions(+)
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..e94be15664 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,24 @@ 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 usersToDelete = users.subList(1, users.size());
+ for (User user : usersToDelete) {
+ mongoTemplate.remove(user);
+ }
+ }
+ }
+
private void addGidField(MongockTemplate mongoTemplate, String collectionName) {
// Create a query to match all documents
Query query = new Query();
From 5b881e68ebe7de1034ea3c331d85e9b487ebd951 Mon Sep 17 00:00:00 2001
From: dragonpoo <72492398+dragonpoo@users.noreply.github.com>
Date: Mon, 26 May 2025 13:18:26 -0400
Subject: [PATCH 2/2] Update
server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../lowcoder/runner/migrations/DatabaseChangelog.java | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
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 e94be15664..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
@@ -490,10 +490,13 @@ public void deleteOldSuperAdmin(MongockTemplate mongoTemplate, MongoDatabase mon
// 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 usersToDelete = users.subList(1, users.size());
- for (User user : usersToDelete) {
- mongoTemplate.remove(user);
- }
+ 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);
}
}
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/lowcoder-org/lowcoder/pull/1710.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy