Example #1
0
 /**
  * {@inheritdoc}
  */
 public function findMask(RequesterInterface $requester, ResourceInterface $resource)
 {
     if (false === ($mask = $this->connection->fetchColumn('SELECT mask FROM ' . $this->getAclSchema()->getPermissionsTableName() . ' WHERE requester = :requester AND resource = :resource', ['requester' => $requester->getAclRequesterIdentifier(), 'resource' => $resource->getAclResourceIdentifier()], 0, ['requester' => \PDO::PARAM_STR, 'resource' => \PDO::PARAM_STR]))) {
         throw new MaskNotFoundException();
     }
     return (int) $mask;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function findMask(RequesterInterface $requester, ResourceInterface $resource)
 {
     if (false === ($result = $this->connection->execute('SELECT mask FROM ' . $this->getAclSchema()->getPermissionsTableName() . ' WHERE requester = :requester AND resource = :resource', ['requester' => $requester->getAclRequesterIdentifier(), 'resource' => $resource->getAclResourceIdentifier()], ['requester' => 'string', 'resource' => 'string'])->fetch('assoc'))) {
         throw new MaskNotFoundException();
     }
     return (int) $result['mask'];
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function findMask(RequesterInterface $requester, ResourceInterface $resource)
 {
     $sth = $this->getPdoStatement('SELECT mask FROM ' . $this->getAclSchema()->getPermissionsTableName() . ' WHERE requester = :requester AND resource = :resource');
     $sth->execute([':requester' => $requester->getAclRequesterIdentifier(), ':resource' => $resource->getAclResourceIdentifier()]);
     if (false === ($mask = $sth->fetchColumn())) {
         throw new MaskNotFoundException();
     }
     return (int) $mask;
 }
 /**
  * {@inheritdoc}
  */
 public function findMask(RequesterInterface $requester, ResourceInterface $resource)
 {
     $oldFetchMode = $this->connection->getFetchMode();
     $this->connection->setFetchMode(\PDO::FETCH_COLUMN);
     if (null === ($mask = $this->connection->selectOne('SELECT mask FROM ' . $this->getAclSchema()->getPermissionsTableName() . ' WHERE requester = :requester AND resource = :resource', ['requester' => $requester->getAclRequesterIdentifier(), 'resource' => $resource->getAclResourceIdentifier()]))) {
         $this->connection->setFetchMode($oldFetchMode);
         throw new MaskNotFoundException();
     }
     $this->connection->setFetchMode($oldFetchMode);
     return (int) $mask;
 }
Example #5
0
 /**
  * @param RequesterInterface $requester
  * @param ResourceInterface  $resource
  *
  * @return string
  */
 protected function getCacheId(RequesterInterface $requester, ResourceInterface $resource)
 {
     return $requester->getAclRequesterIdentifier() . $resource->getAclResourceIdentifier();
 }
Example #6
0
 /**
  * @param RequesterInterface $requester
  * @param ResourceInterface  $resource
  *
  * @return null|array
  *
  * @throws \Exception
  */
 protected function findFixture(RequesterInterface $requester, ResourceInterface $resource)
 {
     $sth = $this->getPdoStatement('SELECT * FROM acl_permissions WHERE requester = :requester AND resource = :resource');
     $sth->execute([':requester' => $requester->getAclRequesterIdentifier(), ':resource' => $resource->getAclResourceIdentifier()]);
     $fixtures = $sth->fetchAll(PDO::FETCH_ASSOC);
     if (empty($fixtures)) {
         return;
     }
     if (count($fixtures) > 1) {
         throw new \Exception();
     }
     $fixture = current($fixtures);
     $fixture['mask'] = (int) $fixture['mask'];
     return $fixture;
 }
 /**
  * @param RequesterInterface $requester
  * @param ResourceInterface  $resource
  */
 public function __construct(RequesterInterface $requester, ResourceInterface $resource)
 {
     parent::__construct(sprintf('Unable to find any permission where requester is "%s" and resource is "%s"', $requester->getAclRequesterIdentifier(), $resource->getAclResourceIdentifier()));
 }
Example #8
0
File: Acl.php Project: alexdpy/acl
 /**
  * @param RequesterInterface $requester
  * @param string[]           $identifiers
  */
 protected static function processExtractRequesterIdentifiers(RequesterInterface $requester, &$identifiers)
 {
     if (!in_array($requester->getAclRequesterIdentifier(), $identifiers)) {
         $identifiers[] = $requester->getAclRequesterIdentifier();
     }
     if ($requester instanceof CascadingRequesterInterface) {
         foreach ($requester->getAclParentsRequester() as $requesterParent) {
             if (!in_array($requesterParent->getAclRequesterIdentifier(), $identifiers)) {
                 $identifiers[] = $requesterParent->getAclRequesterIdentifier();
                 self::processExtractRequesterIdentifiers($requesterParent, $identifiers);
             }
         }
     }
 }