public function create(CreateEventArgs $eventArgs) { if ($eventArgs->getReject()) { //don't do anything if the create has already been rejected return; } $document = $eventArgs->getDocument(); //Check create permissions if ($this->getAccessController()->areAllowed([Actions::CREATE], $eventArgs->getMetadata(), $document)->getAllowed()) { return; } $eventArgs->setReject(true); $eventArgs->getEventManager()->dispatchEvent(AccessControlEvents::CREATE_DENIED, new EventArgs($document, Actions::CREATE)); }
public function create(CreateEventArgs $eventArgs) { if ($eventArgs->getReject()) { return; } $metadata = $eventArgs->getMetadata(); if (!($stateMetadata = $metadata->getState())) { return; } $field = array_keys($stateMetadata)[0]; $document = $eventArgs->getDocument(); if (count($stateMetadata[$field]) > 0 && !in_array($metadata->getFieldValue($document, $field), $stateMetadata[$field])) { $eventArgs->getEventManager()->dispatchEvent(Events::BAD_STATE, $eventArgs); $eventArgs->setReject(true); } }