/**
  * Returns true if the given access entity uuid has already access to the 
  * access level
  * 
  * @access public
  * @param string $accessEntityUuid
  * @param string $accessLevel
  * @return boolean
  * 
  * @throws \Zepi\Core\AccessControl\Exception Cannot verifiy the permission for uuid "{uuid}" and access level {accessLevel}.
  */
 public function hasAccess($accessEntityUuid, $accessLevel)
 {
     // Do not check the database if we haven't all data
     if ($accessEntityUuid == '' || $accessLevel == '') {
         return false;
     }
     try {
         $queryBuilder = $this->entityManager->getQueryBuilder();
         $queryBuilder->select($queryBuilder->expr()->count('p.id'))->from('\\Zepi\\Core\\AccessControl\\Entity\\Permission', 'p')->where('p.accessEntityUuid = :accessEntityUuid')->andWhere('p.accessLevelKey = :accessLevel')->setParameter('accessEntityUuid', $accessEntityUuid)->setParameter('accessLevel', $accessLevel);
         $data = $queryBuilder->getQuery();
         if ($data === false) {
             return false;
         }
         return $data->getSingleScalarResult() > 0;
     } catch (\Exception $e) {
         throw new Exception('Cannot verify the permission for uuid "' . $accessEntityUuid . '" and access level "' . $accessLevel . '".', 0, $e);
     }
 }
 /**
  * Returns the number of all found access entities for the given DataRequest
  * object.
  *
  * @param string $class
  * @param \Zepi\Core\Utils\DataRequest $dataRequest
  * @return integer
  * 
  * @throws \Zepi\Core\AccessControl\Exception Cannot count the access entities for the given data request.
  */
 public function count($class, DataRequest $dataRequest)
 {
     try {
         $request = clone $dataRequest;
         $request->setPage(0);
         $request->setNumberOfEntries(0);
         $queryBuilder = $this->entityManager->getQueryBuilder();
         $this->entityManager->buildDataRequestQuery($request, $queryBuilder, $class, 'a');
         // Count
         $queryBuilder->select($queryBuilder->expr()->count('a.id'));
         $data = $queryBuilder->getQuery();
         if ($data === false) {
             return 0;
         }
         return $data->getSingleScalarResult();
     } catch (\Exception $e) {
         throw new Exception('Cannot count the access entities for the given data request.', 0, $e);
     }
 }