// granter has thoes accesses herself
for(Access access:accesses)
{
if(!hasAccess(path,access,requester))
throw new UnauthorizedAccessException();
}
// and
// granter has grant/delegate access
if(!hasAccess(path,Access.DELEGATE,requester))
throw new UnauthorizedAccessException();
}