Exemplo n.º 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);
 }
Exemplo n.º 2
0
 public function read(ReadEventArgs $eventArgs)
 {
     $metadata = $eventArgs->getMetadata();
     $freezeMetadata = $metadata->getFreeze();
     if (!isset($freezeMetadata) || !$freezeMetadata['flag']) {
         return;
     }
     $readFilter = $this->serviceLocator->get('extension.freeze')->getReadFilter();
     if ($readFilter == Extension::READ_ALL) {
         return;
     } elseif ($readFilter == Extension::READ_ONLY_FROZEN) {
         $criteria = [$freezeMetadata['flag'] => true];
     } elseif ($readFilter == Extension::READ_ONLY_NOT_FROZEN) {
         $criteria = [$freezeMetadata['flag'] => false];
     }
     $eventArgs->addCriteria($criteria);
 }
Exemplo n.º 3
0
 public function read(ReadEventArgs $eventArgs)
 {
     $metadata = $eventArgs->getMetadata();
     $softDeleteMetadata = $metadata->getSoftDelete();
     if (!isset($softDeleteMetadata) || !$softDeleteMetadata['flag']) {
         return;
     }
     $readFilter = $this->serviceLocator->get('extension.softdelete')->getReadFilter();
     if ($readFilter == Extension::READ_ALL) {
         return;
     } elseif ($readFilter == Extension::READ_ONLY_SOFT_DELETED) {
         $criteria = [$softDeleteMetadata['flag'] => true];
     } elseif ($readFilter == Extension::READ_ONLY_NOT_SOFT_DELETED) {
         $criteria = [$softDeleteMetadata['flag'] => false];
     }
     $eventArgs->addCriteria($criteria);
 }
Exemplo n.º 4
0
 public function read(ReadEventArgs $eventArgs)
 {
     $metadata = $eventArgs->getMetadata();
     if (!($field = $metadata->getZones())) {
         return;
     }
     $extension = $this->serviceLocator->get('extension.zone');
     $include = $extension->getReadFilterInclude();
     $exclude = $extension->getReadFilterExclude();
     $criteria = [];
     if (count($include) > 0) {
         $criteria[$field] = ['$in' => $include];
     }
     if (count($exclude) > 0) {
         $criteria[$field] = ['$nin' => $exclude];
     }
     if (count($criteria) == 0) {
         return;
     }
     $eventArgs->addCriteria($criteria);
 }