예제 #1
0
function print_index()
{
    global $gbl, $sgbl, $ghtml, $login;
    ob_start();
    print_time('index');
    $cgi_clientname = $ghtml->frm_clientname;
    Htmllib::checkForScript($cgi_clientname);
    $cgi_class = $ghtml->frm_class;
    if (!$cgi_class) {
        $cgi_class = getClassFromName($cgi_clientname);
    }
    $cgi_password = $ghtml->frm_password;
    $cgi_forgotpwd = $ghtml->frm_forgotpwd;
    $cgi_email = $ghtml->frm_email;
    $cgi_key = $ghtml->frm_login_key;
    if (!$cgi_password || !$cgi_clientname) {
        $ghtml->print_redirect("/login/?frm_emessage=login_error");
    }
    $cgi_classname = 'client';
    if ($cgi_class) {
        $cgi_classname = $cgi_class;
    }
    if ($cgi_clientname == "" || $cgi_password == "" && $cgi_key == "") {
        $cgi_forgotpwd = $ghtml->frm_forgotpwd;
        return;
    }
    $ip = $_SERVER['REMOTE_ADDR'];
    if (!check_login_success($cgi_classname, $cgi_clientname, $cgi_password, $cgi_key)) {
        return;
    }
    log_log("login_success", "Successful Login to {$cgi_clientname} from " . $_SERVER['REMOTE_ADDR']);
    /*
    	try {
    		$att = $gbl->g->getFromList("loginattempt", $ip);
    		$att->delete();
    } catch (Exception $e) {
    }
    */
    if (check_disable_admin($cgi_clientname)) {
        $ghtml->print_redirect("/login/?frm_emessage=login_error");
        exit;
    }
    if (get_login($cgi_classname, $cgi_clientname)) {
        do_login($cgi_classname, $cgi_clientname);
        $login->was();
        check_blocked_ip();
        $ghtml->print_redirect("/");
    } else {
        $ghtml->cgiset("frm_emessage", "login_error");
    }
    $cgi_forgotpwd = $ghtml->frm_forgotpwd;
}
예제 #2
0
function webcommandline_main()
{
    global $gbl, $sgbl, $login, $ghtml;
    global $argv;
    ob_start();
    $opt = $_REQUEST;
    if ($opt['login-class'] !== 'client' && $opt['login-class'] !== 'auxiliary') {
        json_print("error", $opt, "__error_only_clients_and_auxiliary_allowed_to_login");
        log_log("web_command", "__error_only_clients_and_auxiliary_allowed_to_login");
        exit;
    }
    log_log("web_command", var_export($opt, true));
    //initProgram('admin');
    if (!check_raw_password($opt['login-class'], $opt['login-name'], $opt['login-password'])) {
        json_print("error", $opt, "_error_login_error");
        log_log("web_command", "__error_login_error");
        exit;
    }
    if (check_disable_admin($opt['login-name'])) {
        json_print("error", $opt, "_error_login_error");
        log_log("web_command", "__error_admin_is_disabled");
        exit;
    }
    $classname = $opt['login-class'];
    $lobject = new $classname(null, 'localhost', $opt['login-name']);
    $lobject->get();
    if ($lobject->dbaction === 'add') {
        json_print("error", $opt, "__error_login_error\n");
        log_log("web_command", "__error_login_error");
        exit;
    }
    if ($classname === 'auxiliary') {
        $login = $lobject->getParentO();
        $login->__auxiliary_object = $lobject;
    } else {
        $login = $lobject;
    }
    if ($opt['action'] === 'simplelist') {
        $must = array('action', 'resource');
    } else {
        if ($opt['action'] === 'getproperty') {
            $must = array('action');
        } else {
            $must = array('action', 'class');
        }
    }
    $pk = array_keys($opt);
    foreach ($must as $m) {
        if (!array_search_bool($m, $pk)) {
            $string = implode("_", $must);
            json_print("error", $opt, "__error_need_{$string}\n");
            log_log("web_command", "__error_need_{$string}");
            exit;
        }
    }
    $func = "__cmd_desc_{$opt['action']}";
    try {
        $list = $func($opt);
    } catch (exception $e) {
        while (@ob_end_clean()) {
        }
        json_print("error", $opt, "__error_{$e->getMessage()}");
        log_log("web_command", "__error_{$e->getMessage()}");
        exit;
    }
    if ($opt['action'] === 'simplelist') {
        json_print_result($opt, $list);
    } else {
        if ($opt['action'] === 'getproperty') {
            json_print_result($opt, $list);
        } else {
            $out = "__success_{$opt['action']}_successful_on_{$opt['class']}_{$opt['name']}";
            json_print("success", $opt, $out);
        }
    }
    log_log("web_command", "__success_{$opt['action']}");
    exit;
}