Make the ability to remove reviewers a grantable permission
Change-Id: I4ee3c3b6a42916bc3bb6d4283c937552033f309c
This commit is contained in:
@@ -728,6 +728,20 @@ Users without this access right who are able to upload new patch sets
|
|||||||
can still do the rebase locally and upload the rebased commit as a new
|
can still do the rebase locally and upload the rebased commit as a new
|
||||||
patch set.
|
patch set.
|
||||||
|
|
||||||
|
[[category_remove_reviewer]]
|
||||||
|
Remove Reviewer
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
This category permits users to remove other users from the list of
|
||||||
|
reviewers on a change.
|
||||||
|
|
||||||
|
The change owner, project owner and site administrator can always
|
||||||
|
remove reviewers (even without having the `Remove Reviewer` access
|
||||||
|
right assigned).
|
||||||
|
|
||||||
|
Users without this access right can only remove themselves from the
|
||||||
|
reviewer list on a change.
|
||||||
|
|
||||||
|
|
||||||
[[category_submit]]
|
[[category_submit]]
|
||||||
Submit
|
Submit
|
||||||
|
@@ -33,6 +33,7 @@ public class Permission implements Comparable<Permission> {
|
|||||||
public static final String PUSH_TAG = "pushTag";
|
public static final String PUSH_TAG = "pushTag";
|
||||||
public static final String READ = "read";
|
public static final String READ = "read";
|
||||||
public static final String REBASE = "rebase";
|
public static final String REBASE = "rebase";
|
||||||
|
public static final String REMOVE_REVIEWER = "removeReviewer";
|
||||||
public static final String SUBMIT = "submit";
|
public static final String SUBMIT = "submit";
|
||||||
|
|
||||||
private static final List<String> NAMES_LC;
|
private static final List<String> NAMES_LC;
|
||||||
@@ -52,6 +53,7 @@ public class Permission implements Comparable<Permission> {
|
|||||||
NAMES_LC.add(PUSH_TAG.toLowerCase());
|
NAMES_LC.add(PUSH_TAG.toLowerCase());
|
||||||
NAMES_LC.add(LABEL.toLowerCase());
|
NAMES_LC.add(LABEL.toLowerCase());
|
||||||
NAMES_LC.add(REBASE.toLowerCase());
|
NAMES_LC.add(REBASE.toLowerCase());
|
||||||
|
NAMES_LC.add(REMOVE_REVIEWER.toLowerCase());
|
||||||
NAMES_LC.add(SUBMIT.toLowerCase());
|
NAMES_LC.add(SUBMIT.toLowerCase());
|
||||||
|
|
||||||
labelIndex = NAMES_LC.indexOf(Permission.LABEL);
|
labelIndex = NAMES_LC.indexOf(Permission.LABEL);
|
||||||
|
@@ -114,6 +114,7 @@ permissionNames = \
|
|||||||
pushTag, \
|
pushTag, \
|
||||||
read, \
|
read, \
|
||||||
rebase, \
|
rebase, \
|
||||||
|
removeReviewer, \
|
||||||
submit
|
submit
|
||||||
abandon = Abandon
|
abandon = Abandon
|
||||||
create = Create Reference
|
create = Create Reference
|
||||||
@@ -126,6 +127,7 @@ pushMerge = Push Merge Commit
|
|||||||
pushTag = Push Annotated Tag
|
pushTag = Push Annotated Tag
|
||||||
read = Read
|
read = Read
|
||||||
rebase = Rebase
|
rebase = Rebase
|
||||||
|
removeReviewer = Remove Reviewer
|
||||||
submit = Submit
|
submit = Submit
|
||||||
|
|
||||||
refErrorEmpty = Reference must be supplied
|
refErrorEmpty = Reference must be supplied
|
||||||
|
@@ -282,9 +282,10 @@ public class ChangeControl {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The branch owner, project owner, site admin can remove anyone.
|
// Users with the remove reviewer permission, the branch owner, project
|
||||||
//
|
// owner and site admin can remove anyone
|
||||||
if (getRefControl().isOwner() // branch owner
|
if (getRefControl().canRemoveReviewer() // has removal permissions
|
||||||
|
|| getRefControl().isOwner() // branch owner
|
||||||
|| getProjectControl().isOwner() // project owner
|
|| getProjectControl().isOwner() // project owner
|
||||||
|| getCurrentUser().getCapabilities().canAdministrateServer()) {
|
|| getCurrentUser().getCapabilities().canAdministrateServer()) {
|
||||||
return true;
|
return true;
|
||||||
|
@@ -322,6 +322,11 @@ public class RefControl {
|
|||||||
return canPerform(Permission.ABANDON);
|
return canPerform(Permission.ABANDON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return true if this user can remove a reviewer for a change. */
|
||||||
|
public boolean canRemoveReviewer() {
|
||||||
|
return canPerform(Permission.REMOVE_REVIEWER);
|
||||||
|
}
|
||||||
|
|
||||||
/** All value ranges of any allowed label permission. */
|
/** All value ranges of any allowed label permission. */
|
||||||
public List<PermissionRange> getLabelRanges() {
|
public List<PermissionRange> getLabelRanges() {
|
||||||
List<PermissionRange> r = new ArrayList<PermissionRange>();
|
List<PermissionRange> r = new ArrayList<PermissionRange>();
|
||||||
|
Reference in New Issue
Block a user