function getTimestampTz($time = '') { static $tz; if (!$tz) { $tz = db_Wrap::formatTZ(date('Z')); } if ($time) { return date('Y-m-d H:i:s', $time) . " {$tz}"; } else { return date('Y-m-d H:i:s') . " {$tz}"; } }
/** * sotfShow::delete() * * purpose: to delete data from the tables * * @return (bool) */ function delete() { if (!$this->isLocal()) { error("Can delete only local stations"); return false; } // delete files from the repository sotf_Utils::erase($this->getDir()); // delete programmes of the station // TODO getallprogrammes: call delete // delete user permissions $this->db->query("DELETE FROM sotf_user_group WHERE station = '" . $this->id . "'"); // propagate deletion to other nodes $data = array('what' => 'station', 'del_time' => db_Wrap::getTimestampTZ(), 'node' => $GLOBALS['nodeId']); sotf_Base::saveDataWithId("sotf_deletions", 'id', $this->id, $data); // delete station description return parent::delete("sotf_stations", "station"); }
if (DB::isError($success)) { echo "Node DB connection failed: " . $success->getMessage(); logError("Node DB connection failed", $config['sqlDSN']); die; } $db->setFetchmode(DB_FETCHMODE_ASSOC); if ($config['selfUserDb']) { $userdb =& $db; } else { // create user database connection $config['sqlUserDSN'] = $config['userDbType'] . '://' . $config['userDbUser'] . ':' . $config['userDbPasswd'] . '@' . $config['userDbHost'] . ':' . $config['userDbPort'] . '/' . $config['userDbName']; debug("sqlUserDSN", $config['sqlUserDSN']); if ($config['userDbType'] == 'mysql') { $userdb = new db_Wrap_mysql(); } else { $userdb = new db_Wrap(); } $userdb->debug = $config['debug']; $success = $userdb->makeConnection($config['sqlUserDSN'], false, 'user'); if (DB::isError($success)) { echo "User DB connection failed: " . $success->getMessage(); logError("User DB connection failed", $config['sqlUserDSN']); die; } $userdb->setFetchmode(DB_FETCHMODE_ASSOC); } // persistent server variables $sotfVars = new sotf_Vars($db, 'sotf_vars'); $config['debug'] = $sotfVars->get('debug', 1); $userdb->debug = $sotfVars->get('debug_sql', 1); $db->debug = $sotfVars->get('debug_sql', 1);
/** * save node data */ function save() { $this->data['last_change'] = db_Wrap::getTimestampTz(); return parent::save("sotf_nodes", "id"); }
function login($name, $password) { global $user, $userdb, $page; $res = $userdb->getRow("SELECT auth_id, passwd FROM authenticate WHERE username='******'"); if (DB::isError($res)) { raiseError($res); } if ($res['passwd'] != $password) { error_log("Login failed for {$name} from " . getHostName(), 0); return $page->getlocalized("invalid_login"); } else { $user = new sotf_User($res['auth_id']); debug("Login successful", $user->name . ' = ' . $user->id); $userdb->query("UPDATE user_preferences SET num_logins=num_logins+1, last_visit='" . db_Wrap::getSQLDate() . "' WHERE auth_id='" . $user->id . "' "); $_SESSION['currentUserId'] = $user->id; } }
/** * sotf::getBlob() * * purpose: to get a binary property * * @param $prop_name * @return */ function getBlob($prop_name) { if (!isset($this->data[$prop_name])) { return false; } return db_Wrap::unescape_bytea($this->data[$prop_name]); }
global $errorControl; $errorControl->add($msg); } function raiseError($msg) { global $errorControl; debug("raised error", $msg); $errorControl->raise($msg); } // create database connections $db = db_Wrap::getDBConn($sqlDSN, false); if (!$db or DB::isError($db)) { die("Node DB connection failed: " . $db->getMessage()); } $db->setFetchmode(DB_FETCHMODE_ASSOC); $userdb = db_Wrap::getDBConn($sqlUserDSN, false); if (DB::isError($userdb)) { die("User DB connection failed: " . $userdb->getMessage()); } $userdb->setFetchmode(DB_FETCHMODE_ASSOC); // smarty for HTML output $smarty = new Smarty(); $smarty->template_dir = "{$basedir}/code/templates"; $smarty->compile_dir = "{$basedir}/code/templates_c"; $smarty->config_dir = "{$basedir}/code/configs"; $smarty->compile_check = $debug; $smarty->debugging = $debug; $smarty->show_info_include = $debug; $smarty->assign("NODEID", $nodeId); $smarty->assign("ROOTDIR", $rootdir); $smarty->assign("IMAGEDIR", $imagedir);
umask(02); // load system files require $peardir . '/DB.php'; // change this if you want to use other DBMS not Postgres require_once $peardir . '/DB/pgsql.php'; require $smartydir . '/Smarty.class.php'; require $smartydir . '/Config_File.class.php'; require $classdir . '/db_Wrap.class.php'; require $classdir . '/sotf_Utils.class.php'; require $classdir . '/sotf_Page.class.php'; require $classdir . '/sotf_Vars.class.php'; //PEAR::setErrorHandling(PEAR_ERROR_TRIGGER); //PEAR::setErrorHandling(PEAR_ERROR_DIE); // create database connections $sqlDSN = "pgsql://{$nodeDbUser}:{$nodeDbPasswd}@{$nodeDbHost}:{$nodeDbPort}/{$nodeDbName}"; $db = new db_Wrap(); $db->debug = $debug; $success = $db->makeConnection($sqlDSN, false); if (DB::isError($success)) { die("Portal DB connection to {$sqlDSN} failed: \n" . $success->getMessage()); } $db->setFetchmode(DB_FETCHMODE_ASSOC); // persistent server variables $sotfVars = new sotf_Vars($db, 'portal_vars'); $debug = $sotfVars->get('debug', 1); $userdb->debug = $sotfVars->get('debug_sql', 1); $db->debug = $sotfVars->get('debug_sql', 1); if ($debug) { error_log("------------------------------------------", 0); error_log("REQUEST_URI: " . myGetenv("REQUEST_URI"), 0); error_log("REMOTE_HOST: " . myGetenv('REMOTE_HOST'), 0);
/** saves basic object data into database */ function save() { $this->data['last_change'] = db_Wrap::getTimestampTz(); if (parent::save("sotf_programmes", "id")) { return $this->saveMetadataFile(); } else { return false; } }
function login($name, $password) { global $user, $userdb, $page; $pwd = $userdb->getOne("SELECT passwd FROM authenticate WHERE username='******'"); if (DB::isError($pwd)) { raiseError("could not compare passwords"); } if ($pwd != $password) { error_log("Login failed for {$name} from " . getHostName(), 0); return $page->getlocalized("invalid_login"); } else { $user = new sotf_User($name); $userdb->query("UPDATE user_preferences SET num_logins=num_logins+1, last_visit='" . db_Wrap::getSQLDate() . "' WHERE auth_id='" . $user->id . "' "); $_SESSION['username'] = $user->name; } }