private function saveUnSubscribes() { $db = ZitDBAdapter::getDBAdapter(); foreach ($this->unSubscribeObjects as $object) { $db->delete(DBConvertor::convertCase('agent_subscriptions'), 'agent_id = ' . $this->agent->agentId . ' and context_id = ' . $object->contextId . ' and object_type_id = ' . $object->objectId . ' and zone_id = ' . $_SESSION['ZONE_ID']); } }
public static function writeToErrorLog($shortErrorDesc, $longErrorDesc, $errorLocation, $zoneId = null, $contextId = null, $agentId = null) { $db = ZitDBAdapter::getDBAdapter(); $data = array('error_timestamp' => new Zend_Db_Expr(DBConvertor::convertCurrentTime()), 'short_error_desc' => $shortErrorDesc, 'long_error_desc' => $longErrorDesc, 'error_location' => $errorLocation, 'zone_id' => $zoneId, 'agent_id' => $agentId, 'context_id' => $contextId); if ($db->insert('error_log', $data)) { return true; } else { return false; } }
public function Stop($zoneId, $contextId = 1) { $db = ZitDBAdapter::getDBAdapter(); $data = array('push_running' => 0, 'last_stop' => new Zend_Db_Expr(DBConvertor::convertCurrentTime())); $db->update('push_handler', $data, 'zone_id = ' . $zoneId . ' and context_id = ' . $contextId); $query = "select \r\n\t\t\t\t\tphp_pid from \r\n\t\t\t\t\t " . DBConvertor::convertCase('push_handler') . " \r\n\t\t\t\t where zone_id = {$zoneId} and context_id = {$contextId}"; $result = $db->fetchAll($query); $pid = $result[0]->pid; if ($this->psExists($pid)) { $this->psKill($pid); } }
public static function agentExists($name, $sourceId) { $db = ZitDBAdapter::getDBAdapter(); $num_rows = 0; $select = $db->select()->from(array(DBConvertor::convertCase('a') => DBConvertor::convertCase('agent')), array(DBConvertor::convertCase('num_rows') => 'count(*)'))->where('lower(a.source_id) = lower(?)', $sourceId)->orWhere('lower(a.agent_name) = lower(?)', $name); $stmt = $select->query(); $result = $stmt->fetchAll(); foreach ($result as $row) { switch (DB_TYPE) { case 'mysql': $num_rows = $row->num_rows; break; case 'oci8': $num_rows = $row->NUM_ROWS; break; } } if ($num_rows == 0) { return false; } else { return true; } }
private function setupRequest($objectName, $sourceId, $agent) { $db = ZitDBAdapter::getDBAdapter(); $dom = $this->dom; $providerId = null; if ($sourceId != null) { $agent = new Agent($sourceId); $providerId = $agent->agentId; } else { $providerId = DataObject::getProviderId($objectName); } if ($providerId == 0) { RequestError::invalidProvider($this->originalSourceId, $this->originalMsgId); } else { $error = false; $sifMessageNode = $dom->getElementsByTagName('SIF_Message')->item(0); $eventXML = $dom->saveXML($sifMessageNode); $eventXML = str_replace('xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" ', '', $eventXML); $eventXML = str_replace('xmlns="http://www.sifinfo.org/infrastructure/2.x" ', '', $eventXML); $eventXML = str_replace('xmlns:sif="http://www.sifinfo.org/infrastructure/1.x" ', '', $eventXML); $eventXML = str_replace('xmlns="http://www.sifinfo.org/infrastructure/1.x" ', '', $eventXML); $eventXML = str_replace('xmlns="http://www.sifinfo.org/uk/infrastructure/2.x" ', '', $eventXML); $eventXML = str_replace('xmlns="http://www.sifinfo.org/au/infrastructure/2.x" ', '', $eventXML); $eventXML = str_replace('xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ', '', $eventXML); $messageId = $dom->getElementsByTagName('SIF_MsgId')->item(0)->nodeValue; $bufferSize = $dom->getElementsByTagName('SIF_MaxBufferSize')->item(0)->nodeValue; /* PUSH all messages to the ZONE Version: DO NOT Check Message Version: */ $version = $_SESSION['ZONE_VERSION']; $query = "select\r\n agent_registered.sif_version,\r\n agent_registered.maxbuffersize,\r\n agent_registered.agent_mode_id,\r\n agent.source_id\r\n from " . DBConvertor::convertCase('agent_registered') . " \r\n inner join " . DBConvertor::convertCase('agent') . " on agent.agent_id = agent_registered.agent_id\r\n where agent_registered.agent_id = {$providerId} and agent_registered.unregister_timestamp is null\r\n and agent_registered.zone_id = " . $_SESSION["ZONE_ID"] . "\r\n and agent_registered.context_id = " . $_SESSION["CONTEXT_ID"]; $result = $db->fetchAll($query); switch (DB_TYPE) { case 'mysql': $agentModeId = $result[0]->agent_mode_id; $maxbuffersize = intval($result[0]->maxbuffersize); $source_id = $result[0]->source_id; $sif_version = $result[0]->sif_version; break; case 'oci8': $agentModeId = $result[0]->AGENT_MODE_ID; $maxbuffersize = intval($result[0]->MAXBUFFERSIZE); $source_id = $result[0]->SOURCE_ID; $sif_version = $result[0]->SIF_VERSION; break; } $messageSize = strlen($eventXML); if ($messageSize > $maxbuffersize) { $error = true; $header = $this->headerNode; SifLogEntry::CreateSifLogEvents($header, '4', '2', 'Buffer size of agent ' . $source_id . ' is too small to recieve this request [size : ' . $maxbuffersize . ']'); } /* if($version != '2.*') { if($version != $sif_version) { $header = $this->headerNode; $error = true; SifLogEntry::CreateSifLogEvents($header, '4', '4', 'Version in request not supported by agent '.$source_id ); } } else { $version = $_SESSION['ZONE_VERSION']; } */ if (!$error) { $dataObject = new DataObject($objectName); # $request = new Requests($db); # $data = array( # DBConvertor::convertCase('request_msg_id') => $messageId, # DBConvertor::convertCase('request_timestamp') => new Zend_Db_Expr(DBConvertor::convertCurrentTime()), # DBConvertor::convertCase('agent_id_requester') => $agent->agentId, # DBConvertor::convertCase('agent_id_responder') => intval($providerId), # DBConvertor::convertCase('request_data') => $eventXML, # DBConvertor::convertCase('max_buffer_size') => $bufferSize, # DBConvertor::convertCase('version') => $version, # DBConvertor::convertCase('agent_mode_id') => intval($agentModeId), # DBConvertor::convertCase('zone_id') => $_SESSION["ZONE_ID"], # DBConvertor::convertCase('context_id') => $_SESSION["CONTEXT_ID"] # ); # $request->insert($data); $messagequeue = new MessageQueues($db); $data = null; $data = array(DBConvertor::convertCase('msg_id') => $messageId, DBConvertor::convertCase('msg_type') => 1, DBConvertor::convertCase('status_id') => 1, DBConvertor::convertCase('insert_timestamp') => new Zend_Db_Expr(DBConvertor::convertCurrentTime()), DBConvertor::convertCase('agt_id_in') => intval($agent->agentId), DBConvertor::convertCase('agt_id_out') => intval($providerId), DBConvertor::convertCase('data') => $eventXML, DBConvertor::convertCase('maxbuffersize') => intval($bufferSize), DBConvertor::convertCase('version') => $version, DBConvertor::convertCase('agt_mode_id') => intval($agentModeId), DBConvertor::convertCase('zone_id') => $_SESSION["ZONE_ID"], DBConvertor::convertCase('context_id') => $_SESSION["CONTEXT_ID"]); $messagequeue->insert($data); } $timestamp = Utility::createTimestamp(); $msgId = Utility::createMessageId(); $sifMessageNode = $dom->getElementsByTagName('SIF_Message')->item(0); XmlHelper::buildSuccessMessage($msgId, $timestamp, $this->originalSourceId, $this->originalMsgId, 0, $originalMsg = null, $desc = null); } //invalid provider check }
public function processRequestMessages() { $db = ZitDBAdapter::getDBAdapter(); $query = "select \r\n\t\t\t \trequest_data,\r\n\t\t\t\t\tagent_registered.callback_url,\r\n\t\t\t\t\tagent_registered.frozen,\r\n\t\t\t\t\trequest_id\r\n\t\t\t\t from\r\n\t\t\t\t \trequest\r\n\t\t\t\t inner join\r\n\t\t\t\t \tagent_registered on request.agent_id_responder = agent_registered.agent_id\r\n\t\t\t\t where\r\n\t\t\t\t \trequest.status_id in (1,2)\r\n\t\t\t\t and\r\n\t\t\t\t \tagent_registered.asleep = 0\r\n\t\t\t\t and\r\n\t\t\t\t \trequest.agent_mode_id = 1\r\n\t\t\t\t and\r\n\t\t\t\t \trequest.zone_id = " . $this->zoneId . "\r\n\t\t\t\t and\r\n\t\t\t\t\tagent_registered.zone_id = " . $this->zoneId . "\r\n\t\t\t\t and \r\n\t\t\t\t \trequest.context_id = " . $this->contextId . "\r\n\t\t\t\t and \r\n\t\t\t\t\tagent_registered.context_id = " . $this->contextId; $result = $db->fetchAll($query); foreach ($result as $row) { if ($row->frozen != 1) { $timestamp = Utility::createTimestamp(); $msgId = Utility::createMessageId(); $xml = XmlHelper::buildSuccessMessage($msgId, $timestamp, $this->zoneName, $msgId, 0, $this->zoneVersion, $this->versionNamespace, $this->zoneName, $originalMsg = $row->request_data, $desc = null); $sendMessageResult = $this->sendMessage($xml, $row->callback_url, $this->zoneId, $this->contextId, $row->agent_id); echo 'here after'; if (!$sendMessageResult['Error']) { $data = array('status_id' => 2, 'msg_id' => $msgId); $db->update('request', $data, 'request_id = ' . $row->request_id); $processResponseResult = $this->processResponseMessage($sendMessageResult['Xml'], $this->zoneId, $this->contextId, $row->agent_id); if (!$processResponseResult['Error']) { if ($processResponseResult['ImmediateUpdate']) { $data = array('status_id' => 3, 'msg_id' => $msgId); $db->update('request', $data, 'request_id = ' . $row->request_id); } ZitLog::writeToLog($sendMessageResult['Xml'], $xml, $this->zoneId, $row->agent_id, 6); } //check for errors in response } else { $data = array('status_id' => 4, 'msg_id' => $msgId); $db->update('request', $data, 'request_id = ' . $row->request_id); } //errors in request } //make sure agent is not frozen } //loop through results }
public function loginAction() { $lic = isset($_REQUEST['lic']) ? $_REQUEST['lic'] : null; $error_msg = 'Invalid Username or Password!'; if ($lic != $_SESSION['OPENZISKEYHOLE']) { $this->view->msg = $error_msg . '!'; $this->_forward('error', 'error'); } else { $zit = isset($_REQUEST['homepage']) ? $_REQUEST['homepage'] : null; $db = ZitDBAdapter::getDBAdapter(); $f = new Zend_Filter_StripTags(); $request_username = $_REQUEST['loginUsername']; $username = $f->filter($request_username); $username2 = $f->filter($request_username); $password = $f->filter($_REQUEST['loginPassword']); if (empty($username) || empty($password) || $username == '' || $password == '') { session_destroy(); Zend_Session::regenerateId(); $this->view->msg = $error_msg . '!!'; $this->_forward('error', 'error'); } $authAdapter = new Zend_Auth_Adapter_DbTable($db); switch (DB_TYPE) { case 'mysql': $authAdapter->setTableName('authenticate'); $authAdapter->setIdentityColumn('admin_username'); $authAdapter->setCredentialColumn('admin_password'); break; case 'oci8': $authAdapter->setTableName('AUTHENTICATE'); $authAdapter->setIdentityColumn('ADMIN_USERNAME'); $authAdapter->setCredentialColumn('ADMIN_PASSWORD'); break; } $authAdapter->setIdentity($username); $authAdapter->setCredential($password); $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($authAdapter); Zend_Session::regenerateId(); $username = $db->quote($username); if (!$result->isValid()) { $this->view->msg = $error_msg . "!" . "!"; $this->_forward('error', 'error'); } else { session_regenerate_id(); $_SESSION['SERVER_GENERATED_SID'] = true; $za = new ZitAdminDB($db); $resultset = $za->fetchAll("admin_username = {$username}"); switch (DB_TYPE) { case 'mysql': // $query = "SELECT admin_level_id, admin_id, active FROM zit_admin WHERE admin_username = $username"; // $resultset = $db->fetchAll($query); $ZSN->admin_level = $resultset[0]->admin_level_id; $ZSN->admin_id = $resultset[0]->admin_id; $_SESSION['ADMIN_LEVEL'] = $resultset[0]->admin_level_id; $_SESSION['ADMIN_ID'] = $resultset[0]->admin_id; $this->view->adminLevel = $resultset[0]->admin_level_id; break; case 'oci8': // $query = "SELECT ADMIN_LEVEL_ID, ADMIN_ID, ACTIVE FROM ZIT_ADMIN WHERE admin_username = $username"; // $resultset = $db->fetchAll($query); $ZSN->admin_level = $resultset[0]->ADMIN_LEVEL_ID; $ZSN->admin_id = $resultset[0]->ADMIN_ID; $_SESSION['ADMIN_LEVEL'] = $resultset[0]->ADMIN_LEVEL_ID; $_SESSION['ADMIN_ID'] = $resultset[0]->ADMIN_ID; $this->view->adminLevel = $resultset[0]->ADMIN_LEVEL_ID; break; } $token = md5(uniqid()); $better_token = md5(uniqid(rand(), true)); $key = strtoupper($better_token); $_SESSION['OPENZISKEYHOLE'] = $key; $ZSN->key = $key; $data = array('LAST_LOGIN' => new Zend_Db_Expr(DBConvertor::convertCurrentTime()), 'ATTEMPTS' => 0); $where = 'admin_id = ' . $_SESSION['ADMIN_ID']; $za->update($data, $where); // $admin = new TB_ZitAdmin(); // $who = $admin->FetchRow->( "LOWER(ADMIN_USERNAME) = LOWER('$username')"); // print_r($who); if ($zit == 1) { $this->view->validUser = true; $this->render('index'); } else { $this->render('ajaxsuccessjson'); } } } }
Zend_Loader::loadClass('Zend_Validate_Db_RecordExists'); Zend_Loader::loadClass('Zend_Filter_Input'); Zend_Loader::loadClass('Zend_Validate_NotEmpty'); Zend_Loader::loadClass('Zend_Json'); Zend_Loader::loadClass('Zend_Cache'); Zend_Loader::loadClass('Zend_Cache_Core'); Zend_Loader::loadClass('Zend_Log'); Zend_Loader::loadClass('Zend_Log_Writer_Stream'); Zend_Loader::loadClass('Zend_Log_Formatter_Xml'); require_once 'zit_db_adapter.php'; require_once 'zit_db_adapter2.php'; require_once 'db_convertor.php'; //General Error require_once '../ZIT_APPLICATION/main_lib/GeneralError.php'; try { $db = ZitDBAdapter::getDBAdapter(); Zend_Registry::set('my_db', $db); } catch (Zend_Exception $e) { exit("unable to create DBAdapter"); } try { $db2 = ZitDBAdapter2::getDBAdapter(); Zend_Registry::set('my_db2', $db2); } catch (Zend_Exception $e) { exit("unable to create DBAdapter 2"); } switch (DB_TYPE) { case 'mysql': $dbversion = 'mysql'; break; case 'oci8':
private function buildProviders($domElement, $dom) { $db = ZitDBAdapter::getDBAdapter(); $query = "select distinct\r\n\t\t\t\t a.agent_id,\r\n\t\t\t\t a.source_id\r\n\t\t\t\t from\r\n\t\t\t\t " . DBConvertor::convertCase('agent_provisions') . " p,\r\n\t\t\t\t " . DBConvertor::convertCase('agent') . " a\r\n\t\t\t\t where p.zone_id = " . $_SESSION['ZONE_ID'] . "\r\n\t\t\t\t and p.context_id = " . $_SESSION['CONTEXT_ID'] . "\r\n\t\t\t\t and a.agent_id = p.agent_id"; $result = $db->fetchAll($query); foreach ($result as $row) { $sifProviderNode = $dom->createElement('SIF_Provider'); switch (DB_TYPE) { case 'mysql': $sifProviderNode->setAttribute('SourceId', $row->source_id); $agt = $row->agent_id; break; case 'oci8': $sifProviderNode->setAttribute('SourceId', $row->SOURCE_ID); $agt = $row->AGENT_ID; break; } $query2 = "select\r\n\t\t\t\t\t o.object_name,\r\n\t\t\t\t\t c.context_desc\r\n\t\t\t\t\t from\r\n\t\t\t\t\t " . DBConvertor::convertCase('data_object') . " o,\r\n\t\t\t\t\t " . DBConvertor::convertCase('agent_provisions') . " a,\r\n\t\t\t\t\t " . DBConvertor::convertCase('context') . " c\r\n\t\t\t\t\t where\r\n\t\t\t\t\t a.zone_id = " . $_SESSION['ZONE_ID'] . "\r\n\t\t\t\t\t and\r\n\t\t\t\t\t a.context_id = " . $_SESSION['CONTEXT_ID'] . "\r\n\t\t\t\t\t and\r\n\t\t\t\t\t a.agent_id = " . $agt . "\r\n\t\t\t\t\t and o.object_id = a.object_type_id\r\n\t\t\t\t\t and a.context_id = c.context_id order by o.object_id"; $objectListNode = $dom->createElement('SIF_ObjectList'); $sifProviderNode->appendChild($objectListNode); $result2 = $db->fetchAll($query2); $currentObjectName = ''; $oldNode = null; foreach ($result2 as $row2) { switch (DB_TYPE) { case 'mysql': $objectName = $row2->object_name; $contextDesc = $row2->context_desc; break; case 'oci8': $objectName = $row2->OBJECT_NAME; $contextDesc = $row2->CONTEXT_DESC; break; } if ($objectName != $currentObjectName) { $sifObjectNode = $dom->createElement('SIF_Object'); $sifObjectNode->setAttribute('ObjectName', $objectName); $sifExtednedQueryNode = $dom->createElement('SIF_ExtendedQuerySupport'); $sifExtednedQueryNode->appendChild($dom->createTextNode('false')); $sifObjectNode->appendChild($sifExtednedQueryNode); $sifContextsNode = $dom->createElement('SIF_Contexts'); } else { $sifContextsNode = $oldNode; } $sifContextNode = $dom->createElement('SIF_Context'); $text = $dom->createTextNode($contextDesc); $sifContextNode->appendChild($text); $sifContextsNode->appendChild($sifContextNode); if ($objectName != $currentObjectName) { $sifObjectNode->appendChild($sifContextsNode); $objectListNode->appendChild($sifObjectNode); } $currentObjectName = $objectName; $oldNode = $sifContextsNode; } //get all objects $domElement->appendChild($sifProviderNode); } //get all agent providers return $domElement; }
public function setFrozenMsgId($id) { $db = ZitDBAdapter::getDBAdapter(); $data = array('frozen_msg_id' => $id); $n = $db->update('agent_registered', $data, 'agent_id = ' . $this->agentId . ' and unregister_timestamp is null and context_id = ' . $this->contextId . ' and zone_id = ' . $this->zoneId); if ($n == 1) { return true; } else { return false; } }