Check canEditTopicName with PermissionBackend

Change-Id: Iaa731018ea2a0aaf2a44e684d9b232769117ef1a
This commit is contained in:
Shawn Pearce
2017-02-18 15:35:05 -08:00
committed by David Pursehouse
parent 3a9bd79051
commit 03c48e308c
6 changed files with 23 additions and 15 deletions

View File

@@ -16,7 +16,6 @@ package com.google.gerrit.server.change;
import com.google.common.base.Strings;
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.DefaultInput;
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestApiException;
@@ -29,7 +28,8 @@ import com.google.gerrit.server.ChangeMessagesUtil;
import com.google.gerrit.server.change.PutTopic.Input;
import com.google.gerrit.server.extensions.events.TopicEdited;
import com.google.gerrit.server.notedb.ChangeUpdate;
import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.permissions.ChangePermission;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.update.BatchUpdate;
import com.google.gerrit.server.update.BatchUpdateOp;
import com.google.gerrit.server.update.ChangeContext;
@@ -65,16 +65,13 @@ public class PutTopic implements RestModifyView<ChangeResource, Input>, UiAction
@Override
public Response<String> apply(ChangeResource req, Input input)
throws UpdateException, RestApiException {
ChangeControl ctl = req.getControl();
if (!ctl.canEditTopicName()) {
throw new AuthException("changing topic not permitted");
}
throws UpdateException, RestApiException, PermissionBackendException {
req.permissions().check(ChangePermission.EDIT_TOPIC_NAME);
Op op = new Op(input != null ? input : new Input());
try (BatchUpdate u =
batchUpdateFactory.create(
dbProvider.get(), req.getChange().getProject(), ctl.getUser(), TimeUtil.nowTs())) {
dbProvider.get(), req.getChange().getProject(), req.getUser(), TimeUtil.nowTs())) {
u.addOp(req.getId(), op);
u.execute();
}
@@ -129,9 +126,9 @@ public class PutTopic implements RestModifyView<ChangeResource, Input>, UiAction
}
@Override
public UiAction.Description getDescription(ChangeResource resource) {
public UiAction.Description getDescription(ChangeResource rsrc) {
return new UiAction.Description()
.setLabel("Edit Topic")
.setVisible(resource.getControl().canEditTopicName());
.setVisible(rsrc.permissions().testOrFalse(ChangePermission.EDIT_TOPIC_NAME));
}
}