Remove redundant and confusing code in RefControl and CapabilityControl

In RefControl and CapabilityControl, they have a similar logic that
treats empty rules and single rule as special cases, however, those
special cases could be handled correctly as general cases.

Change-Id: Ib6dce3efdc760191451181107c042ccfe3c49a47
This commit is contained in:
Zhen Chen
2016-07-08 15:24:08 -07:00
parent c32ad2c78c
commit 9badc3c9ba
2 changed files with 0 additions and 26 deletions

View File

@@ -263,20 +263,7 @@ public class CapabilityControl {
}
rules = capabilities.getPermission(permissionName);
if (rules.isEmpty()) {
effective.put(permissionName, rules);
return rules;
}
GroupMembership groups = user.getEffectiveGroups();
if (rules.size() == 1) {
if (!match(groups, rules.get(0))) {
rules = Collections.emptyList();
}
effective.put(permissionName, rules);
return rules;
}
List<PermissionRule> mine = new ArrayList<>(rules.size());
for (PermissionRule rule : rules) {

View File

@@ -611,19 +611,6 @@ public class RefControl {
rules = relevant.getPermission(permissionName);
if (rules.isEmpty()) {
effective.put(permissionName, rules);
return rules;
}
if (rules.size() == 1) {
if (!projectControl.match(rules.get(0), isChangeOwner)) {
rules = Collections.emptyList();
}
effective.put(permissionName, rules);
return rules;
}
List<PermissionRule> mine = new ArrayList<>(rules.size());
for (PermissionRule rule : rules) {
if (projectControl.match(rule, isChangeOwner)) {