function buildGroups() { global $GROUPS, $CONFIG; require PATH_GROUPS . "groups.inc.php"; foreach ($GROUPS as $id => $group) { $GROUPS[$id]["gr_desc_array"] = $GROUPS[$id]["gr_desc"]; $descriptions = unserialize(base64_decode($group["gr_desc"])); if (defined("DEFAULT_BROWSER_LANGUAGE") && isset($descriptions[strtoupper(DEFAULT_BROWSER_LANGUAGE)])) { $GROUPS[$id]["gr_desc"] = base64_decode($descriptions[strtoupper(DEFAULT_BROWSER_LANGUAGE)]); } else { if (isset($descriptions[strtoupper($CONFIG["gl_default_language"])])) { $GROUPS[$id]["gr_desc"] = base64_decode($descriptions[strtoupper($CONFIG["gl_default_language"])]); } else { if (isset($descriptions["EN"])) { $GROUPS[$id]["gr_desc"] = base64_decode($descriptions["EN"]); } else { $GROUPS[$id]["gr_desc"] = base64_decode(current($descriptions)); } } } $GROUPS[$id]["gr_extern"] = $GROUPS[$id]["gr_extern"] == 1; $GROUPS[$id]["gr_predefined"] = loadPredefinedMessages($id, true); } }
function validate() { global $INTERNAL, $GROUPS, $RESPONSE, $CONFIG; if (DB_CONNECTION || SERVERSETUP) { if (isset($_POST[POST_INTERN_AUTHENTICATION_USERID]) && isset($_POST[POST_INTERN_AUTHENTICATION_PASSWORD])) { foreach ($INTERNAL as $sysId => $internuser) { if (strtolower($internuser->UserId) == strtolower($_POST[POST_INTERN_AUTHENTICATION_USERID])) { $internuser->SetStaticCaller(); $INTERNAL[CALLER_SYSTEM_ID]->PredefinedMessages = loadPredefinedMessages($sysId, false); if (isset($_POST[POST_INTERN_NEW_PASSWORD])) { $INTERNAL[CALLER_SYSTEM_ID]->ChangePassword($_POST[POST_INTERN_NEW_PASSWORD]); } if (LOGIN || SERVERSETUP) { $INTERNAL[CALLER_SYSTEM_ID]->LoadPassword(); if (isset($_POST[POST_INTERN_VERSION]) && VERSION != $_POST[POST_INTERN_VERSION]) { define("INVALID_CLIENT_VERSION", true); } } if (isset($INTERNAL[CALLER_SYSTEM_ID]->Password) && $INTERNAL[CALLER_SYSTEM_ID]->Password == md5($_POST[POST_INTERN_AUTHENTICATION_PASSWORD])) { if (LOGIN && !SERVERSETUP && $INTERNAL[CALLER_SYSTEM_ID]->LastActive != null && $INTERNAL[CALLER_SYSTEM_ID]->LastActive > time() - $CONFIG["timeout_clients"]) { if (isset($INTERNAL[CALLER_SYSTEM_ID]->LoginId) && $_POST[POST_INTERN_AUTHENTICATION_LOGINID] != $INTERNAL[CALLER_SYSTEM_ID]->LoginId) { define("AUTH_RESULT", LOGIN_REPLY_ALREADY_ONLINE); break; } } if (!SERVERSETUP && LOGIN && $INTERNAL[CALLER_SYSTEM_ID]->IsPasswordChangeNeeded()) { define("AUTH_RESULT", LOGIN_REPLY_CHANGE_PASS); break; } if (SERVERSETUP && $INTERNAL[CALLER_SYSTEM_ID]->Level != USER_LEVEL_ADMIN) { define("AUTH_RESULT", LOGIN_REPLY_NOADMIN); break; } define("VALIDATED", true); if (!LOGOFF && isset($_POST[POST_INTERN_AUTHENTICATION_LOGINID])) { $INTERNAL[CALLER_SYSTEM_ID]->LoginId = $_POST[POST_INTERN_AUTHENTICATION_LOGINID]; } elseif (LOGOFF) { $INTERNAL[CALLER_SYSTEM_ID]->LoginId = null; } define("AUTH_RESULT", LOGIN_REPLY_SUCCEEDED); if (isset($_POST[POST_GLOBAL_TYPING]) && $_POST[POST_INTERN_SERVER_ACTION] == INTERN_ACTION_LISTEN) { $INTERNAL[CALLER_SYSTEM_ID]->Typing = $_POST[POST_GLOBAL_TYPING]; } break; } else { if ($INTERNAL[CALLER_SYSTEM_ID]->LastActive < time() - $CONFIG["timeout_clients"]) { $INTERNAL[CALLER_SYSTEM_ID]->Destroy(); } break; } } $INTERNAL[$sysId] = $internuser; } } } else { define("AUTH_RESULT", LOGIN_REPLY_DB); } if (defined("VALIDATED") && LOGIN) { $INTERNAL[CALLER_SYSTEM_ID]->IP = getIP(); $INTERNAL[CALLER_SYSTEM_ID]->FirstActive = time(); $INTERNAL[CALLER_SYSTEM_ID]->VisitorFileSizes = array(); $INTERNAL[CALLER_SYSTEM_ID]->VisitorStaticReload = array(); $RESPONSE->Login = $INTERNAL[CALLER_SYSTEM_ID]->GetLoginReply($GROUPS[$INTERNAL[CALLER_SYSTEM_ID]->Groups[0]]["gr_extern"], getTimeDifference($_POST[POST_INTERN_CLIENT_TIME])); } if (!defined("AUTH_RESULT")) { define("AUTH_RESULT", LOGIN_REPLY_BAD_COMBINATION); } }