GIF89a;
Direktori : /home/serb/www/chat/inc/cmses/ |
Current File : /home/serb/www/chat/inc/cmses/azdgCMS.php |
<?php //if(strpos(getcwd(), 'flashchat')) $azdg_root_path = '../'; // chat //if(strpos(getcwd(), 'members')) $azdg_root_path = '../'; // chat //if(strpos(getcwd(), 'admin')) $azdg_root_path = '../'; // chat //if(strpos(getcwd(), 'flashchat/admin')) $azdg_root_path = '../../'; // admin $azdg_root_path = realpath(dirname(__FILE__) . '/../../../') . '/'; require_once($azdg_root_path . 'include/config.inc.php'); require_once($azdg_root_path . 'include/functions.inc.php'); require_once($azdg_root_path . 'include/security.inc.php'); require_once($azdg_root_path . 'include/options.inc.php'); class AZDGDatingCMS { var $azdgLite; var $userid; var $adminUser; var $loginIDStmt; var $loginEmailStmt; var $getUserStmt; var $getUsersStmt; function AZDGDatingCMS() { // first thing to do: check which version of AZDG we're in $this->azdgLite = !function_exists('get_info'); $this->userid = NULL; $this->getUserStmt = new Statement("SELECT id, fname AS login FROM ".C_MYSQL_MEMBERS." WHERE id = ? LIMIT 1"); $this->getUserPlatinumStmt = new Statement("SELECT id, username AS login FROM ".C_MYSQL_MEMBERS." WHERE id = ? LIMIT 1"); $this->getUsersStmt = new Statement("SELECT id, fname AS login FROM ".C_MYSQL_MEMBERS); $this->loginIDStmt = new Statement("SELECT id, password, fname, lname,gender, req FROM ".C_MYSQL_MEMBERS." WHERE id=? AND (status >= '7') LIMIT 1" ); $this->loginEmailStmt = new Statement("SELECT id, password, fname,lname, gender, req FROM ".C_MYSQL_MEMBERS." WHERE email=? AND (status >='7') LIMIT 1"); $this->loginUsernameStmt = new Statement("SELECT id, username, fname,lname, password, gender, req FROM ".C_MYSQL_MEMBERS." WHERE username=? AND(status >= '7') LIMIT 1"); $this->getUsername = new Statement("SELECT username FROM".C_MYSQL_MEMBERS." WHERE id = ? LIMIT 1"); // see if there's an already established session if ($this->azdgLite) { @session_start(); if (isset($_SESSION['m'])) { $this->userid = intval($_SESSION['m']); // 'normal' user } elseif (isset($_SESSION['adminlogin'])) { $this->userid = $this->genAdminID(C_ADMINL); $this->adminUser = true; } } else { // if (is_numeric(get_info('m'))) $this->userid = intval(get_info('m')); else { if (C_AUTH) { @session_start(); if (isset($_SESSION['adminlogin'])) { $this->adminUser = true; $this->userid = $this->genAdminID(C_ADMINL); } } else { // working on cookies if (md5(C_ADMINL) == get_info('adminlogin')) { $this->adminUser = true; $this->userid = $this->genAdminID(C_ADMINL); } } } } } function isLoggedIn() { return $this->userid; } function getRoles() { $rv = ROLE_USER; // if ($GLOBALS['fc_config']['liveSupportMode']) // $rv = ROLE_CUSTOMER; // elseif ($this->adminUser) // $rv = ROLE_ADMIN; // else // $rv = ROLE_USER; return $rv; } function getUserProfile($userid) { if ($userid == SPY_USERID) return NULL; elseif ($userid == $this->genAdminID(C_ADMINL)) { return C_URL; } elseif ($user = $this->getUser($userid)) return ($userid == $this->isLoggedIn()) ? C_URL ."/members/index.php?l=&a=c" : C_URL . "/view.php?id=" . $userid; else return NULL; } function getUser($userid) { $rv = NULL; if( ($rs = ($this->azdgLite ? $this->getUserStmt->process($userid) : $this->getUserPlatinumStmt->process($userid))) && ($rec = $rs->next()) ) { $rec['roles'] = ROLE_USER; $rec['id'] = intval($rec['id']); // ADD CASE # LINES BELOW TO ADD MORE ADMINS OR MODERATORS WHERE # = USER NUMBER // moderator example foir user 5: case 5: $rec['roles'] = ROLE_MODERATOR; break; switch($rec['id']) { case 1: $rec['roles'] = ROLE_ADMIN; break; default: $roles = ROLE_USER; break; } // if ($rec['id'] == 1) // { // $rec['roles'] = ROLE_ADMIN; // } // if ($rec['id'] == 2) // { // $rec['roles'] = ROLE_MODERATOR; // } $rv = $rec; } elseif ($userid == $this->genAdminID(C_ADMINL)) { $rec = array(); $rec['login'] = C_ADMINL; $rec['roles'] = ROLE_ADMIN; $rec['id'] = $userid; $rv = $rec; } return $rv; } function login($login, $password) { $rv = NULL; //fwrite($GLOBALS['fp'], "intento de login con l/p:".$login."/".$password); if ($login == C_ADMINL && $password == C_ADMINP) { if ($this->azdgLite || (defined('C_AUTH') && C_AUTH)) { @session_destroy(); @session_start(); $_SESSION['adminlogin'] = md5(C_ADMINL); $_SESSION['adminpass'] = md5(C_ADMINP); $_SESSION['adminip'] = md5(ip()); } else { set_login('adminlogin',md5(C_ADMINL)); set_login('adminpass',md5(C_ADMINP)); set_login('adminip',md5(ip())); } return $this->genAdminID(C_ADMINL); } if (C_ID == '0') { // login with username. only for platinum version. $rs = $this->loginUsernameStmt->process(cb($login)); } elseif (C_ID == '2') { // login by email $rs = $this->loginEmailStmt->process(cbmail($login)); } else { // login by numeric id $rs = $this->loginIDStmt->process($id); } if ($rs->hasNext() && ($rec = $rs->next()) && ($rec['password'] == $password)) { if ($this->azdgLite) { @session_destroy(); @session_start(); $_SESSION['m'] = $rec['id']; $_SESSION['o'] = md5(agent()); $_SESSION['s'] = md5(ip()); return intval($rec['id']); } else { // Platinum version if (!isset($rec['username'])) { $rsu = $this->getUsername($rec['id']); $recu = $rsu->next(); $un = $recu['username']; } else $un = $rec['username']; MakeLogin($rec['id'], $un, $rec['fname'], $rec['lname'],$rec['gender'], $rec['req']); return $rec['id']; } } } function genAdminID($adminName) { // really simple hashing function // AzDGDating admins have no numeric ID $r = 0; for ($i = 0; $i < strlen($adminName); $i++) { $r = 131 * $r + ord($adminName[$i]); } // it seems the number is too big for Flash. // returning half of it should be still safe return intval($r / 2); } function userInRole($userid, $role) { if($user = $this->getUser($userid)) { return ($user['roles'] == $role); } return false; } function logout() { } function getUsers() { $rv = $this->getUsersStmt->process(); return $rv; } function getGender($userid) { // 'M' for Male, 'F' for Female, NULL for undefined return NULL; } } $GLOBALS['fc_config']['db'] = array( 'host' => C_HOST, 'user' => C_USER, 'pass' => C_PASS, 'base' => C_BASE, 'pref' => "fc_", ); $GLOBALS['fc_config']['cms'] = new AZDGDatingCMS(); foreach($GLOBALS['fc_config']['languages'] as $k => $v) { $GLOBALS['fc_config']['languages'][$k]['dialog']['login']['moderator'] =''; } ?>