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

Changeset 11265


Ignore:
Timestamp:
Apr 10, 2009, 5:40:31 PM (11 years ago)
Author:
urabe
Message:

#3679 差し戻しにて指摘の点を再度修正しました。

Location:
OpenPNE/trunk/webapp
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/lib/auth.inc

    r11259 r11265  
    9191    // 秘密の質問が未登録の場合でもアクセスすることのできるアクション
    9292    $password_query_answer_ext_page = array(
    93         'do_h_regist_prof',
    9493        'do_h_config_3',
    9594        'page_h_config',
     
    9796    );
    9897
    99     $is_password_query_answer = db_member_get_is_password_query_answer($u);
    100     $is_password_query_answer_action = in_array($current_page, $password_query_answer_ext_page);
     98    $is_registered_password_query_answer = db_member_is_registered_password_query_answer($u);
     99    $is_registered_password_query_answer_action = in_array($current_page, $password_query_answer_ext_page);
    101100
    102     // 秘密の質問が未登録
    103     if (!$is_password_query_answer_action) {
    104         if (db_member_get_is_password_query_answer($c_member_id)) {
     101    if ($is_registered_password_query_answer) {
     102        $_SESSION['regist_step'] = true;
     103    } else {
     104        $_SESSION['regist_step'] = false;
     105    }
     106
     107    if (!$is_registered_password_query_answer_action) {
     108        // 秘密の質問が未登録
     109        if (!$is_registered_password_query_answer) {
    105110            $p = array("msg" => "秘密の質問を登録してください");
    106111            openpne_redirect('pc', 'page_h_config', $p);
  • OpenPNE/trunk/webapp/lib/db/member.php

    r11259 r11265  
    21552155 *         false : 設定されていない
    21562156 */
    2157 
    2158 function db_member_get_is_password_query_answer($c_member_id)
     2157function db_member_is_registered_password_query_answer($c_member_id)
    21592158{
    21602159    $null_answer = '';
    21612160
    21622161    $sql = 'SELECT c_member_secure.hashed_password_query_answer'
    2163          . ' FROM c_member, c_member_secure'
    2164          . ' WHERE c_member.c_member_id = ?'
    2165          . ' AND c_member.c_member_id = c_member_secure.c_member_id';
     2162         . ' FROM c_member_secure'
     2163         . ' WHERE c_member_secure.c_member_id = ?';
    21662164
    21672165    $params = array(
    21682166        intval($c_member_id),
    21692167    );
    2170 
    2171     $c_member = db_get_assoc($sql, $params);
    2172     if ($c_member['hashed_password_query_answer'] != $null_answer && $c_member['hashed_password_query_answer'] != md5($null_answer)) {
    2173         return true;
    2174     }
    2175 
    2176     // 1.8以前との互換性を保つため、SJISでのチェックも行う
    2177     if ($c_member['hashed_password_query_answer'] != mb_convert_encoding($null_answer, 'SJIS-win', 'UTF-8') && $c_member['hashed_password_query_answer'] != md5(mb_convert_encoding($null_answer, 'SJIS-win', 'UTF-8'))) {
    2178         return true;
    2179     }
    2180 
    2181     return false;
    2182 
    2183 }
    2184 
    2185 function aadb_member_get_is_password_query_answer_old($encrypt_address, $address_type = 'pc')
    2186 {
    2187     $null_answer = '';
    2188 
    2189     switch ($address_type) {
    2190         case 'pc' :
    2191             $field_name = 'pc_address';
    2192             break;
    2193         case 'ktai' :
    2194             $field_name = 'ktai_address';
    2195             break;
    2196         default :
    2197             $field_name = '';
    2198             break;
    2199     }
    2200 
    2201     $sql = 'SELECT c_member.c_member_id'
    2202          . ' ,c_member.c_password_query_id'
    2203          . ' ,c_member_secure.hashed_password_query_answer'
    2204          . ' FROM c_member, c_member_secure'
    2205          . ' WHERE c_member_secure.' . $field_name . '= ?'
    2206          . ' AND c_member.c_member_id = c_member_secure.c_member_id';
    2207     $params = array(
    2208         $encrypt_address,
    2209     );
    2210     $c_member = db_get_row($sql, $params);
    2211     if ($c_member['c_password_query_id'] && $c_member['hashed_password_query_answer'] != md5($null_answer)) {
    2212         return true;
    2213     }
    2214 
    2215     // 1.8以前との互換性を保つため、SJISでのチェックも行う
    2216     if ($c_member['c_password_query_id'] && $c_member['hashed_password_query_answer'] !=
    2217 md5(mb_convert_encoding($null_answer, 'SJIS-win', 'UTF-8'))) {
    2218         return true;
    2219     }
    2220 
    2221     return false;
    2222 }
     2168    $c_member['hashed_password_query_answer'] = db_get_one($sql, $params);
     2169    if (!$c_member['hashed_password_query_answer']
     2170     || md5($c_member['hashed_password_query_answer']) == md5($null_answer)) {
     2171        return false;
     2172    }
     2173    return true;
     2174
     2175}
     2176
    22232177?>
  • OpenPNE/trunk/webapp/modules/ktai/auth.inc

    r9020 r11265  
    7777}
    7878
     79// 秘密の質問の設定が有効な状態で、秘密の質問を設定していない場合、秘密の質問の入力をチェックする
     80if (IS_PASSWORD_QUERY_ANSWER && OPENPNE_AUTH_MODE != 'slavepne') {
     81    $current_page = $GLOBALS['__Framework']['current_type'] . '_' . $GLOBALS['__Framework']['current_action'];
     82
     83    // 秘密の質問が未登録の場合でもアクセスすることのできるアクション
     84    $password_query_answer_ext_page = array(
     85        'page_h_config_password_query',
     86        'do_h_config_password_query_update_password_query',
     87        'h_logout',
     88    );
     89
     90    $is_registered_password_query_answer = db_member_is_registered_password_query_answer($u);
     91    $is_registered_password_query_answer_action = in_array($current_page, $password_query_answer_ext_page);
     92
     93    if ($is_registered_password_query_answer) {
     94        $_SESSION['regist_step'] = true;
     95    } else {
     96        $_SESSION['regist_step'] = false;
     97    }
     98
     99    if (!$is_registered_password_query_answer_action) {
     100        // 秘密の質問が未登録
     101        if (!$is_registered_password_query_answer) {
     102            $p = array('msg' => 52);
     103            openpne_redirect('ktai', 'page_h_config_password_query', $p);
     104        }
     105
     106    }
     107
     108}
     109
     110
    79111function __logout($msg = 0, $c_member_id = 0)
    80112{
  • OpenPNE/trunk/webapp/modules/ktai/do/h_config_password_query_update_password_query.php

    r11259 r11265  
    99    function execute($requests)
    1010    {
    11         //外部認証の場合はリダイレクト
     11        // 外部認証の場合はリダイレクト
    1212        check_action4pne_slave(true);
    1313
    14         //秘密の質問が無効の場合の動作
     14        // 秘密の質問が無効の場合の動作
    1515        if (!IS_PASSWORD_QUERY_ANSWER) {
    16             openpne_display_error('アクションが無効になっています', true);
     16            $p = array('msg' => 'アクションが無効になっています');
     17            openpne_redirect('ktai', 'page_h_home', $p);
    1718        }
    1819
     
    2526
    2627        //--- 権限チェック
    27         //必要なし
     28        // 必要なし
    2829
    2930        //---
  • OpenPNE/trunk/webapp/modules/ktai/do/o_login.php

    r11259 r11265  
    9494        }
    9595
    96         if (IS_PASSWORD_QUERY_ANSWER && OPENPNE_AUTH_MODE != 'slavepne') {
    97             if (!db_member_get_is_password_query_answer($_POST['username'], 'ktai')) {
    98                 $m = 'ktai';
    99                 $a = 'page_h_config_password_query';
    100                 $p['msg'] = 52;
    101             }
    102         }
    10396        $_SESSION['c_member_id'] = $c_member_id;
    10497        $p['ksid'] = session_id();
  • OpenPNE/trunk/webapp/modules/ktai/page/h_config_password_query.php

    r11259 r11265  
    99    function execute($requests)
    1010    {
    11         //外部認証の場合はリダイレクト
     11        // 外部認証の場合はリダイレクト
    1212        check_action4pne_slave(true);
    1313
    14         //秘密の質問が無効の場合の動作
     14        // 秘密の質問が無効の場合の動作
    1515        if (!IS_PASSWORD_QUERY_ANSWER) {
    16             openpne_display_error('アクションが無効になっています', true);
     16            $p = array('msg' => 'アクションが無効になっています');
     17            openpne_redirect('ktai', 'page_h_home', $p);
    1718        }
    1819
Note: See TracChangeset for help on using the changeset viewer.