Check canEditTopicName with PermissionBackend
Change-Id: Iaa731018ea2a0aaf2a44e684d9b232769117ef1a
This commit is contained in:
committed by
David Pursehouse
parent
3a9bd79051
commit
03c48e308c
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user