diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java index 2d52d50d6d..5d1e6d3587 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/controllers/ce/WorkspaceControllerCE.java @@ -4,7 +4,7 @@ import com.appsmith.server.constants.Url; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.UpdatePermissionGroupDTO; import com.appsmith.server.dtos.ResponseDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.dtos.PermissionGroupInfoDTO; import com.appsmith.server.services.WorkspaceService; import com.appsmith.server.services.UserWorkspaceService; @@ -47,15 +47,15 @@ public class WorkspaceControllerCE extends BaseController>> getUserMembersOfWorkspace(@PathVariable String workspaceId) { + public Mono>> getUserMembersOfWorkspace(@PathVariable String workspaceId) { return userWorkspaceService.getWorkspaceMembers(workspaceId) .map(users -> new ResponseDTO<>(HttpStatus.OK.value(), users, null)); } @PutMapping("/{workspaceId}/permissionGroup") - public Mono> updatePermissionGroupForMember(@RequestBody UpdatePermissionGroupDTO updatePermissionGroupDTO, - @PathVariable String workspaceId, - @RequestHeader(name = "Origin", required = false) String originHeader) { + public Mono> updatePermissionGroupForMember(@RequestBody UpdatePermissionGroupDTO updatePermissionGroupDTO, + @PathVariable String workspaceId, + @RequestHeader(name = "Origin", required = false) String originHeader) { return userWorkspaceService.updatePermissionGroupForMember(workspaceId, updatePermissionGroupDTO, originHeader) .map(user -> new ResponseDTO<>(HttpStatus.OK.value(), user, null)); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceApplicationsDTO.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceApplicationsDTO.java index ab8f148a5b..c3f0c97091 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceApplicationsDTO.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceApplicationsDTO.java @@ -16,5 +16,5 @@ import java.util.List; public class WorkspaceApplicationsDTO { Workspace workspace; List applications; - List users; + List users; } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceMemberInfoDTO.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceMemberInfoDTO.java new file mode 100644 index 0000000000..b8a52fcf19 --- /dev/null +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/WorkspaceMemberInfoDTO.java @@ -0,0 +1,16 @@ +package com.appsmith.server.dtos; + +import com.appsmith.server.dtos.ce.WorkspaceMemberInfoCE_DTO; +import lombok.Builder; +import lombok.Getter; +import lombok.Setter; + +@Setter +@Getter +public class WorkspaceMemberInfoDTO extends WorkspaceMemberInfoCE_DTO { + + @Builder + public WorkspaceMemberInfoDTO(String userId, String username, String name, String permissionGroupName, String permissionGroupId) { + super(userId, username, name, permissionGroupName, permissionGroupId); + } +} \ No newline at end of file diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/UserAndPermissionGroupDTO.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/ce/WorkspaceMemberInfoCE_DTO.java similarity index 53% rename from app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/UserAndPermissionGroupDTO.java rename to app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/ce/WorkspaceMemberInfoCE_DTO.java index e52b259519..a2d45509ab 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/UserAndPermissionGroupDTO.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/dtos/ce/WorkspaceMemberInfoCE_DTO.java @@ -1,20 +1,14 @@ -package com.appsmith.server.dtos; +package com.appsmith.server.dtos.ce; -import lombok.Builder; +import lombok.AllArgsConstructor; import lombok.Data; @Data -@Builder -public class UserAndPermissionGroupDTO { - +@AllArgsConstructor +public class WorkspaceMemberInfoCE_DTO { String userId; - String username; - String name; - String permissionGroupName; - String permissionGroupId; - } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/AbstractCommentEvent.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/AbstractCommentEvent.java index 64e6ca12de..22620739e5 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/AbstractCommentEvent.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/AbstractCommentEvent.java @@ -2,7 +2,7 @@ package com.appsmith.server.events; import com.appsmith.server.domains.Application; import com.appsmith.server.domains.Workspace; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import lombok.Data; import java.util.List; @@ -11,7 +11,7 @@ import java.util.List; public abstract class AbstractCommentEvent { private final String authorUserName; private final Workspace workspace; - private final List workspaceMembers; + private final List workspaceMembers; private final Application application; private final String originHeader; private final String pageName; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentAddedEvent.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentAddedEvent.java index 9f56bb22c2..7ae5007abb 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentAddedEvent.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentAddedEvent.java @@ -3,7 +3,7 @@ package com.appsmith.server.events; import com.appsmith.server.domains.Application; import com.appsmith.server.domains.Comment; import com.appsmith.server.domains.Workspace; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import lombok.Getter; import java.util.List; @@ -14,7 +14,7 @@ public class CommentAddedEvent extends AbstractCommentEvent { private final Comment comment; private final Set subscribers; - public CommentAddedEvent(Workspace workspace, List workspaceMembers, Application application, + public CommentAddedEvent(Workspace workspace, List workspaceMembers, Application application, String originHeader, Comment comment, Set subscribers, String pageName) { super(comment.getAuthorUsername(), workspace, workspaceMembers, application, originHeader, pageName); this.comment = comment; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentThreadClosedEvent.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentThreadClosedEvent.java index 769decd74d..66aacbd3fe 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentThreadClosedEvent.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/events/CommentThreadClosedEvent.java @@ -3,7 +3,7 @@ package com.appsmith.server.events; import com.appsmith.server.domains.Application; import com.appsmith.server.domains.CommentThread; import com.appsmith.server.domains.Workspace; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import lombok.Getter; import java.util.List; @@ -12,7 +12,7 @@ import java.util.List; public class CommentThreadClosedEvent extends AbstractCommentEvent { private final CommentThread commentThread; - public CommentThreadClosedEvent(String authorUserName, Workspace workspace, List workspaceMembers, + public CommentThreadClosedEvent(String authorUserName, Workspace workspace, List workspaceMembers, Application application, String originHeader, CommentThread commentThread, String pagename) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCE.java index f23426b3c5..c79ca7198a 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCE.java @@ -1,7 +1,7 @@ package com.appsmith.server.services.ce; import com.appsmith.server.dtos.UpdatePermissionGroupDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.domains.User; import reactor.core.publisher.Mono; @@ -13,9 +13,9 @@ public interface UserWorkspaceServiceCE { Mono leaveWorkspace(String workspaceId); - Mono updatePermissionGroupForMember(String workspaceId, UpdatePermissionGroupDTO changeUserGroupDTO, String originHeader); + Mono updatePermissionGroupForMember(String workspaceId, UpdatePermissionGroupDTO changeUserGroupDTO, String originHeader); - Mono> getWorkspaceMembers(String workspaceId); + Mono> getWorkspaceMembers(String workspaceId); - Mono>> getWorkspaceMembers(Set workspaceIds); + Mono>> getWorkspaceMembers(Set workspaceIds); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCEImpl.java index b972bd1aef..86b5e32495 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/UserWorkspaceServiceCEImpl.java @@ -6,7 +6,7 @@ import com.appsmith.server.domains.PermissionGroup; import com.appsmith.server.domains.User; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.UpdatePermissionGroupDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.helpers.PolicyUtils; @@ -123,7 +123,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { */ @Transactional @Override - public Mono updatePermissionGroupForMember(String workspaceId, UpdatePermissionGroupDTO changeUserGroupDTO, String originHeader) { + public Mono updatePermissionGroupForMember(String workspaceId, UpdatePermissionGroupDTO changeUserGroupDTO, String originHeader) { if (changeUserGroupDTO.getUsername() == null) { return Mono.error(new AppsmithException(AppsmithError.INVALID_PARAMETER, FieldName.USERNAME)); } @@ -162,7 +162,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { // If new permission group id is not present, just unassign old permission group and return PermissionAndGroupDTO if (!StringUtils.hasText(changeUserGroupDTO.getNewPermissionGroupId())) { return permissionGroupUnassignedMono.then(userMono) - .map(user -> UserAndPermissionGroupDTO.builder().username(user.getUsername()).name(user.getName()).build()); + .map(user -> WorkspaceMemberInfoDTO.builder().username(user.getUsername()).name(user.getName()).build()); } // Get the new permission group @@ -183,7 +183,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { .map(pair -> { User user = pair.getT2(); PermissionGroup newPermissionGroup = pair.getT1(); - return UserAndPermissionGroupDTO.builder() + return WorkspaceMemberInfoDTO.builder() .username(user.getUsername()) .name(user.getName()) .permissionGroupName(newPermissionGroup.getName()) @@ -193,18 +193,13 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { } @Override - public Mono> getWorkspaceMembers(String workspaceId) { - - // Read the workspace - Mono workspaceMono = workspaceRepository.findById(workspaceId, AclPermission.READ_WORKSPACES) - .switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.WORKSPACE, workspaceId))); + public Mono> getWorkspaceMembers(String workspaceId) { // Get default permission groups - Flux permissionGroupFlux = workspaceMono - .flatMapMany(workspace -> permissionGroupService.getByDefaultWorkspace(workspace, AclPermission.READ_PERMISSION_GROUP_MEMBERS)); + Flux permissionGroupFlux = this.getPermissionGroupsForWorkspace(workspaceId); // Create a list of UserAndGroupDTO - Mono> userAndPermissionGroupDTOsMono = permissionGroupFlux + Mono> userAndPermissionGroupDTOsMono = permissionGroupFlux .collectList() .map(this::mapPermissionGroupListToUserAndPermissionGroupDTOList) .cache(); @@ -212,7 +207,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { // Create a map of User.userId to User Mono> userMapMono = userAndPermissionGroupDTOsMono .flatMapMany(Flux::fromIterable) - .map(UserAndPermissionGroupDTO::getUserId) + .map(WorkspaceMemberInfoDTO::getUserId) .collect(Collectors.toSet()) .flatMapMany(userIds -> userRepository.findAllById(userIds)) .collectMap(User::getId) @@ -222,46 +217,21 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { userAndPermissionGroupDTOsMono = userAndPermissionGroupDTOsMono .zipWith(userMapMono) .map(tuple -> { - List userAndPermissionGroupDTOList = tuple.getT1(); + List workspaceMemberInfoDTOList = tuple.getT1(); Map userMap = tuple.getT2(); - userAndPermissionGroupDTOList.forEach(userAndPermissionGroupDTO -> { + workspaceMemberInfoDTOList.forEach(userAndPermissionGroupDTO -> { User user = userMap.get(userAndPermissionGroupDTO.getUserId()); userAndPermissionGroupDTO.setName(Optional.ofNullable(user.getName()).orElse(user.computeFirstName())); userAndPermissionGroupDTO.setUsername(user.getUsername()); }); - return userAndPermissionGroupDTOList; + return workspaceMemberInfoDTOList; }); // Sort the members by permission group //TODO get users sorted from DB and fill in three buckets - admin, developer and viewer - Mono> sortedListMono = userAndPermissionGroupDTOsMono + Mono> sortedListMono = userAndPermissionGroupDTOsMono .map(userAndPermissionGroupDTOS -> { - Collections.sort(userAndPermissionGroupDTOS, new Comparator() { - @Override - public int compare(UserAndPermissionGroupDTO o1, UserAndPermissionGroupDTO o2) { - int order1 = getOrder(o1.getPermissionGroupName()); - int order2 = getOrder(o2.getPermissionGroupName()); - - // Administrator > Developer > App viewer - int permissionGroupSortOrder = order1 - order2; - - if (permissionGroupSortOrder != 0) { - return permissionGroupSortOrder; - } - - return o1.getUsername().compareTo(o2.getUsername()); - } - - private int getOrder(String name) { - if (name.startsWith(FieldName.ADMINISTRATOR)) { - return 0; - } else if (name.startsWith(FieldName.DEVELOPER)) { - return 1; - } else { - return 2; - } - } - }); + Collections.sort(userAndPermissionGroupDTOS, this.getWorkspaceMemberComparator()); return userAndPermissionGroupDTOS; }); @@ -270,7 +240,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { } @Override - public Mono>> getWorkspaceMembers(Set workspaceIds) { + public Mono>> getWorkspaceMembers(Set workspaceIds) { // Get default permission groups Flux permissionGroupFlux = permissionGroupService.getByDefaultWorkspaces(workspaceIds, AclPermission.READ_PERMISSION_GROUP_MEMBERS) @@ -296,7 +266,7 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { Flux>> permissionGroupsByWorkspaceFlux = permissionGroupsByWorkspacesMono .repeat(); - Mono>> workspaceMembersMono = permissionGroupsByWorkspacesMono + Mono>> workspaceMembersMono = permissionGroupsByWorkspacesMono .flatMapMany(permissionGroupsByWorkspaces -> Flux.fromIterable(permissionGroupsByWorkspaces.keySet())) .zipWith(permissionGroupsByWorkspaceFlux) .flatMap(tuple -> { @@ -304,17 +274,17 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { Map> collectionMap = tuple.getT2(); List permissionGroups = collectionMap.get(workspaceId).stream().collect(Collectors.toList()); - Mono> userAndPermissionGroupDTOsMono = Mono.just(mapPermissionGroupListToUserAndPermissionGroupDTOList(permissionGroups)) + Mono> userAndPermissionGroupDTOsMono = Mono.just(mapPermissionGroupListToUserAndPermissionGroupDTOList(permissionGroups)) .zipWith(userMapMono) .map(tuple1 -> { - List userAndPermissionGroupDTOList = tuple1.getT1(); + List workspaceMemberInfoDTOList = tuple1.getT1(); Map userMap = tuple1.getT2(); - userAndPermissionGroupDTOList.forEach(userAndPermissionGroupDTO -> { + workspaceMemberInfoDTOList.forEach(userAndPermissionGroupDTO -> { User user = userMap.get(userAndPermissionGroupDTO.getUserId()); userAndPermissionGroupDTO.setName(Optional.ofNullable(user.getName()).orElse(user.computeFirstName())); userAndPermissionGroupDTO.setUsername(user.getUsername()); }); - return userAndPermissionGroupDTOList; + return workspaceMemberInfoDTOList; }); return Mono.zip(Mono.just(workspaceId), userAndPermissionGroupDTOsMono); @@ -324,12 +294,12 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { return workspaceMembersMono; } - private List mapPermissionGroupListToUserAndPermissionGroupDTOList(List permissionGroupList) { + private List mapPermissionGroupListToUserAndPermissionGroupDTOList(List permissionGroupList) { Set userIds = new HashSet<>(); // Set of already collected users - List userAndGroupDTOList = new ArrayList<>(); + List userAndGroupDTOList = new ArrayList<>(); permissionGroupList.forEach(permissionGroup -> { Stream.ofNullable(permissionGroup.getAssignedToUserIds()).flatMap(Collection::stream).filter(userId -> !userIds.contains(userId)).forEach(userId -> { - userAndGroupDTOList.add(UserAndPermissionGroupDTO.builder() + userAndGroupDTOList.add(WorkspaceMemberInfoDTO.builder() .userId(userId) .permissionGroupName(permissionGroup.getName()) .permissionGroupId(permissionGroup.getId()) @@ -339,4 +309,42 @@ public class UserWorkspaceServiceCEImpl implements UserWorkspaceServiceCE { }); return userAndGroupDTOList; } + + protected Flux getPermissionGroupsForWorkspace(String workspaceId) { + Mono workspaceMono = workspaceRepository.findById(workspaceId, AclPermission.READ_WORKSPACES) + .switchIfEmpty(Mono.error(new AppsmithException(AppsmithError.NO_RESOURCE_FOUND, FieldName.WORKSPACE, workspaceId))); + + // Get default permission groups + return workspaceMono + .flatMapMany(workspace -> permissionGroupService.getByDefaultWorkspace(workspace, AclPermission.READ_PERMISSION_GROUP_MEMBERS)); + } + + private Comparator getWorkspaceMemberComparator() { + return new Comparator<>() { + @Override + public int compare(WorkspaceMemberInfoDTO o1, WorkspaceMemberInfoDTO o2) { + int order1 = getOrder(o1.getPermissionGroupName()); + int order2 = getOrder(o2.getPermissionGroupName()); + + // Administrator > Developer > App viewer + int permissionGroupSortOrder = order1 - order2; + + if (permissionGroupSortOrder != 0) { + return permissionGroupSortOrder; + } + + return o1.getUsername().compareTo(o2.getUsername()); + } + + private int getOrder(String name) { + if (name.startsWith(FieldName.ADMINISTRATOR)) { + return 0; + } else if (name.startsWith(FieldName.DEVELOPER)) { + return 1; + } else { + return 2; + } + } + }; + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ApplicationFetcherCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ApplicationFetcherCEImpl.java index 4c9cd0c1b3..801af51c11 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ApplicationFetcherCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/ApplicationFetcherCEImpl.java @@ -9,7 +9,7 @@ import com.appsmith.server.domains.UserData; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.PageDTO; import com.appsmith.server.dtos.ReleaseNode; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.dtos.UserHomepageDTO; import com.appsmith.server.dtos.WorkspaceApplicationsDTO; import com.appsmith.server.exceptions.AppsmithError; @@ -144,7 +144,7 @@ public class ApplicationFetcherCEImpl implements ApplicationFetcherCE { .collectList() .cache(); - Mono>> userAndPermissionGroupMapDTO = workspacesFromRepoFlux + Mono>> userAndPermissionGroupMapDTO = workspacesFromRepoFlux .map(Workspace::getId) .collect(Collectors.toSet()) .flatMap(workspaceIds -> userWorkspaceService.getWorkspaceMembers(workspaceIds)); @@ -155,7 +155,7 @@ public class ApplicationFetcherCEImpl implements ApplicationFetcherCE { Map> applicationsCollectionByWorkspaceId = tuple.getT2(); - Map> userAndPermissionGroupMapDTOByWorkspaceId = tuple.getT3(); + Map> userAndPermissionGroupMapDTOByWorkspaceId = tuple.getT3(); List workspaceApplicationsDTOS = new ArrayList<>(); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/EmailEventHandlerCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/EmailEventHandlerCEImpl.java index 8157e12750..cc10e52514 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/EmailEventHandlerCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/EmailEventHandlerCEImpl.java @@ -8,7 +8,7 @@ import com.appsmith.server.domains.CommentThread; import com.appsmith.server.domains.GitApplicationMetadata; import com.appsmith.server.domains.UserRole; import com.appsmith.server.domains.Workspace; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.events.CommentAddedEvent; import com.appsmith.server.events.CommentThreadClosedEvent; import com.appsmith.server.helpers.CommentUtils; @@ -70,7 +70,7 @@ public class EmailEventHandlerCEImpl implements EmailEventHandlerCE { .zipWith(userWorkspaceService.getWorkspaceMembers(objects.getT1().getWorkspaceId())) .map(tuple -> { Workspace workspace = tuple.getT1(); - List workspaceMembers = tuple.getT2(); + List workspaceMembers = tuple.getT2(); String pagename = objects.getT2(); applicationEventPublisher.publishEvent( new CommentAddedEvent( @@ -197,7 +197,7 @@ public class EmailEventHandlerCEImpl implements EmailEventHandlerCE { return emailSender.sendMail(receiverEmail, emailSubject, COMMENT_ADDED_EMAIL_TEMPLATE, templateParams); } - private Mono getAddCommentEmailSenderMono(UserAndPermissionGroupDTO userAndGroupDTO, Comment comment, String originHeader, + private Mono getAddCommentEmailSenderMono(WorkspaceMemberInfoDTO userAndGroupDTO, Comment comment, String originHeader, Application application, String pagename) { String receiverName = StringUtils.isEmpty(userAndGroupDTO.getName()) ? "User" : userAndGroupDTO.getName(); String receiverEmail = userAndGroupDTO.getUsername(); @@ -261,12 +261,12 @@ public class EmailEventHandlerCEImpl implements EmailEventHandlerCE { ); } - private Mono sendEmailForCommentAdded(Workspace workspace, List workspaceMembers, + private Mono sendEmailForCommentAdded(Workspace workspace, List workspaceMembers, Application application, Comment comment, String originHeader, Set subscribers, String pagename) { List> emailMonos = new ArrayList<>(); - for (UserAndPermissionGroupDTO user : workspaceMembers) { + for (WorkspaceMemberInfoDTO user : workspaceMembers) { if(!comment.getAuthorUsername().equals(user.getUsername()) && subscribers.contains(user.getUsername())) { emailMonos.add(getAddCommentEmailSenderMono(user, comment, originHeader, application, pagename)); } diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceTest.java index 863f7012da..ea59036bf5 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceTest.java @@ -11,7 +11,7 @@ import com.appsmith.server.domains.User; import com.appsmith.server.domains.UserRole; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.UpdatePermissionGroupDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.helpers.PolicyUtils; import com.appsmith.server.repositories.ApplicationRepository; @@ -162,7 +162,7 @@ public class UserWorkspaceServiceTest { Set uniqueUsersInWorkspaceBefore = userWorkspaceService.getWorkspaceMembers(workspace.getId()) .flatMapMany(workspaceMembers -> Flux.fromIterable(workspaceMembers)) - .map(UserAndPermissionGroupDTO::getUserId) + .map(WorkspaceMemberInfoDTO::getUserId) .collect(Collectors.toSet()) .block(); @@ -245,7 +245,7 @@ public class UserWorkspaceServiceTest { updatePermissionGroupDTO.setNewPermissionGroupId(developerPermissionGroup.getId()); String origin = "http://random-origin.test"; - Mono updateUserRoleMono = userWorkspaceService.updatePermissionGroupForMember(workspace.getId(), updatePermissionGroupDTO, origin); + Mono updateUserRoleMono = userWorkspaceService.updatePermissionGroupForMember(workspace.getId(), updatePermissionGroupDTO, origin); StepVerifier.create(updateUserRoleMono).expectErrorMessage( AppsmithError.REMOVE_LAST_WORKSPACE_ADMIN_ERROR.getMessage() @@ -285,7 +285,7 @@ public class UserWorkspaceServiceTest { updatePermissionGroupDTO.setNewPermissionGroupId(developerPermissionGroup.getId()); String origin = "http://random-origin.test"; - Mono updateUserRoleMono = userWorkspaceService.updatePermissionGroupForMember(workspace.getId(), updatePermissionGroupDTO, origin); + Mono updateUserRoleMono = userWorkspaceService.updatePermissionGroupForMember(workspace.getId(), updatePermissionGroupDTO, origin); StepVerifier.create(updateUserRoleMono) .assertNext(userRole1 -> { diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceUnitTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceUnitTest.java index 736a301417..3daaf4d050 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceUnitTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/UserWorkspaceServiceUnitTest.java @@ -6,7 +6,7 @@ import com.appsmith.server.constants.FieldName; import com.appsmith.server.domains.PermissionGroup; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.PermissionGroupInfoDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.helpers.PolicyUtils; import com.appsmith.server.notifications.EmailSender; @@ -127,7 +127,7 @@ public class UserWorkspaceServiceUnitTest { Mockito.when(userRepository.findAllById(ArgumentMatchers.>any())) .thenReturn(Flux.empty()); - Mono> workspaceMembers = userWorkspaceService.getWorkspaceMembers(testWorkspace.getId()); + Mono> workspaceMembers = userWorkspaceService.getWorkspaceMembers(testWorkspace.getId()); StepVerifier .create(workspaceMembers) .assertNext(userAndGroupDTOs -> { @@ -147,7 +147,7 @@ public class UserWorkspaceServiceUnitTest { Mockito.when(userRepository.findAllById(ArgumentMatchers.>any())) .thenReturn(Flux.empty()); - Mono> workspaceMembers = userWorkspaceService.getWorkspaceMembers(sampleWorkspaceId); + Mono> workspaceMembers = userWorkspaceService.getWorkspaceMembers(sampleWorkspaceId); StepVerifier .create(workspaceMembers) .expectErrorMessage(AppsmithError.NO_RESOURCE_FOUND.getMessage(FieldName.WORKSPACE, sampleWorkspaceId)) diff --git a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/WorkspaceServiceTest.java b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/WorkspaceServiceTest.java index 83e5fb0e55..21673a2bb5 100644 --- a/app/server/appsmith-server/src/test/java/com/appsmith/server/services/WorkspaceServiceTest.java +++ b/app/server/appsmith-server/src/test/java/com/appsmith/server/services/WorkspaceServiceTest.java @@ -15,7 +15,7 @@ import com.appsmith.server.domains.User; import com.appsmith.server.domains.Workspace; import com.appsmith.server.dtos.InviteUsersDTO; import com.appsmith.server.dtos.PermissionGroupInfoDTO; -import com.appsmith.server.dtos.UserAndPermissionGroupDTO; +import com.appsmith.server.dtos.WorkspaceMemberInfoDTO; import com.appsmith.server.exceptions.AppsmithError; import com.appsmith.server.exceptions.AppsmithException; import com.appsmith.server.helpers.TextUtils; @@ -751,7 +751,7 @@ public class WorkspaceServiceTest { inviteUsersDTO.setPermissionGroupId(viewerPermissionGroupId); userAndAccessManagementService.inviteUsers(inviteUsersDTO, origin).block(); - Mono> usersMono = userWorkspaceService.getWorkspaceMembers(createdWorkspace.getId()); + Mono> usersMono = userWorkspaceService.getWorkspaceMembers(createdWorkspace.getId()); StepVerifier .create(usersMono) @@ -759,7 +759,7 @@ public class WorkspaceServiceTest { assertThat(users).isNotNull(); assertThat(users.size()).isEqualTo(6); // Assert that the members are sorted by the permission group and then email - UserAndPermissionGroupDTO userAndGroupDTO = users.get(0); + WorkspaceMemberInfoDTO userAndGroupDTO = users.get(0); assertThat(userAndGroupDTO.getUsername()).isEqualTo("api_user"); assertThat(userAndGroupDTO.getPermissionGroupName()).startsWith(ADMINISTRATOR); userAndGroupDTO = users.get(1);