. * * 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; }