private function hasPermission($objectName, $action, $agentId) { switch ($action) { case 'add': return DataObject::allowedToPublishAdd($agentId, $objectName); break; case 'change': return DataObject::allowedToPublishChange($agentId, $objectName); break; case 'delete': return DataObject::allowedToPublishDelete($agentId, $objectName); break; } }
private function processPublishAddObjects($objectNode) { $objects = $objectNode->getElementsByTagName('SIF_Object'); foreach ($objects as $object) { $objectName = $object->getAttribute('ObjectName'); $contexts = $object->getElementsByTagName('SIF_Context'); if (!DataObject::objectExists($objectName)) { ProvisionError::invalidObject($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { if ($contexts->length != 0) { foreach ($contexts as $context) { $contextId = Context::getContextId($context->nodeValue); if (!DataObject::allowedToPublishAdd($this->agent->agentId, $objectName, $contextId)) { ProvisionError::invalidPermissionToPublishAdd($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { $dataObject = new DataObject($objectName); $dataObject->contextId = $contextId; array_push($this->publishAddObjects, $dataObject); } //check if allowed to publish add } } else { if (!DataObject::allowedToPublishAdd($this->agent->agentId, $objectName)) { ProvisionError::invalidPermissionToPublishAdd($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { $dataObject = new DataObject($objectName); array_push($this->publishAddObjects, $dataObject); } //check if allowed to publish add } //check if there are contexts } //check if object exist } //loop through objects }