示例#1
0
function plugin_qhmlogout_action()
{
    global $script;
    $qm = get_qm();
    $msg = $qm->m['plg_qhmlogout']['title'];
    ss_auth_logout();
    if (isset($_SESSION['temp_design'])) {
        unset($_SESSION['temp_design']);
    }
    return array('msg' => $msg, 'body' => $qm->replace('plg_qhmlogout.done', $script));
}
示例#2
0
/**
 *   QHM Check Login Plugin
 *   -------------------------------------------
 *   check_login.inc.php
 *   
 *   Copyright (c) 2010 hokuken
 *   http://hokuken.com/
 *   
 *   created  : 2010-12-15
 *   modified :
 *   
 *   Description
 *   
 *   Usage :
 *   
 */
function plugin_check_login_action()
{
    global $vars, $script, $auth_users;
    $qt = get_qt();
    //Ajax
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
        $mode = isset($vars['mode']) ? $vars['mode'] : 'check';
        $res = array('status' => 0, 'message' => '', 'data' => null);
        //チェック
        if ($mode == 'check') {
            // login OK
            if (isset($_SESSION['usr']) && array_key_exists($_SESSION['usr'], $auth_users)) {
                $res['status'] = 1;
                $res['message'] = 'login';
            } else {
                $res['status'] = 0;
                $res['message'] = 'logout';
            }
        } else {
            if ($mode == 'auth') {
                $username = isset($vars['username']) ? $vars['username'] : '';
                $password = isset($vars['password']) ? $vars['password'] : '';
                //OK
                if (isset($auth_users[$username]) && $auth_users[$username] == pkwk_hash_compute($password)) {
                    $_SESSION['usr'] = $username;
                    if (ss_admin_check()) {
                        $d = dir(CACHEQHM_DIR);
                        while (false !== ($entry = $d->read())) {
                            if ($entry != '.' && $entry != '..') {
                                $entry = CACHEQHM_DIR . $entry;
                                if (file_exists($entry)) {
                                    // cacheqhmディレクトリにある3日前の一時ファイルを削除
                                    if (mktime(date("H"), date("i"), date("s"), date("n"), date("j") - 3, date("Y")) > time(fileatime($entry))) {
                                        unlink($entry);
                                    }
                                }
                            }
                        }
                        $d->close();
                    }
                    $res['status'] = 1;
                    $res['message'] = 'Login Success';
                } else {
                    $res['status'] = 2;
                    $res['message'] = 'Invalid Username or Password';
                }
            } else {
                if ($mode == 'destroy') {
                    ss_auth_logout();
                    $res['status'] = 0;
                    $res['message'] = 'logout';
                } else {
                    $res['status'] = 2;
                    $res['message'] = 'request error';
                    $res['data'] = $vars;
                }
            }
        }
        header("Content-Type: application/json; charset=UTF-8");
        $json = json_encode($res);
        echo $json;
        exit;
    } else {
        $to = $script . '?cmd=qhmauth';
        header("Location: {$to}");
        exit;
    }
}