From dfd5a5a780172b6e619a4b542efc0e5c76465c59 Mon Sep 17 00:00:00 2001 From: Trisha Anand Date: Mon, 14 Oct 2024 13:52:50 +0530 Subject: [PATCH] chore: Refactor UpdateSuperUserMigrationHelperCE for re-use in EE (#36851) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Automation /ok-to-test tags="@tag.Sanity" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: 402dfb3ae87383f87afc5b343971e5334b79a695 > Cypress dashboard. > Tags: `@tag.Sanity` > Spec: >
Mon, 14 Oct 2024 06:12:25 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Enhanced user creation process with automatic generation of user management permission groups and policies. - Introduced a new method for creating permission groups associated with user management. - **Bug Fixes** - Streamlined the assignment of user policies during user creation. --- .../ce/UpdateSuperUserMigrationHelperCE.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/solutions/ce/UpdateSuperUserMigrationHelperCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/solutions/ce/UpdateSuperUserMigrationHelperCE.java index 0140775476..0c9836a18c 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/solutions/ce/UpdateSuperUserMigrationHelperCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/solutions/ce/UpdateSuperUserMigrationHelperCE.java @@ -8,6 +8,7 @@ import com.appsmith.server.domains.Tenant; import com.appsmith.server.domains.User; import com.appsmith.server.dtos.Permission; import com.appsmith.server.solutions.PolicySolution; +import org.jetbrains.annotations.NotNull; import org.springframework.data.mongodb.core.MongoTemplate; import java.time.Instant; @@ -56,7 +57,17 @@ public class UpdateSuperUserMigrationHelperCE { user.setCreatedAt(Instant.now()); user = mongoTemplate.save(user); - // Assign the user to the default permissions + PermissionGroup userManagementPermissionGroup = createUserManagementPermissionGroup(mongoTemplate, user); + + Set userPolicies = this.generateUserPolicy( + user, userManagementPermissionGroup, instanceAdminRole, tenant, policySolution, policyGenerator); + + user.setPolicies(userPolicies); + + return mongoTemplate.save(user); + } + + @NotNull public static PermissionGroup createUserManagementPermissionGroup(MongoTemplate mongoTemplate, User user) { PermissionGroup userManagementPermissionGroup = new PermissionGroup(); userManagementPermissionGroup.setName(user.getUsername() + FieldName.SUFFIX_USER_MANAGEMENT_ROLE); // Add CRUD permissions for user to the group @@ -66,12 +77,6 @@ public class UpdateSuperUserMigrationHelperCE { userManagementPermissionGroup.setAssignedToUserIds(Set.of(user.getId())); PermissionGroup savedPermissionGroup = mongoTemplate.save(userManagementPermissionGroup); - - Set userPolicies = this.generateUserPolicy( - user, savedPermissionGroup, instanceAdminRole, tenant, policySolution, policyGenerator); - - user.setPolicies(userPolicies); - - return mongoTemplate.save(user); + return savedPermissionGroup; } }