use of com.zimbra.cs.account.accesscontrol.RightCommand.RightAggregation in project zm-mailbox by Zimbra.
the class TestACLAll method isRightInGetAllEffectiveRights.
private boolean isRightInGetAllEffectiveRights(AllEffectiveRights allEffRights, Account grantee, Entry target, Right right, RightType rightType, boolean allAttrs, Set<String> attrs) throws ServiceException {
TargetType targetType = TargetType.getTargetType(target);
Map<TargetType, RightsByTargetType> rbttMap = allEffRights.rightsByTargetType();
RightsByTargetType rbtt = rbttMap.get(targetType);
if (rbtt != null) {
boolean found = false;
// all entries
EffectiveRights effRights = rbtt.all();
if (effRights != null) {
found = isRightInEffectiveRights(effRights, right, rightType, allAttrs, attrs);
if (found) {
return true;
}
}
// check domained entries
if (rbtt instanceof DomainedRightsByTargetType) {
DomainedRightsByTargetType domainedRights = (DomainedRightsByTargetType) rbtt;
for (RightAggregation rightsByDomains : domainedRights.domains()) {
found = isRightInRightAggregation(rightsByDomains, true, target, right, rightType, allAttrs, attrs);
if (found) {
return true;
}
}
}
// check individual entry
for (RightCommand.RightAggregation rightsByEntries : rbtt.entries()) {
found = isRightInRightAggregation(rightsByEntries, false, target, right, rightType, allAttrs, attrs);
if (found) {
return true;
}
}
}
return false;
}
Aggregations