Convert reading project access to use PermissionBackend
Reading the access sections for a project requires ACCESS permission, as the handlers filter references and groups depending on the caller. Change-Id: Ie5a3d58b5456593db6e6ac9725bb981bcef8b3a8
This commit is contained in:
committed by
David Pursehouse
parent
17ab8ce41e
commit
5bff3ab86b
@@ -95,7 +95,7 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
public ProjectAccessInfo apply(Project.NameKey nameKey)
|
||||
throws ResourceNotFoundException, ResourceConflictException, IOException {
|
||||
try {
|
||||
return this.apply(new ProjectResource(projectControlFactory.controlFor(nameKey, self.get())));
|
||||
return apply(new ProjectResource(projectControlFactory.controlFor(nameKey, self.get())));
|
||||
} catch (NoSuchProjectException e) {
|
||||
throw new ResourceNotFoundException(nameKey.get());
|
||||
}
|
||||
@@ -111,7 +111,7 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
Project.NameKey projectName = rsrc.getNameKey();
|
||||
ProjectAccessInfo info = new ProjectAccessInfo();
|
||||
ProjectConfig config;
|
||||
ProjectControl pc = open(projectName);
|
||||
ProjectControl pc = createProjectControl(projectName);
|
||||
RefControl metaConfigControl = pc.controlForRef(RefNames.REFS_CONFIG);
|
||||
try (MetaDataUpdate md = metaDataUpdateFactory.create(projectName)) {
|
||||
config = ProjectConfig.read(md);
|
||||
@@ -120,11 +120,11 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
md.setMessage("Update group names\n");
|
||||
config.commit(md);
|
||||
projectCache.evict(config.getProject());
|
||||
pc = open(projectName);
|
||||
pc = createProjectControl(projectName);
|
||||
} else if (config.getRevision() != null
|
||||
&& !config.getRevision().equals(pc.getProjectState().getConfig().getRevision())) {
|
||||
projectCache.evict(config.getProject());
|
||||
pc = open(projectName);
|
||||
pc = createProjectControl(projectName);
|
||||
}
|
||||
} catch (ConfigInvalidException e) {
|
||||
throw new ResourceConflictException(e.getMessage());
|
||||
@@ -252,11 +252,10 @@ public class GetAccess implements RestReadView<ProjectResource> {
|
||||
return accessSectionInfo;
|
||||
}
|
||||
|
||||
private ProjectControl open(Project.NameKey projectName)
|
||||
throws ResourceNotFoundException, IOException {
|
||||
private ProjectControl createProjectControl(Project.NameKey projectName)
|
||||
throws IOException, ResourceNotFoundException {
|
||||
try {
|
||||
return projectControlFactory.validateFor(
|
||||
projectName, ProjectControl.OWNER | ProjectControl.VISIBLE, self.get());
|
||||
return projectControlFactory.controlFor(projectName, self.get());
|
||||
} catch (NoSuchProjectException e) {
|
||||
throw new ResourceNotFoundException(projectName.get());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user