diff --git a/Documentation/cmd-set-project.txt b/Documentation/cmd-set-project.txt index 11cb74c23b..62d6e922d1 100644 --- a/Documentation/cmd-set-project.txt +++ b/Documentation/cmd-set-project.txt @@ -26,7 +26,7 @@ The command is argument-safe, that is, if no argument is given the previous settings are kept intact. == ACCESS -Caller must be a member of the privileged 'Administrators' group. +Caller must be an owner of the given project. == SCRIPTING This command is intended to be used in scripts. diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetProjectCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetProjectCommand.java index 0311b880e6..20f65ad396 100644 --- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetProjectCommand.java +++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/SetProjectCommand.java @@ -14,8 +14,6 @@ package com.google.gerrit.sshd.commands; -import com.google.gerrit.common.data.GlobalCapability; -import com.google.gerrit.extensions.annotations.RequiresCapability; import com.google.gerrit.extensions.client.InheritableBoolean; import com.google.gerrit.extensions.client.ProjectState; import com.google.gerrit.extensions.client.SubmitType; @@ -35,7 +33,6 @@ import org.kohsuke.args4j.Option; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@RequiresCapability(GlobalCapability.ADMINISTRATE_SERVER) @CommandMetaData(name = "set-project", description = "Change a project's settings") final class SetProjectCommand extends SshCommand { private static final Logger log = LoggerFactory.getLogger(SetProjectCommand.class); @@ -153,6 +150,9 @@ final class SetProjectCommand extends SshCommand { @Override protected void run() throws Failure { + if (!projectControl.isOwner()) { + throw new UnloggedFailure(1, "restricted to project owner"); + } Project ctlProject = projectControl.getProject(); Project.NameKey nameKey = ctlProject.getNameKey(); String name = ctlProject.getName();