Example #1
0
 public function read(ReadEventArgs $eventArgs)
 {
     $accessController = $this->getAccessController();
     $metadata = $eventArgs->getMetadata();
     $result = $accessController->areAllowed([Actions::READ], $metadata);
     if ($result->hasCriteria()) {
         if ($result->getAllowed()) {
             $criteria = $result->getNew();
         } else {
             $criteria = [];
             foreach ($result->getNew() as $field => $value) {
                 if (isset($value['$regex'])) {
                     $criteria[$field] = ['$not' => $value];
                 } else {
                     $criteria[$field] = ['$ne' => $value];
                 }
             }
         }
     } else {
         if ($result->getAllowed()) {
             $criteria = [];
             //allow read
         } else {
             $eventArgs->setReject(true);
             $criteria = [$metadata->identifier => ['$exists' => false]];
             //deny read
         }
     }
     $eventArgs->addCriteria($criteria);
 }