Esempio n. 1
0
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);
    }
}
Esempio n. 2
0
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);
    }
}