Ejemplo n.º 1
0
 public static function getDBAdapter()
 {
     if (!isset(self::$instance)) {
         self::$instance = new ZitDbAdapter();
     }
     return self::$instance->adapter;
 }
Ejemplo n.º 2
0
 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']);
     }
 }
Ejemplo n.º 3
0
 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;
     }
 }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
 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;
     }
 }
Ejemplo n.º 6
0
 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
 }
Ejemplo n.º 7
0
 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
 }
Ejemplo n.º 8
0
 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');
             }
         }
     }
 }
Ejemplo n.º 9
0
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':
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
 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;
     }
 }