ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/trunk/webapp/modules/pc/do/o_login.php @ 7608

Last change on this file since 7608 was 7608, checked in by ogawa, 13 years ago

#1502:スレーブPNEで使われるdb_member_create_member()でc_member_idを返すようにした、またINSERT失敗時に不要なデータを削除する処理を加えた

File size: 2.1 KB
Line 
1<?php
2/**
3 * @copyright 2005-2008 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class pc_do_o_login extends OpenPNE_Action
8{
9    var $_auth;
10    var $_lc;
11    var $_login_params;
12
13    function isSecure()
14    {
15        return false;
16    }
17
18    function execute($requests)
19    {
20        $this->_login_params = $requests['login_params'];
21        $config = get_auth_config();
22        $auth = new OpenPNE_Auth($config);
23        $this->_auth =& $auth;
24        $auth->setExpire($GLOBALS['OpenPNE']['common']['session_lifetime']);
25        $auth->setIdle($GLOBALS['OpenPNE']['common']['session_idletime']);
26
27        // 現在のセッションを削除
28        $auth->logout();
29
30        if (LOGIN_CHECK_ENABLE) {
31            include_once 'OpenPNE/LoginChecker.php';
32            $options = array(
33                'check_num'   => LOGIN_CHECK_NUM,
34                'check_time'  => LOGIN_CHECK_TIME,
35                'reject_time' => LOGIN_REJECT_TIME,
36            );
37            $this->_lc =& new OpenPNE_LoginChecker($options);
38        }
39
40        if (!$auth->login($requests['is_save'])) {
41            $this->_fail_login();
42        }
43
44        if (LOGIN_CHECK_ENABLE && $this->_lc->is_rejected()) {
45            $this->_fail_login();
46        }
47
48        $c_member_id = db_member_c_member_id4username_encrypted($auth->getUsername(), false);
49        if (OPENPNE_AUTH_MODE == 'slavepne' && !$c_member_id) {
50            $c_member_id = db_member_create_member($_POST['username']);
51        }
52        if (!$c_member_id) {
53            $this->_fail_login();
54        }
55
56        db_member_do_access($c_member_id);
57        db_api_update_token($c_member_id);
58
59        $url = OPENPNE_URL;
60        if ($this->_login_params) {
61            $url .= '?' . $this->_login_params;
62        }
63        client_redirect_absolute($url);
64    }
65
66    function _fail_login()
67    {
68        if (LOGIN_CHECK_ENABLE) {
69            $this->_lc->fail_login();
70        }
71        $this->_auth->logout();
72        $p = array('msg_code' => 'login_failed', 'login_params' => $this->_login_params);
73        openpne_redirect('pc', 'page_o_tologin', $p);
74    }
75}
76
77?>
Note: See TracBrowser for help on using the repository browser.