/** * {@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; }
/** * {@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']; }
/** * {@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; }
/** * @param RequesterInterface $requester * @param ResourceInterface $resource * * @return string */ protected function getCacheId(RequesterInterface $requester, ResourceInterface $resource) { return $requester->getAclRequesterIdentifier() . $resource->getAclResourceIdentifier(); }
/** * @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())); }