private List<String> selectOrganizationsWithNoMoreAdministrators(DbSession dbSession, UserDto user) { Set<String> organizationUuids = dbClient.authorizationDao().selectOrganizationUuidsOfUserWithGlobalPermission( dbSession, user.getId(), OrganizationPermission.ADMINISTER.getKey()); List<String> problematicOrganizations = new ArrayList<>(); for (String organizationUuid : organizationUuids) { int remaining = dbClient.authorizationDao().countUsersWithGlobalPermissionExcludingUser(dbSession, organizationUuid, OrganizationPermission.ADMINISTER.getKey(), user.getId()); if (remaining == 0) { problematicOrganizations.add(organizationUuid); } } return problematicOrganizations; }
private void ensureLastAdminIsNotRemoved(DbSession dbSession, OrganizationDto organizationDto, UserDto user) { int remainingAdmins = dbClient.authorizationDao().countUsersWithGlobalPermissionExcludingUser(dbSession, organizationDto.getUuid(), ADMINISTER.getKey(), user.getId()); checkRequest(remainingAdmins > 0, "The last administrator member cannot be removed"); } }
assertThat(underTest.countUsersWithGlobalPermissionExcludingUser(db.getSession(), organization.getUuid(), "p1", user1.getId())).isEqualTo(2); assertThat(underTest.countUsersWithGlobalPermissionExcludingUser(db.getSession(), organization.getUuid(), "p1", user3.getId())).isEqualTo(2); assertThat(underTest.countUsersWithGlobalPermissionExcludingUser(db.getSession(), organization.getUuid(), "p1", -1)).isEqualTo(3); assertThat(underTest.countUsersWithGlobalPermissionExcludingUser(db.getSession(), organization.getUuid(), "missingPermission", group1.getId())).isEqualTo(0);
private List<String> selectOrganizationsWithNoMoreAdministrators(DbSession dbSession, UserDto user) { Set<String> organizationUuids = dbClient.authorizationDao().selectOrganizationUuidsOfUserWithGlobalPermission( dbSession, user.getId(), OrganizationPermission.ADMINISTER.getKey()); List<String> problematicOrganizations = new ArrayList<>(); for (String organizationUuid : organizationUuids) { int remaining = dbClient.authorizationDao().countUsersWithGlobalPermissionExcludingUser(dbSession, organizationUuid, OrganizationPermission.ADMINISTER.getKey(), user.getId()); if (remaining == 0) { problematicOrganizations.add(organizationUuid); } } return problematicOrganizations; }
private void ensureLastAdminIsNotRemoved(DbSession dbSession, OrganizationDto organizationDto, UserDto user) { int remainingAdmins = dbClient.authorizationDao().countUsersWithGlobalPermissionExcludingUser(dbSession, organizationDto.getUuid(), ADMINISTER.getKey(), user.getId()); checkRequest(remainingAdmins > 0, "The last administrator member cannot be removed"); } }