public function assert(Acl $acl, RoleInterface $role = null, ResourceInterface $resource = null, $privilege = null) { if ($resource instanceof Site) { $site = $resource; } elseif ($resource instanceof SitePage) { $site = $resource->getSite(); } else { return false; } return $site->isPublic(); }
public function assert(Acl $acl, RoleInterface $role = null, ResourceInterface $resource = null, $privilege = null) { if ($resource instanceof Site) { $site = $resource; } elseif ($resource instanceof SitePage) { $site = $resource->getSite(); } else { // Not a recognized resource. return false; } $criteria = Criteria::create()->where(Criteria::expr()->eq('user', $role)); $sitePermission = $site->getSitePermissions()->matching($criteria)->first(); if (!$sitePermission) { // This user has no site permission return false; } $userRoleNumber = $this->getRoleNumber($sitePermission->getRole()); return $userRoleNumber <= $this->roleNumber; }