@Nullable
private String groupUuid;
+ @Nullable
+ private String groupName;
+
@Nullable
private String userUuid;
@Nullable
private String role;
- public PermissionNewValue(GroupPermissionDto groupPermissionDto, String projectName) {
+ public PermissionNewValue(GroupPermissionDto groupPermissionDto) {
this.permissionUuid = groupPermissionDto.getUuid();
+ this.role = groupPermissionDto.getRole();
this.groupUuid = groupPermissionDto.getGroupUuid();
+ this.groupName = groupPermissionDto.getGroupName();
this.projectUuid = groupPermissionDto.getComponentUuid();
- this.role = groupPermissionDto.getRole();
- this.projectName = projectName;
+ this.projectName = groupPermissionDto.getComponentName();
}
public PermissionNewValue(UserPermissionDto permissionDto, @Nullable String projectName) {
this.projectName = projectName;
}
- public PermissionNewValue(@Nullable String role, @Nullable String groupUuid, @Nullable String rootComponentUuid,
+ public PermissionNewValue(@Nullable String role, @Nullable String groupUuid, @Nullable String groupName, @Nullable String rootComponentUuid,
@Nullable String projectName, @Nullable String userUuid) {
this.role = role;
this.groupUuid = groupUuid;
+ this.groupName = groupName;
this.projectUuid = rootComponentUuid;
this.projectName = projectName;
this.userUuid = userUuid;
return this.groupUuid;
}
+ @CheckForNull
+ public String getGroupName() {
+ return this.groupName;
+ }
+
@CheckForNull
public String getProjectUuid() {
return this.projectUuid;
public String toString() {
StringBuilder sb = new StringBuilder("{");
addField(sb, "\"permissionUuid\": ", this.permissionUuid, true);
+ addField(sb, "\"role\": ", this.role, true);
addField(sb, "\"groupUuid\": ", this.groupUuid, true);
+ addField(sb, "\"groupName\": ", this.groupName, true);
addField(sb, "\"projectUuid\": ", this.projectUuid, true);
- addField(sb, "\"role\": ", this.role, true);
addField(sb, "\"projectName\": ", this.projectName, true);
addField(sb, "\"userUuid\": ", this.userUuid, true);
endString(sb);
return mapper(session).selectGroupUuidsWithPermissionOnProjectBut(projectUuid, permission);
}
- public void insert(DbSession dbSession, GroupPermissionDto dto, @Nullable ComponentDto componentDto) {
- mapper(dbSession).insert(dto);
+ public void insert(DbSession dbSession, GroupPermissionDto groupPermissionDto) {
+ mapper(dbSession).insert(groupPermissionDto);
if (auditPersister != null) {
- String projectName = (componentDto != null) ? componentDto.name() : null;
- auditPersister.addGroupPermission(dbSession, new PermissionNewValue(dto, projectName));
+ auditPersister.addGroupPermission(dbSession, new PermissionNewValue(groupPermissionDto));
}
}
mapper(dbSession).deleteByRootComponentUuid(rootComponentUuid);
if (auditPersister != null) {
- auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(null, null, rootComponentUuid, projectName, null));
+ auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(null, null, null, rootComponentUuid, projectName, null));
}
}
* Delete all permissions of the specified group (group "AnyOne" if {@code groupUuid} is {@code null}) for the specified
* component.
*/
- public int deleteByRootComponentUuidAndGroupUuid(DbSession dbSession, String rootComponentUuid, @Nullable String groupUuid, String projectName) {
- int deletedRecords = mapper(dbSession).deleteByRootComponentUuidAndGroupUuid(rootComponentUuid, groupUuid);
+ public int deleteByRootComponentUuidAndGroupUuid(DbSession dbSession, String rootComponentUuid, @Nullable String groupUuid) {
+ return mapper(dbSession).deleteByRootComponentUuidAndGroupUuid(rootComponentUuid, groupUuid);
+ }
+
+ public int deleteByRootComponentUuidForAnyOne(DbSession dbSession, String rootComponentUuid, String projectName) {
+ int deletedRecords = mapper(dbSession).deleteByRootComponentUuidAndGroupUuid(rootComponentUuid, null);
if (auditPersister != null) {
- auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(null, groupUuid, rootComponentUuid, projectName, null));
+ auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(null, null, null, rootComponentUuid, projectName, null));
}
return deletedRecords;
int deletedRecords = mapper(dbSession).deleteByRootComponentUuidAndPermission(rootComponentUuid, permission);
if (auditPersister != null) {
- auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(permission, null, rootComponentUuid, projectName, null));
+ auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(permission, null, null, rootComponentUuid, projectName, null));
}
return deletedRecords;
* @param groupUuid if null, then anyone, else uuid of group
* @param rootComponentUuid if null, then global permission, otherwise the uuid of root component (project)
*/
- public void delete(DbSession dbSession, String permission, @Nullable String groupUuid, @Nullable String rootComponentUuid, @Nullable ComponentDto componentDto) {
+ public void delete(DbSession dbSession, String permission,
+ @Nullable String groupUuid, @Nullable String groupName, @Nullable String rootComponentUuid, @Nullable ComponentDto componentDto) {
+
mapper(dbSession).delete(permission, groupUuid, rootComponentUuid);
if (auditPersister != null) {
String projectName = (componentDto != null) ? componentDto.name() : null;
- auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(permission, groupUuid, rootComponentUuid, projectName, null));
+ auditPersister.deleteGroupPermission(dbSession, new PermissionNewValue(permission, groupUuid, groupName, rootComponentUuid, projectName, null));
}
}
public class GroupPermissionDto {
private String uuid;
+ private String role;
private String groupUuid;
+ private String groupName;
private String componentUuid;
- private String role;
+ private String componentName;
public String getUuid() {
return uuid;
this.role = role;
return this;
}
+
+ @Nullable
+ public String getGroupName() {
+ return groupName;
+ }
+
+ public GroupPermissionDto setGroupName(@Nullable String groupName) {
+ this.groupName = groupName;
+ return this;
+ }
+
+ @Nullable
+ public String getComponentName() {
+ return componentName;
+ }
+
+ public GroupPermissionDto setComponentName(@Nullable String componentName) {
+ this.componentName = componentName;
+ return this;
+ }
}
mapper(dbSession).deleteGlobalPermission(userUuid, permission);
if (auditPersister != null) {
- auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, null,
+ auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, null, null,
null, userUuid));
}
}
mapper(dbSession).deleteProjectPermission(userUuid, permission, projectUuid);
if (auditPersister != null) {
- auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, projectUuid, projectName, userUuid));
+ auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, null, projectUuid, projectName, userUuid));
}
}
mapper(dbSession).deleteProjectPermissions(projectUuid);
if (auditPersister != null) {
- auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(null, null, projectUuid, projectName, null));
+ auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(null, null, null, projectUuid, projectName, null));
}
}
int deletedRows = mapper(dbSession).deleteProjectPermissionOfAnyUser(projectUuid, permission);
if (auditPersister != null) {
- auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, projectUuid, projectName, null));
+ auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(permission, null, null, projectUuid, projectName, null));
}
return deletedRows;
mapper(dbSession).deleteByUserUuid(userUuid);
if (auditPersister != null) {
- auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(null, null, null, null, userUuid));
+ auditPersister.deleteUserPermission(dbSession, new PermissionNewValue(null, null, null, null, null, userUuid));
}
}
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
db.users().insertProjectPermissionOnAnyone("perm4", project1);
- underTest.delete(dbSession, "perm2", group1.getUuid(), null, project1);
+ underTest.delete(dbSession, "perm2", group1.getUuid(), group1.getName(), null, project1);
dbSession.commit();
assertThatNoPermission("perm2");
db.users().insertPermissionOnGroup(group1, "perm2");
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
- underTest.delete(dbSession, "perm2", group1.getUuid(), null, project1);
+ underTest.delete(dbSession, "perm2", group1.getUuid(), group1.getName(), null, project1);
dbSession.commit();
assertThatNoPermission("perm2");
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
db.users().insertProjectPermissionOnAnyone("perm4", project1);
- underTest.delete(dbSession, "perm1", null, null, project1);
+ underTest.delete(dbSession, "perm1", null, null, null, project1);
dbSession.commit();
assertThatNoPermission("perm1");
db.users().insertPermissionOnGroup(group1, "perm2");
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
- underTest.delete(dbSession, "perm3", group1.getUuid(), project1.uuid(), project1);
+ underTest.delete(dbSession, "perm3", group1.getUuid(), group1.getName(), project1.uuid(), project1);
dbSession.commit();
assertThatNoPermission("perm3");
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
db.users().insertProjectPermissionOnAnyone("perm4", project1);
- underTest.delete(dbSession, "perm3", group1.getUuid(), project1.uuid(), project1);
+ underTest.delete(dbSession, "perm3", group1.getUuid(), group1.getName(), project1.uuid(), project1);
dbSession.commit();
assertThatNoPermission("perm3");
db.users().insertProjectPermissionOnGroup(group1, "perm3", project1);
db.users().insertProjectPermissionOnAnyone("perm4", project1);
- underTest.delete(dbSession, "perm4", null, project1.uuid(), project1);
+ underTest.delete(dbSession, "perm4", null, null, project1.uuid(), project1);
dbSession.commit();
assertThatNoPermission("perm4");
assertThat(underTest.selectGlobalPermissionsOfGroup(dbSession, group.getUuid()))
.containsOnly("p4");
- int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null, project.name());
+ int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null);
assertThat(deletedCount).isEqualTo(1);
assertThat(underTest.selectProjectPermissionsOfGroup(dbSession, null, project.uuid()))
assertThat(underTest.selectGlobalPermissionsOfGroup(dbSession, group2.getUuid()))
.containsOnly("p7");
- int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group1.getUuid(), project.name());
+ int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group1.getUuid());
assertThat(deletedCount).isEqualTo(1);
assertThat(underTest.selectProjectPermissionsOfGroup(dbSession, null, project.uuid()))
assertThat(underTest.selectGlobalPermissionsOfGroup(dbSession, group2.getUuid()))
.containsOnly("p7");
- deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group2.getUuid(), project.name());
+ deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group2.getUuid());
assertThat(deletedCount).isEqualTo(2);
assertThat(underTest.selectProjectPermissionsOfGroup(dbSession, null, project.uuid()))
public void deleteByRootComponentUuidAndGroupUuid_has_no_effect_if_component_does_not_exist() {
GroupDto group = db.users().insertGroup();
- assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, "1234", null, "")).isZero();
- assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, "1234", group.getUuid(), "")).isZero();
+ assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, "1234", null)).isZero();
+ assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, "1234", group.getUuid())).isZero();
}
@Test
ComponentDto project = randomPublicOrPrivateProject();
GroupDto group = db.users().insertGroup();
- assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null, project.name())).isZero();
- assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group.getUuid(), project.name())).isZero();
+ assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null)).isZero();
+ assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group.getUuid())).isZero();
}
@Test
public void deleteByRootComponentUuidAndGroupUuid_has_no_effect_if_group_does_not_exist() {
ComponentDto project = randomPublicOrPrivateProject();
- assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), "5678", project.name())).isZero();
+ assertThat(underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), "5678")).isZero();
}
@Test
db.users().insertPermissionOnAnyone("p2");
db.users().insertPermissionOnGroup(group1, "p3");
- int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null, project.name());
+ int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), null);
assertThat(deletedCount).isZero();
assertThat(underTest.selectProjectPermissionsOfGroup(dbSession, null, project.uuid()))
db.users().insertPermissionOnAnyone("p2");
db.users().insertPermissionOnGroup(group1, "p3");
- int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group2.getUuid(), project.name());
+ int deletedCount = underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group2.getUuid());
assertThat(deletedCount).isZero();
assertThat(underTest.selectProjectPermissionsOfGroup(dbSession, group1.getUuid(), project.uuid()))
GroupPermissionDto dto = new GroupPermissionDto()
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
+ .setGroupName(group.getName())
.setRole(ADMIN);
- underTest.insert(dbSession, dto, null);
+ underTest.insert(dbSession, dto);
verify(auditPersister).addGroupPermission(eq(dbSession), newValueCaptor.capture());
PermissionNewValue newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(dto.getUuid(), group.getUuid(), null, dto.getRole(), null);
+ .containsExactly(dto.getUuid(), group.getUuid(), group.getName(), null, dto.getRole(), null);
assertThat(newValue.toString()).doesNotContain("projectUuid");
- underTest.delete(dbSession, ADMIN, group.getUuid(), null, null);
+ underTest.delete(dbSession, ADMIN, group.getUuid(), group.getName(), null, null);
verify(auditPersister).deleteGroupPermission(eq(dbSession), newValueCaptor.capture());
newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(null, group.getUuid(), null, ADMIN, null);
+ .containsExactly(null, group.getUuid(), group.getName(), null, ADMIN, null);
assertThat(newValue.toString()).doesNotContain("permissionUuid");
}
GroupDto group = db.users().insertGroup();
ComponentDto project = db.components().insertPrivateProject();
GroupPermissionDto dto = getGroupPermission(group, project);
- underTest.insert(dbSession, dto, project);
+ underTest.insert(dbSession, dto);
verify(auditPersister).addGroupPermission(eq(dbSession), newValueCaptor.capture());
PermissionNewValue newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(dto.getUuid(), group.getUuid(), project.uuid(), dto.getRole(), project.name());
+ .containsExactly(dto.getUuid(), group.getUuid(), group.getName(), project.uuid(), dto.getRole(), project.name());
assertThat(newValue.toString()).contains("projectUuid");
underTest.deleteByRootComponentUuid(dbSession, project.uuid(), project.name());
verify(auditPersister).deleteGroupPermission(eq(dbSession), newValueCaptor.capture());
newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(null, null, project.uuid(), null, project.name());
+ .containsExactly(null, null, null, project.uuid(), null, project.name());
assertThat(newValue.toString()).doesNotContain("permissionUuid");
}
GroupDto group = db.users().insertGroup();
ComponentDto project = db.components().insertPrivateProject();
GroupPermissionDto dto = getGroupPermission(group, project);
- underTest.insert(dbSession, dto, project);
+ underTest.insert(dbSession, dto);
verify(auditPersister).addGroupPermission(eq(dbSession), newValueCaptor.capture());
PermissionNewValue newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(dto.getUuid(), group.getUuid(), project.uuid(), dto.getRole(), project.name());
+ .containsExactly(dto.getUuid(), group.getUuid(), group.getName(), project.uuid(), dto.getRole(), project.name());
assertThat(newValue.toString()).contains("projectUuid");
- underTest.deleteByRootComponentUuidAndGroupUuid(dbSession, project.uuid(), group.getUuid(), project.name());
+ underTest.deleteByRootComponentUuidForAnyOne(dbSession, project.uuid(), project.name());
verify(auditPersister).deleteGroupPermission(eq(dbSession), newValueCaptor.capture());
newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(null, group.getUuid(), project.uuid(), null, project.name());
+ .containsExactly(null, project.uuid(), null, project.name());
assertThat(newValue.toString()).doesNotContain("permissionUuid");
}
GroupDto group = db.users().insertGroup();
ComponentDto project = db.components().insertPrivateProject();
GroupPermissionDto dto = getGroupPermission(group, project);
- underTest.insert(dbSession, dto, project);
+ underTest.insert(dbSession, dto);
verify(auditPersister).addGroupPermission(eq(dbSession), newValueCaptor.capture());
PermissionNewValue newValue = newValueCaptor.getValue();
assertThat(newValue)
- .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getProjectUuid,
+ .extracting(PermissionNewValue::getPermissionUuid, PermissionNewValue::getGroupUuid, PermissionNewValue::getGroupName, PermissionNewValue::getProjectUuid,
PermissionNewValue::getRole, PermissionNewValue::getProjectName)
- .containsExactly(dto.getUuid(), group.getUuid(), project.uuid(), dto.getRole(), project.name());
+ .containsExactly(dto.getUuid(), group.getUuid(), group.getName(), project.uuid(), dto.getRole(), project.name());
assertThat(newValue.toString()).contains("projectUuid");
underTest.deleteByRootComponentUuidAndPermission(dbSession, project.uuid(), dto.getRole(), project.name());
return new GroupPermissionDto()
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
+ .setGroupName(group.getName())
.setRole(ADMIN)
- .setComponentUuid(project.uuid());
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
}
}
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setRole(permission);
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, null);
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
return dto;
}
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
.setRole(permission);
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, null);
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
return dto;
}
}
public void deletePermissionFromGroup(GroupDto group, String permission) {
- db.getDbClient().groupPermissionDao().delete(db.getSession(), permission, group.getUuid(), null, null);
+ db.getDbClient().groupPermissionDao().delete(db.getSession(), permission, group.getUuid(), group.getName(), null, null);
db.commit();
}
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setRole(permission)
- .setComponentUuid(project.uuid());
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, project);
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
return dto;
}
public void deleteProjectPermissionFromAnyone(ComponentDto project, String permission) {
- db.getDbClient().groupPermissionDao().delete(db.getSession(), permission, null, project.uuid(), project);
+ db.getDbClient().groupPermissionDao().delete(db.getSession(), permission, null, null, project.uuid(), project);
db.commit();
}
GroupPermissionDto dto = new GroupPermissionDto()
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
+ .setGroupName(group.getName())
.setRole(permission)
- .setComponentUuid(project.uuid());
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, project);
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
return dto;
}
GroupPermissionDto dto = new GroupPermissionDto()
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
+ .setGroupName(group.getName())
.setRole(USER)
- .setComponentUuid(project.uuid());
- dbClient.groupPermissionDao().insert(dbSession, dto, project);
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
+ dbClient.groupPermissionDao().insert(dbSession, dto);
}
dbSession.commit();
package org.sonar.server.permission;
import java.util.List;
+import java.util.Optional;
import org.sonar.core.permission.GlobalPermissions;
import org.sonar.core.util.UuidFactory;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.permission.GroupPermissionDto;
+import org.sonar.db.user.GroupDto;
import static com.google.common.base.Preconditions.checkNotNull;
import static java.lang.String.format;
}
validateNotAnyoneAndAdminPermission(change.getPermission(), change.getGroupUuidOrAnyone());
+
+ String groupUuid = change.getGroupUuidOrAnyone().getUuid();
GroupPermissionDto addedDto = new GroupPermissionDto()
.setUuid(uuidFactory.create())
.setRole(change.getPermission())
- .setGroupUuid(change.getGroupUuidOrAnyone().getUuid())
+ .setGroupUuid(groupUuid)
+ .setComponentName(change.getProjectName())
.setComponentUuid(change.getProjectUuid());
- dbClient.groupPermissionDao().insert(dbSession, addedDto, change.getProject());
+
+ Optional.ofNullable(groupUuid)
+ .map(uuid -> dbClient.groupDao().selectByUuid(dbSession, groupUuid))
+ .map(GroupDto::getName)
+ .ifPresent(addedDto::setGroupName);
+
+ dbClient.groupPermissionDao().insert(dbSession, addedDto);
return true;
}
return false;
}
checkIfRemainingGlobalAdministrators(dbSession, change);
+ String groupUuid = change.getGroupUuidOrAnyone().getUuid();
+ String groupName = Optional.ofNullable(groupUuid)
+ .map(uuid -> dbClient.groupDao().selectByUuid(dbSession, uuid))
+ .map(GroupDto::getName)
+ .orElse(null);
+
dbClient.groupPermissionDao().delete(dbSession,
change.getPermission(),
- change.getGroupUuidOrAnyone().getUuid(),
+ groupUuid,
+ groupName,
change.getProjectUuid(),
change.getProject());
return true;
return project;
}
+ @CheckForNull
+ public String getProjectName() {
+ return project == null ? null : project.name();
+ }
+
@CheckForNull
public String getProjectUuid() {
return project == null ? null : project.uuid();
.filter(gp -> groupNameValidForProject(project, gp.getGroupName()))
.filter(gp -> permissionValidForProject(project, gp.getPermission()))
.forEach(gp -> {
+ String groupUuid = isAnyone(gp.getGroupName()) ? null : gp.getGroupUuid();
+ String groupName = groupUuid == null ? null : dbClient.groupDao().selectByUuid(dbSession, groupUuid).getName();
GroupPermissionDto dto = new GroupPermissionDto()
.setUuid(uuidFactory.create())
- .setGroupUuid(isAnyone(gp.getGroupName()) ? null : gp.getGroupUuid())
+ .setGroupUuid(groupUuid)
+ .setGroupName(groupName)
.setRole(gp.getPermission())
- .setComponentUuid(project.uuid());
- dbClient.groupPermissionDao().insert(dbSession, dto, project);
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
+ dbClient.groupPermissionDao().insert(dbSession, dto);
});
List<PermissionTemplateCharacteristicDto> characteristics = dbClient.permissionTemplateCharacteristicDao().selectByTemplateUuids(dbSession, singletonList(template.getUuid()));
import org.sonar.db.component.ComponentMapper;
import org.sonar.db.permission.GroupPermissionDto;
import org.sonar.db.permission.UserPermissionDto;
+import org.sonar.db.user.GroupDto;
import org.sonar.server.component.ComponentFinder;
import org.sonar.server.es.ProjectIndexer;
import org.sonar.server.es.ProjectIndexers;
import org.sonarqube.ws.client.project.ProjectsWsParameters;
import static java.util.Collections.singletonList;
+import static java.util.Optional.ofNullable;
import static org.sonar.api.CoreProperties.CORE_ALLOW_PERMISSION_MANAGEMENT_FOR_PROJECT_ADMINS_DEFAULT_VALUE;
import static org.sonar.api.CoreProperties.CORE_ALLOW_PERMISSION_MANAGEMENT_FOR_PROJECT_ADMINS_PROPERTY;
import static org.sonar.api.web.UserRole.ADMIN;
private void updatePermissionsToPrivate(DbSession dbSession, ComponentDto component) {
// delete project permissions for group AnyOne
- dbClient.groupPermissionDao().deleteByRootComponentUuidAndGroupUuid(dbSession, component.uuid(), null, component.name());
+ dbClient.groupPermissionDao().deleteByRootComponentUuidForAnyOne(dbSession, component.uuid(), component.name());
// grant UserRole.CODEVIEWER and UserRole.USER to any group or user with at least one permission on project
PUBLIC_PERMISSIONS.forEach(permission -> {
dbClient.groupPermissionDao().selectGroupUuidsWithPermissionOnProjectBut(dbSession, component.uuid(), permission)
}
private void insertProjectPermissionOnGroup(DbSession dbSession, ComponentDto component, String permission, String groupUuid) {
+ String groupName = ofNullable(dbClient.groupDao().selectByUuid(dbSession, groupUuid)).map(GroupDto::getName).orElse(null);
dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto()
- .setUuid(uuidFactory.create())
- .setComponentUuid(component.uuid())
- .setGroupUuid(groupUuid)
- .setRole(permission),
- component);
+ .setUuid(uuidFactory.create())
+ .setComponentUuid(component.uuid())
+ .setGroupUuid(groupUuid)
+ .setGroupName(groupName)
+ .setRole(permission)
+ .setComponentName(component.name()));
}
private void updatePermissionsToPublic(DbSession dbSession, ComponentDto component) {
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setComponentUuid(project.uuid())
- .setRole(permission),
- project);
+ .setComponentName(project.name())
+ .setRole(permission));
session.commit();
userSession.logIn().addProjectPermission(permission, project);
}
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setRole(perm)
- .setComponentUuid(privateProject.uuid());
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, privateProject);
+ .setComponentUuid(privateProject.uuid())
+ .setComponentName(privateProject.name());
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
}
}
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setRole(perm)
- .setComponentUuid(project.uuid());
- db.getDbClient().groupPermissionDao().insert(db.getSession(), dto, project);
+ .setComponentUuid(project.uuid())
+ .setComponentName(project.name());
+ db.getDbClient().groupPermissionDao().insert(db.getSession(), dto);
db.commit();
}
}
.setUuid(Uuids.createFast())
.setGroupUuid(null)
.setRole(permission)
- .setComponentUuid(component.uuid());
- dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto, component);
+ .setComponentUuid(component.uuid())
+ .setComponentName(component.name());
+ dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto);
dbTester.commit();
}
GroupPermissionDto dto = new GroupPermissionDto()
.setUuid(Uuids.createFast())
.setGroupUuid(group.getUuid())
+ .setGroupName(group.getName())
.setRole(permission)
- .setComponentUuid(component.uuid());
- dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto, component);
+ .setComponentUuid(component.uuid())
+ .setComponentName(component.name());
+ dbTester.getDbClient().groupPermissionDao().insert(dbTester.getSession(), dto);
dbTester.commit();
}