Create prefix for session vars

This commit is contained in:
Dmitriy Simushev 2013-02-04 09:01:48 +00:00
parent 74ebf724cc
commit 0cdd55cdf8
8 changed files with 33 additions and 26 deletions

View File

@ -153,7 +153,7 @@ class UsersProcessor extends ClientSideProcessor {
/** /**
* Return updated threads list. API function * Return updated threads list. API function
* *
* @global string $mysqlprefix Database tables prefix * @global string $session_prefix Session vars prefix
* @global int $can_viewthreads View threads permission code * @global int $can_viewthreads View threads permission code
* @global int $can_takeover Take threads over permission code * @global int $can_takeover Take threads over permission code
* @param array $args Associative array of arguments. It must contains * @param array $args Associative array of arguments. It must contains
@ -164,17 +164,17 @@ class UsersProcessor extends ClientSideProcessor {
* - 'threads': array of threads changes * - 'threads': array of threads changes
*/ */
protected function apiUpdateThreads($args) { protected function apiUpdateThreads($args) {
global $mysqlprefix, $can_viewthreads, $can_takeover; global $session_prefix, $can_viewthreads, $can_takeover;
$operator = self::checkOperator($args['agentId']); $operator = self::checkOperator($args['agentId']);
$since = $args['revision']; $since = $args['revision'];
// Get operator groups // Get operator groups
if (!isset($_SESSION["${mysqlprefix}operatorgroups"])) { if (!isset($_SESSION[$session_prefix."operatorgroups"])) {
$_SESSION["${mysqlprefix}operatorgroups"] $_SESSION[$session_prefix."operatorgroups"]
= get_operator_groupslist($operator['operatorid']); = get_operator_groupslist($operator['operatorid']);
} }
$groupids = $_SESSION["${mysqlprefix}operatorgroups"]; $groupids = $_SESSION[$session_prefix."operatorgroups"];
$db = Database::getInstance(); $db = Database::getInstance();
$query = "select t.*, " . $query = "select t.*, " .

View File

@ -30,5 +30,10 @@ $dbversion = '1.6.3';
*/ */
$featuresversion = '1.6.4'; $featuresversion = '1.6.4';
/**
* Prefix for session variables.
* Provide an ability to instal several mibew instances on one server.
*/
$session_prefix = md5($mysqlhost.'##'.$mysqldb.'##'.$mysqlprefix) . '_';
?> ?>

View File

@ -21,6 +21,9 @@ session_start();
// Include configuration file // Include configuration file
require_once(dirname(__FILE__) . '/config.php'); require_once(dirname(__FILE__) . '/config.php');
// Include system constants file
require_once(dirname(__FILE__) . '/common/constants.php');
// Include system classes // Include system classes
require_once(dirname(__FILE__) . '/classes/database.php'); require_once(dirname(__FILE__) . '/classes/database.php');
require_once(dirname(__FILE__) . '/classes/settings.php'); require_once(dirname(__FILE__) . '/classes/settings.php');
@ -30,7 +33,6 @@ require_once(dirname(__FILE__) . '/classes/plugin.php');
// Include common libs // Include common libs
require_once(dirname(__FILE__) . '/common/configurations.php'); require_once(dirname(__FILE__) . '/common/configurations.php');
require_once(dirname(__FILE__) . '/common/constants.php');
require_once(dirname(__FILE__) . '/common/csrf.php'); require_once(dirname(__FILE__) . '/common/csrf.php');
require_once(dirname(__FILE__) . '/common/datetime.php'); require_once(dirname(__FILE__) . '/common/datetime.php');
require_once(dirname(__FILE__) . '/common/forms.php'); require_once(dirname(__FILE__) . '/common/forms.php');

View File

@ -268,7 +268,7 @@ function create_operator($login, $email, $password, $localename, $commonname, $a
*/ */
function notify_operator_alive($operatorid, $istatus) function notify_operator_alive($operatorid, $istatus)
{ {
global $mysqlprefix; global $session_prefix;
$db = Database::getInstance(); $db = Database::getInstance();
$db->query( $db->query(
"update {chatoperator} set istatus = :istatus, dtmlastvisited = :now " . "update {chatoperator} set istatus = :istatus, dtmlastvisited = :now " .
@ -279,9 +279,9 @@ function notify_operator_alive($operatorid, $istatus)
':operatorid' => $operatorid ':operatorid' => $operatorid
) )
); );
if (isset($_SESSION["${mysqlprefix}operator"])) { if (isset($_SESSION[$session_prefix."operator"])) {
if ($_SESSION["${mysqlprefix}operator"]['operatorid'] == $operatorid) { if ($_SESSION[$session_prefix."operator"]['operatorid'] == $operatorid) {
$_SESSION["${mysqlprefix}operator"]['istatus'] = $istatus; $_SESSION[$session_prefix."operator"]['istatus'] = $istatus;
} }
} }
} }
@ -369,13 +369,13 @@ function append_query($link, $pv)
function check_login($redirect = true) function check_login($redirect = true)
{ {
global $webimroot, $mysqlprefix; global $webimroot, $session_prefix;
if (!isset($_SESSION["${mysqlprefix}operator"])) { if (!isset($_SESSION[$session_prefix."operator"])) {
if (isset($_COOKIE['webim_lite'])) { if (isset($_COOKIE['webim_lite'])) {
list($login, $pwd) = preg_split("/,/", $_COOKIE['webim_lite'], 2); list($login, $pwd) = preg_split("/,/", $_COOKIE['webim_lite'], 2);
$op = operator_by_login($login); $op = operator_by_login($login);
if ($op && isset($pwd) && isset($op['vcpassword']) && md5($op['vcpassword']) == $pwd && !operator_is_disabled($op)) { if ($op && isset($pwd) && isset($op['vcpassword']) && md5($op['vcpassword']) == $pwd && !operator_is_disabled($op)) {
$_SESSION["${mysqlprefix}operator"] = $op; $_SESSION[$session_prefix."operator"] = $op;
return $op; return $op;
} }
} }
@ -391,7 +391,7 @@ function check_login($redirect = true)
return null; return null;
} }
} }
return $_SESSION["${mysqlprefix}operator"]; return $_SESSION[$session_prefix."operator"];
} }
// Force the admin to set a password after the installation // Force the admin to set a password after the installation
@ -407,14 +407,14 @@ function force_password($operator)
function get_logged_in() function get_logged_in()
{ {
global $mysqlprefix; global $session_prefix;
return isset($_SESSION["${mysqlprefix}operator"]) ? $_SESSION["${mysqlprefix}operator"] : FALSE; return isset($_SESSION[$session_prefix."operator"]) ? $_SESSION[$session_prefix."operator"] : FALSE;
} }
function login_operator($operator, $remember) function login_operator($operator, $remember)
{ {
global $webimroot, $mysqlprefix; global $webimroot, $session_prefix;
$_SESSION["${mysqlprefix}operator"] = $operator; $_SESSION[$session_prefix."operator"] = $operator;
if ($remember) { if ($remember) {
$value = $operator['vclogin'] . "," . md5($operator['vcpassword']); $value = $operator['vclogin'] . "," . md5($operator['vcpassword']);
setcookie('webim_lite', $value, time() + 60 * 60 * 24 * 1000, "$webimroot/"); setcookie('webim_lite', $value, time() + 60 * 60 * 24 * 1000, "$webimroot/");
@ -426,8 +426,8 @@ function login_operator($operator, $remember)
function logout_operator() function logout_operator()
{ {
global $webimroot, $mysqlprefix; global $webimroot, $session_prefix;
unset($_SESSION["${mysqlprefix}operator"]); unset($_SESSION[$session_prefix."operator"]);
unset($_SESSION['backpath']); unset($_SESSION['backpath']);
if (isset($_COOKIE['webim_lite'])) { if (isset($_COOKIE['webim_lite'])) {
setcookie('webim_lite', '', time() - 3600, "$webimroot/"); setcookie('webim_lite', '', time() - 3600, "$webimroot/");

View File

@ -73,8 +73,8 @@ if (!$op) {
if (count($errors) == 0) { if (count($errors) == 0) {
update_operator_avatar($op['operatorid'], $avatar); update_operator_avatar($op['operatorid'], $avatar);
if ($opId && $avatar && $_SESSION["${mysqlprefix}operator"] && $operator['operatorid'] == $opId) { if ($opId && $avatar && $_SESSION[$session_prefix."operator"] && $operator['operatorid'] == $opId) {
$_SESSION["${mysqlprefix}operator"]['vcavatar'] = $avatar; $_SESSION[$session_prefix."operator"]['vcavatar'] = $avatar;
} }
header("Location: $webimroot/operator/avatar.php?op=$opId"); header("Location: $webimroot/operator/avatar.php?op=$opId");
exit; exit;

View File

@ -81,7 +81,7 @@ if ((isset($_POST['login']) || !is_capable($can_administrate, $operator)) && iss
// update the session password // update the session password
if (!empty($password) && $opId == $operator['operatorid']) { if (!empty($password) && $opId == $operator['operatorid']) {
$toDashboard = $operator['vcpassword'] == md5('') && $password != ''; $toDashboard = $operator['vcpassword'] == md5('') && $password != '';
$_SESSION["${mysqlprefix}operator"]['vcpassword'] = md5($password); $_SESSION[$session_prefix."operator"]['vcpassword'] = md5($password);
if($toDashboard) { if($toDashboard) {
header("Location: $webimroot/operator/index.php"); header("Location: $webimroot/operator/index.php");
exit; exit;

View File

@ -59,8 +59,8 @@ if (!$op) {
if (count($errors) == 0) { if (count($errors) == 0) {
update_operator_permissions($op['operatorid'], $new_permissions); update_operator_permissions($op['operatorid'], $new_permissions);
if ($opId && $_SESSION["${mysqlprefix}operator"] && $operator['operatorid'] == $opId) { if ($opId && $_SESSION[$session_prefix."operator"] && $operator['operatorid'] == $opId) {
$_SESSION["${mysqlprefix}operator"]['iperm'] = $new_permissions; $_SESSION[$session_prefix."operator"]['iperm'] = $new_permissions;
} }
header("Location: $webimroot/operator/permissions.php?op=$opId&stored"); header("Location: $webimroot/operator/permissions.php?op=$opId&stored");
exit; exit;

View File

@ -26,7 +26,7 @@ $status = isset($_GET['away']) ? 1 : 0;
notify_operator_alive($operator['operatorid'], $status); notify_operator_alive($operator['operatorid'], $status);
$_SESSION["${mysqlprefix}operatorgroups"] = get_operator_groupslist($operator['operatorid']); $_SESSION[$session_prefix."operatorgroups"] = get_operator_groupslist($operator['operatorid']);
$page = array(); $page = array();
$page['havemenu'] = isset($_GET['nomenu']) ? "0" : "1"; $page['havemenu'] = isset($_GET['nomenu']) ? "0" : "1";