private Set<OrganizationPermission> loadOrganizationPermissions(String organizationUuid) { Set<String> permissionKeys; try (DbSession dbSession = dbClient.openSession(false)) { if (userDto != null && userDto.getId() != null) { permissionKeys = dbClient.authorizationDao().selectOrganizationPermissions(dbSession, organizationUuid, userDto.getId()); } else { permissionKeys = dbClient.authorizationDao().selectOrganizationPermissionsOfAnonymous(dbSession, organizationUuid); } } return permissionKeys.stream() .map(OrganizationPermission::fromKey) .collect(MoreCollectors.toSet(permissionKeys.size())); }
/** * Union of the permissions granted to: * - the user * - the groups which user is member * - anyone */ @Test public void selectOrganizationPermissions_for_logged_in_user() { ComponentDto project = db.components().insertPrivateProject(organization); db.users().insertMember(group1, user); db.users().insertPermissionOnUser(organization, user, "perm1"); db.users().insertProjectPermissionOnUser(user, "perm42", project); db.users().insertPermissionOnGroup(group1, "perm2"); db.users().insertPermissionOnAnyone(organization, "perm3"); // ignored permissions, user is not member of this group db.users().insertPermissionOnGroup(group2, "ignored"); Set<String> permissions = underTest.selectOrganizationPermissions(dbSession, organization.getUuid(), user.getId()); assertThat(permissions).containsOnly("perm1", "perm2", "perm3"); }
private Set<OrganizationPermission> loadOrganizationPermissions(String organizationUuid) { Set<String> permissionKeys; try (DbSession dbSession = dbClient.openSession(false)) { if (userDto != null && userDto.getId() != null) { permissionKeys = dbClient.authorizationDao().selectOrganizationPermissions(dbSession, organizationUuid, userDto.getId()); } else { permissionKeys = dbClient.authorizationDao().selectOrganizationPermissionsOfAnonymous(dbSession, organizationUuid); } } return permissionKeys.stream() .map(OrganizationPermission::fromKey) .collect(MoreCollectors.toSet(permissionKeys.size())); }