Пример #1
0
 /**
  * @param ResourceInterface|null $resource
  * @return $this
  */
 public function setResourceId(ResourceInterface $resource = null)
 {
     if ($resource) {
         $this->resourceId = $resource->getResourceId();
     }
     return $this;
 }
Пример #2
0
 /**
  * Returns true if and only if the assertion conditions are met
  *
  * This method is passed the ACL, Role, Resource, and privilege to which the authorization query applies. If the
  * $role, $resource, or $privilege parameters are null, it means that the query applies to all Roles, Resources, or
  * privileges, respectively.
  *
  * @param  Acl $acl
  * @param  RoleInterface $role
  * @param  ResourceInterface $resource
  * @param  string $privilege
  * @return bool
  */
 public function assert(Acl $acl, RoleInterface $role = null, ResourceInterface $resource = null, $privilege = null)
 {
     if ($this->inWhitelist($role->getRoleId(), $resource->getResourceId(), $privilege)) {
         return false;
     }
     $rows = $this->getRolesAndResources($role->getRoleId(), $resource->getResourceId());
     foreach ($rows as $row) {
         $methods = explode(',', $row['methods']);
         if (!in_array($privilege, $methods)) {
             return false;
         }
     }
     return true;
 }
Пример #3
0
 public function removeResource(ResourceInterface $resource)
 {
     unset($this->resources[$resource->getResourceId()]);
     return $this;
 }