@Test void testAddMemberNotAValidGroupRole() { when(group.getRoles()).thenReturn(emptyList()); assertThrows( NotAValidGroupRoleException.class, () -> groupService.addMember(group, user, managerRole)); }
@RunAsSystem public void addMember(final Group group, final User user, final Role role) { ArrayList<Role> groupRoles = newArrayList(group.getRoles()); Collection<RoleMembership> memberships = roleMembershipService.getMemberships(groupRoles); boolean isGroupRole = isGroupRole(role, groupRoles); if (!isGroupRole) { throw new NotAValidGroupRoleException(role, group); } boolean isMember = memberships.stream().parallel().anyMatch(m -> m.getUser().equals(user)); if (isMember) { throw new IsAlreadyMemberException(user, group); } roleMembershipService.addUserToRole(user, role); }
GroupService { @RunAsSystem public void addMember(final Group group, final User user, final Role role) { ArrayList<Role> groupRoles = newArrayList(group.getRoles()); Collection<RoleMembership> memberships = roleMembershipService.getMemberships(groupRoles); boolean isGroupRole = isGroupRole(role, groupRoles); if (!isGroupRole) { throw new NotAValidGroupRoleException(role, group); } boolean isMember = memberships.stream().parallel().anyMatch(m -> m.getUser().equals(user)); if (isMember) { throw new IsAlreadyMemberException(user, group); } roleMembershipService.addUserToRole(user, role); } }
GroupService { @RunAsSystem public void addMember(final Group group, final User user, final Role role) { ArrayList<Role> groupRoles = newArrayList(group.getRoles()); Collection<RoleMembership> memberships = roleMembershipService.getMemberships(groupRoles); boolean isGroupRole = isGroupRole(role, groupRoles); if (!isGroupRole) { throw new NotAValidGroupRoleException(role, group); } boolean isMember = memberships.stream().parallel().anyMatch(m -> m.getUser().equals(user)); if (isMember) { throw new IsAlreadyMemberException(user, group); } roleMembershipService.addUserToRole(user, role); } @SuppressWarnings("java:S107")  GroupService(
      PackageFactory packageFactory,
      DataService dataService,
      GroupMetadata groupMetadata,
      RoleMembershipService roleMembershipService,
      RoleMembershipMetadata roleMembershipMetadata,
      MutableAclService aclService,
      PermissionService permissionService); }
GroupService { @RunAsSystem public void addMember(final Group group, final User user, final Role role) { ArrayList<Role> groupRoles = newArrayList(group.getRoles()); Collection<RoleMembership> memberships = roleMembershipService.getMemberships(groupRoles); boolean isGroupRole = isGroupRole(role, groupRoles); if (!isGroupRole) { throw new NotAValidGroupRoleException(role, group); } boolean isMember = memberships.stream().parallel().anyMatch(m -> m.getUser().equals(user)); if (isMember) { throw new IsAlreadyMemberException(user, group); } roleMembershipService.addUserToRole(user, role); } @SuppressWarnings("java:S107")  GroupService(
      PackageFactory packageFactory,
      DataService dataService,
      GroupMetadata groupMetadata,
      RoleMembershipService roleMembershipService,
      RoleMembershipMetadata roleMembershipMetadata,
      MutableAclService aclService,
      PermissionService permissionService); @Transactional void persist(GroupValue groupValue); @RunAsSystem Collection<Group> getGroups(); @RunAsSystem Group getGroup(String groupName); @RunAsSystem void addMember(final Group group, final User user, final Role role); @RunAsSystem void removeMember(final Group group, final User user); @RunAsSystem void updateMemberRole(final Group group, final User member, final Role newRole); @RunAsSystem boolean isGroupNameAvailable(final GroupValue groupValue); void deleteGroup(String groupName); void updateExtendsRole(Group group, Role groupRole, Role memberRole); void removeExtendsRole(Group group, Role memberRole); void grantDefaultPermissions(GroupValue groupValue); }
GroupService { @RunAsSystem public void addMember(final Group group, final User user, final Role role) { ArrayList<Role> groupRoles = newArrayList(group.getRoles()); Collection<RoleMembership> memberships = roleMembershipService.getMemberships(groupRoles); boolean isGroupRole = isGroupRole(role, groupRoles); if (!isGroupRole) { throw new NotAValidGroupRoleException(role, group); } boolean isMember = memberships.stream().parallel().anyMatch(m -> m.getUser().equals(user)); if (isMember) { throw new IsAlreadyMemberException(user, group); } roleMembershipService.addUserToRole(user, role); } @SuppressWarnings("java:S107")  GroupService(
      PackageFactory packageFactory,
      DataService dataService,
      GroupMetadata groupMetadata,
      RoleMembershipService roleMembershipService,
      RoleMembershipMetadata roleMembershipMetadata,
      MutableAclService aclService,
      PermissionService permissionService); @Transactional void persist(GroupValue groupValue); @RunAsSystem Collection<Group> getGroups(); @RunAsSystem Group getGroup(String groupName); @RunAsSystem void addMember(final Group group, final User user, final Role role); @RunAsSystem void removeMember(final Group group, final User user); @RunAsSystem void updateMemberRole(final Group group, final User member, final Role newRole); @RunAsSystem boolean isGroupNameAvailable(final GroupValue groupValue); void deleteGroup(String groupName); void updateExtendsRole(Group group, Role groupRole, Role memberRole); void removeExtendsRole(Group group, Role memberRole); void grantDefaultPermissions(GroupValue groupValue); static final String MANAGER; static final String EDITOR; static final String VIEWER; static final String AUTHORITY_MANAGER; static final String AUTHORITY_EDITOR; static final String AUTHORITY_VIEWER; static final Set<String> DEFAULT_ROLES; }