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:
@@ -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) {
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user