. * * For more information, contact Colosa Inc, 2566 Le Jeune Rd., * Coral Gables, FL, 33134, USA, or email info@colosa.com. * */ /* * Data base connections routines for ajax request * @Author Erik Amaru Ortiz * @Last update May 20th, 2009 * @Param var action from POST request */ if( isset($_POST['action']) || isset($_POST['function']) ){ $action = (isset($_POST['action']))?$_POST['action']:$_POST['function']; } else { throw new Exception('dbconnections Fatal error, No action defined!...'); } if(isset($_POST['PROCESS'])) $_SESSION['PROCESS'] = $_POST['PROCESS']; #Global Definitions require_once 'classes/model/DbSource.php'; require_once 'classes/model/Content.php'; $G_PUBLISH = new Publisher; G::LoadClass('processMap'); G::LoadClass('ArrayPeer'); G::LoadClass ('dbConnections'); global $_DBArray; switch ( $action ){ case 'loadInfoAssigConnecctionDB': $oStep = new Step(); return print ($oStep->loadInfoAssigConnecctionDB($_POST['PRO_UID'],$_POST['DBS_UID'])); break; case 'showDbConnectionsList': $oProcess = new processMap(); $oCriteria = $oProcess->getConditionProcessList(); if( ProcessPeer::doCount($oCriteria) > 0 ){ $aProcesses = array(); $aProcesses[] = array('PRO_UID' => 'char', 'PRO_TITLE' => 'char'); $oDataset = ArrayBasePeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $sProcessUID = ''; while( $aRow = $oDataset->getRow() ){ if( $sProcessUID == '' ){ $sProcessUID = $aRow['PRO_UID']; } $aProcesses[] = array('PRO_UID' => (isset($aRow['PRO_UID']) ? $aRow['PRO_UID'] : ''), 'PRO_TITLE' => (isset($aRow['PRO_TITLE']) ? $aRow['PRO_TITLE'] : '')); $oDataset->next(); } $_DBArray['PROCESSES'] = $aProcesses; $_SESSION['_DBArray'] = $_DBArray; $_SESSION['PROCESS'] = (isset($_POST['PRO_UID']) ? $_POST['PRO_UID'] : ''); $oDBSource = new DbSource(); $oCriteria = $oDBSource->getCriteriaDBSList($_SESSION['PROCESS']); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dbConnections/dbConnections', $oCriteria); } G::RenderPage('publish', 'raw'); break; case 'showConnections': $oDBSource = new DbSource(); $oCriteria = $oDBSource->getCriteriaDBSList($_SESSION['PROCESS']); $G_PUBLISH = new Publisher(); $G_PUBLISH->AddContent('propeltable', 'paged-table', 'dbConnections/dbConnections', $oCriteria); G::RenderPage('publish', 'raw'); break; case 'newDdConnection': $dbs = new dbConnections($_SESSION['PROCESS']); $dbServices = $dbs->getDbServicesAvailables(); $dbService = $dbs->getEncondeList(); //we are updating the passwords with encrupt info $dbs->encryptThepassw($_SESSION['PROCESS']); //end updating $rows[] = array('uid' => 'char', 'name' => 'char'); foreach($dbServices as $srv) { $rows[] = array('uid' => $srv['id'], 'name' => $srv['name']); } $_DBArray['BDCONNECTIONS'] = $rows; $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dbConnections/dbConnections_New', '', ''); G::RenderPage('publish', 'raw'); break; case 'editDdConnection': $dbs = new dbConnections($_SESSION['PROCESS']); $dbServices = $dbs->getDbServicesAvailables(); $rows[] = array('uid' => 'char', 'name' => 'char'); foreach($dbServices as $srv) { $rows[] = array('uid' => $srv['id'], 'name' => $srv['name']); } $_DBArray['BDCONNECTIONS'] = $rows; $_SESSION['_DBArray'] = $_DBArray; $o = new DbSource(); $aFields = $o->load($_POST['DBS_UID'], $_SESSION['PROCESS']); if ($aFields['DBS_PORT'] == '0') { $aFields['DBS_PORT'] = ''; } $aFields['DBS_PASSWORD']=$dbs->getPassWithoutEncrypt($aFields); $aFields['DBS_PASSWORD']=($aFields['DBS_PASSWORD'] == 'none') ? "": $aFields['DBS_PASSWORD']; $G_PUBLISH->AddContent('xmlform', 'xmlform', 'dbConnections/dbConnections_Edit', '', $aFields); G::RenderPage('publish', 'raw'); break; case 'saveEditConnection': $oDBSource = new DbSource(); $oContent = new Content(); if(strpos($_POST['server'], "\\")) $_POST['port'] = 'none'; $aData = Array( 'DBS_UID' => $_POST['dbs_uid'], 'PRO_UID' => $_SESSION['PROCESS'], 'DBS_TYPE' => $_POST['type'], 'DBS_SERVER' => $_POST['server'], 'DBS_DATABASE_NAME' => $_POST['db_name'], 'DBS_USERNAME' => $_POST['user'], 'DBS_PASSWORD' => (($_POST['passwd'] == 'none') ? "": G::encrypt($_POST['passwd'], $_POST['db_name']))."_2NnV3ujj3w", 'DBS_PORT' => (($_POST['port'] == 'none') ? "": $_POST['port']), 'DBS_ENCODE' => $_POST['enc'] ); $oDBSource->update($aData); $oContent->addContent('DBS_DESCRIPTION', '', $_POST['dbs_uid'], SYS_LANG, $_POST['desc']); break; case 'saveConnection': $oDBSource = new DbSource(); $oContent = new Content(); if(strpos($_POST['server'], "\\")) $_POST['port'] = 'none'; $aData = Array( 'PRO_UID' => $_SESSION['PROCESS'], 'DBS_TYPE' => $_POST['type'], 'DBS_SERVER' => $_POST['server'], 'DBS_DATABASE_NAME' => $_POST['db_name'], 'DBS_USERNAME' => $_POST['user'], 'DBS_PASSWORD' => (($_POST['passwd'] == 'none') ? "": G::encrypt($_POST['passwd'], $_POST['db_name']))."_2NnV3ujj3w", 'DBS_PORT' => (($_POST['port'] == 'none') ? "": $_POST['port']), 'DBS_ENCODE' => $_POST['enc'] ); $newid = $oDBSource->create($aData); $sDelimiter = DBAdapter::getStringDelimiter(); $oContent->addContent('DBS_DESCRIPTION', '', $newid, SYS_LANG, $_POST['desc']); break; case 'deleteDbConnection': try{ $oDBSource = new DbSource(); $oContent = new Content(); $DBS_UID = $_POST['dbs_uid']; $PRO_UID = $_SESSION['PROCESS']; $oDBSource->remove($DBS_UID, $PRO_UID); $oContent->removeContent('DBS_DESCRIPTION', "", $DBS_UID); $result->success = true; $result->msg = G::LoadTranslation('ID_DBCONNECTION_REMOVED'); }catch (Exception $e) { $result->success = false; $result->msg = $e->getMessage(); } print G::json_encode($result); break; case 'showTestConnection': $G_PUBLISH = new Publisher; $G_PUBLISH->AddContent('view', 'dbConnections/dbConnections'); G::RenderPage('publish', 'raw'); break; case 'testConnection': sleep(0); $step = $_POST['step']; $type = $_POST['type']; $server = $_POST['server']; $db_name = $_POST['db_name']; $user = $_POST['user']; $passwd = ($_POST['passwd'] == 'none') ? "": $_POST['passwd']; $port = $_POST['port']; if( ($port == 'none') || ($port == 0) ){ //setting defaults ports switch ($type){ case 'mysql': $port = 3306; break; case 'pgsql': $port = 5432; break; case 'mssql': $port = 1433; break; case 'oracle': $port = 1521; break; } } G::LoadClass('net'); $Server = new NET($server); define("SUCCESSFULL", 'SUCCESSFULL'); define("FAILED", 'FAILED'); switch ($step) { case 1: if ($Server->getErrno() == 0) { print (SUCCESSFULL.','); } else { print (FAILED.','.$Server->error); } break; case 2: $Server->scannPort($port); if ($Server->getErrno() == 0) { print (SUCCESSFULL.','); } else { print (FAILED.','.$Server->error); } break; case 3: $Server->loginDbServer($user, $passwd); $Server->setDataBase($db_name, $port); if($Server->errno == 0){ $response = $Server->tryConnectServer($type); if($response->status == 'SUCCESS') { print (SUCCESSFULL.','); } else { print (FAILED.','.$Server->error); } } else { print (FAILED.','.$Server->error); } break; case 4: $Server->loginDbServer($user, $passwd); $Server->setDataBase($db_name, $port); if($Server->errno == 0){ $response = $Server->tryConnectServer($type); if($response->status == 'SUCCESS') { $response = $Server->tryOpenDataBase($type); if($response->status == 'SUCCESS') { print (SUCCESSFULL.','.$Server->error); } else { print (FAILED.','.$Server->error); } } else { print (FAILED.','.$Server->error); } } else { print (FAILED.','.$Server->error); } break; default: print('finished'); } break; case 'showEncodes': G::LoadThirdParty('pear/json','class.json'); $oJSON = new Services_JSON(); $engine = $_POST['engine']; if($engine != "0"){ $dbs = new dbConnections(); echo $oJSON->encode($dbs->getEncondeList($engine)); } else { echo '[["0","..."]]'; } break; }