/** * * @param \Zoop\Shard\Freeze\FreezerEventArgs $eventArgs * @return type */ public function preThaw(FreezerEventArgs $eventArgs) { if (!($accessController = $this->getAccessController())) { //Access control is not enabled return; } $document = $eventArgs->getDocument(); $metadata = $eventArgs->getMetadata(); if (!$accessController->areAllowed([Actions::THAW], $metadata, $document)->getAllowed()) { //stop thaw $this->getFreezer()->freeze($document, $metadata); $eventArgs->getEventManager()->dispatchEvent(Events::THAW_DENIED, new AccessControlEventArgs($document, Actions::THAW)); $eventArgs->setReject(true); } }