in src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java [173:210]
private void setPermissionRules(
String ownerGroupName, Permission.Builder perm, String refName, String value) {
for (String ruleString :
defaultAccessRightsConfig.getStringList(ProjectConfig.ACCESS, refName, value)) {
PermissionRule.Builder rule;
try {
rule =
PermissionRule.fromString(
ruleString.replaceAll(Pattern.quote(OWNER_TOKEN), ownerGroupName),
Permission.hasRange(value))
.toBuilder();
} catch (IllegalArgumentException notRule) {
log.error(
"Invalid rule in {}{}.{}: {}",
ProjectConfig.ACCESS,
refName != null ? "." + refName : "",
value,
notRule.getMessage());
continue;
}
if (rule.getGroup().getUUID() == null) {
// this means that group is not already in the groups file, so
// we need to check if group exist if if it does, get its
// uuid.
Optional<InternalGroup> group =
groupCache.get(AccountGroup.nameKey(rule.getGroup().getName()));
if (!group.isPresent()) {
log.error("Group {} not found", rule.getGroup().getName());
continue;
}
rule.setGroup(GroupReference.create(group.get().getGroupUUID(), rule.getGroup().getName()));
}
perm.add(rule);
}
}