Merge changes I1f530f02,I66fb4509

* changes:
  Add @Nullable annotation to AccessSection
  Remove RefControl#isBlocked.
This commit is contained in:
David Pursehouse
2018-02-05 10:54:51 +00:00
committed by Gerrit Code Review
4 changed files with 20 additions and 21 deletions

View File

@@ -14,6 +14,7 @@
package com.google.gerrit.common.data;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.reviewdb.client.Project;
import java.util.ArrayList;
import java.util.HashSet;
@@ -52,10 +53,12 @@ public class AccessSection extends RefConfigSection implements Comparable<Access
permissions = list;
}
@Nullable
public Permission getPermission(String name) {
return getPermission(name, false);
}
@Nullable
public Permission getPermission(String name, boolean create) {
for (Permission p : getPermissions()) {
if (p.getName().equalsIgnoreCase(name)) {

View File

@@ -146,7 +146,7 @@ class ProjectControl {
/** Is this user a project owner? */
boolean isOwner() {
return (isDeclaredOwner() && !controlForRef("refs/*").isBlocked(Permission.OWNER)) || isAdmin();
return (isDeclaredOwner() && controlForRef("refs/*").canPerform(Permission.OWNER)) || isAdmin();
}
/**

View File

@@ -145,11 +145,6 @@ class RefControl {
return null;
}
/** True if the user is blocked from using this permission. */
boolean isBlocked(String permissionName) {
return !doCanPerform(permissionName, false, true);
}
/** True if the user has this permission. Works only for non labels. */
boolean canPerform(String permissionName) {
return canPerform(permissionName, false);
@@ -159,10 +154,6 @@ class RefControl {
return new ForRefImpl();
}
private boolean canPerform(String permissionName, boolean isChangeOwner) {
return doCanPerform(permissionName, isChangeOwner, false);
}
private boolean canUpload() {
return projectControl.controlForRef("refs/for/" + refName).canPerform(Permission.PUSH);
}
@@ -339,7 +330,7 @@ class RefControl {
return new PermissionRange(permissionName, min, max);
}
private boolean doCanPerform(String permissionName, boolean isChangeOwner, boolean blockOnly) {
private boolean canPerform(String permissionName, boolean isChangeOwner) {
List<PermissionRule> access = access(permissionName, isChangeOwner);
List<PermissionRule> overridden = relevant.getOverridden(permissionName);
Set<ProjectRef> allows = new HashSet<>();
@@ -355,7 +346,7 @@ class RefControl {
blocks.remove(relevant.getRuleProps(rule));
}
blocks.removeAll(allows);
return blocks.isEmpty() && (!allows.isEmpty() || blockOnly);
return blocks.isEmpty() && !allows.isEmpty();
}
/** True if the user has force this permission. Works only for non labels. */