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

Changeset 10931


Ignore:
Timestamp:
Mar 2, 2009, 8:52:33 PM (11 years ago)
Author:
toraneko
Message:

#3679 秘密の質問を省略するモード作成

Location:
OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/config.php.sample

    r9372 r10931  
    599599$GLOBALS['_ALLOWED_IP_LIST_FOR_KANSHI'] = array();
    600600
     601// 秘密の質問を使用するかどうか
     602//    TRUE:使用する FALSE:使用しない
     603define('IS_PASSWORD_QUERY_ANSWER', true);
     604
    601605?>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/lib/db/member.php

    r10769 r10931  
    21162116}
    21172117
     2118/**
     2119 *
     2120 * 秘密の質問を利用しない場合の設定変更
     2121 *
     2122 */
     2123function db_member_h_config_3_no_password_query_answer(
     2124                $c_member_id,
     2125                $is_receive_mail,
     2126                $rss,
     2127                $ashiato_mail_num,
     2128                $is_receive_daily_news,
     2129                $public_flag_diary,
     2130                $is_shinobiashi,
     2131                $schedule_start_day)
     2132{
     2133    //function cacheの削除
     2134    cache_drop_c_member_profile($c_member_id);
     2135
     2136    $data = array(
     2137        'is_receive_mail' => (bool)$is_receive_mail,
     2138        'is_receive_daily_news' => intval($is_receive_daily_news),
     2139        'rss' => $rss,
     2140        'ashiato_mail_num' => intval($ashiato_mail_num),
     2141        'public_flag_diary' => util_cast_public_flag_diary($public_flag_diary),
     2142        'is_shinobiashi' => $is_shinobiashi,
     2143        'schedule_start_day' => $schedule_start_day,
     2144        'u_datetime' => db_now(),
     2145    );
     2146    $where = array('c_member_id' => intval($c_member_id));
     2147    db_update('c_member', $data, $where);
     2148}
     2149
     2150/**
     2151 * 秘密の質問の登録状況チェック
     2152 * @params $encrypt_addres : encryptされたアドレス
     2153 * @params $address_type   : 'pc'/'ktai'
     2154 * @return true  : 設定されている
     2155 *         false : 設定されていない
     2156 */
     2157function db_member_get_is_password_query_answer($encrypt_address, $address_type = 'pc')
     2158{
     2159    $null_answer = '';
     2160
     2161    switch ($address_type) {
     2162        case 'pc' :
     2163            $field_name = 'pc_address';
     2164            break;
     2165        case 'ktai' :
     2166            $field_name = 'ktai_address';
     2167            break;
     2168        default :
     2169            $field_name = '';
     2170            break;
     2171    }
     2172
     2173    $sql = "SELECT c_member.c_member_id" .
     2174        " ,c_member.c_password_query_id" .
     2175        " ,c_member_secure.hashed_password_query_answer " .
     2176        " FROM c_member, c_member_secure" .
     2177        " WHERE c_member_secure." . $field_name . "= ?" .
     2178        " AND c_member.c_member_id = c_member_secure.c_member_id";
     2179    $params = array(
     2180        $encrypt_address,
     2181    );
     2182    $c_member = db_get_row($sql, $params);
     2183    if ($c_member['c_password_query_id'] && ($c_member['hashed_password_query_answer'] != md5($null_answer))) {
     2184        return true;
     2185    }
     2186
     2187    // 1.8以前との互換性を保つため、SJISでのチェックも行う
     2188    if ($c_member['c_password_query_id'] && ($c_member['hashed_password_query_answer'] !=
     2189md5(mb_convert_encoding($null_answer, 'SJIS-win', 'UTF-8')))) {
     2190        return true;
     2191    }
     2192
     2193    return false;
     2194}
    21182195?>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/lib/util/ktai.php

    r10868 r10931  
    6464        49  => "その" . WORD_COMMUNITY_HALF . "はすでに存在します",
    6565        50  => "指定されたカテゴリは選択できません",
     66        51  => "秘密の質問・答えを登録してください",
    6667    );
    6768
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/do/o_insert_c_member.php

    r7393 r10931  
    207207        );
    208208
     209
     210        //秘密の質問省略モードの場合、秘密の質問に関するルールを削除する
     211        if (!IS_PASSWORD_QUERY_ANSWER) {
     212            unset($rules['c_password_query_id']);
     213            unset($rules['password_query_answer']);
     214        }
     215
    209216        if (OPENPNE_AUTH_MODE == 'pneid') {
    210217            $rules['login_id'] = array(
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/do/o_login.php

    r8802 r10931  
    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'] = 51;
     101            }
     102        }
    96103        $_SESSION['c_member_id'] = $c_member_id;
    97104        $p['ksid'] = session_id();
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/templates/h_config.tpl

    r10752 r10931  
    3535({if $smarty.const.OPENPNE_AUTH_MODE != 'slavepne'})
    3636<font color="#({$ktai_color_config.bg_02})">◆</font><a href="({t_url m=ktai a=page_h_config_password})&amp;({$tail})">パスワード変更</a><br>
     37({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    3738<font color="#({$ktai_color_config.bg_02})">◆</font><a href="({t_url m=ktai a=page_h_config_password_query})&amp;({$tail})">秘密の質問答え設定</a><br>
     39({/if})
    3840({/if})
    3941<font color="#({$ktai_color_config.bg_02})">◆</font><a href="({t_url m=ktai a=page_h_config_easy_login})&amp;({$tail})">かんたんログイン設定</a><br>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/templates/h_home.tpl

    r10752 r10931  
    273273</td></tr>
    274274<tr><td bgcolor="#({cycle name="bg" values="`$ktai_color_config.bg_09`,`$ktai_color_config.bg_10`"})">
     275({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    275276<a href="({t_url m=ktai a=page_h_config_password_query})&amp;({$tail})">秘密の質問・答え設定</a><br>
     277({/if})
    276278</td></tr>
    277279({/if})
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/templates/o_password_query.tpl

    r4222 r10931  
    1313<textarea name="ktai_address" rows="1" istyle="3" mode="alphabet"></textarea><br>
    1414<br>
     15({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    1516<font color="#({$ktai_color_config.font_06})">秘密の質問:</font><br>
    1617<select name="c_password_query_id">
     
    2324<font color="#({$ktai_color_config.font_06})">秘密の質問の答え:</font><br>
    2425<input type="text" name="password_query_answer" value=""><br>
     26({/if})
    2527<center>
    2628<input type="submit" value="パスワードを再発行する"><br>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/ktai/templates/o_regist_input.tpl

    r7393 r10931  
    142142<font color="#({$ktai_color_config.font_09})">※パスワードは6-12文字の半角英数で入力してください</font><br>
    143143<br>
     144({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    144145<font color="#({$ktai_color_config.font_06})">秘密の質問:</font><font color="#({$ktai_color_config.font_09})">*</font><br>
    145146<select name="c_password_query_id">
     
    153154<input type="text" name="password_query_answer" value=""><br>
    154155<font color="#({$ktai_color_config.font_09})">※パスワードを忘れた場合の確認に使用します。</font>
     156({/if})
    155157<hr color="#({$ktai_color_config.border_01})">
    156158<center>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/do/h_config_3.php

    r9407 r10931  
    4242            $c_password_query_answer = '';
    4343        } else {
    44             if (!strlen($requests['c_password_query_answer'])) {
    45                 if (!$c_member['c_password_query_id']) {
    46                     $c_password_query_id = 0;
    47                 } else {
    48                     if ($c_password_query_id != $c_member['c_password_query_id']) {
    49                         $error_messages[] = '秘密の質問の答えを入力してください。';
     44            if (IS_PASSWORD_QUERY_ANSWER) {
     45                if (!strlen($requests['c_password_query_answer'])) {
     46                    if (!$c_member['c_password_query_id']) {
     47                        $c_password_query_id = 0;
     48                    } else {
     49                        if ($c_password_query_id != $c_member['c_password_query_id']) {
     50                            $error_messages[] = '秘密の質問の答えを入力してください。';
     51                        }
    5052                    }
    5153                }
     
    9294        }
    9395
    94         db_member_h_config_3(
    95             $u,
    96             $is_receive_mail,
    97             $rss_url,
    98             $ashiato_mail_num,
    99             $is_receive_daily_news,
    100             $c_password_query_id,
    101             $c_password_query_answer,
    102             $public_flag_diary,
    103             $is_shinobiashi,
    104             $schedule_start_day
    105         );
     96        //秘密の質問使用モード = true
     97        //または、設定画面表示時はtrueだったけど、設定変更ボタンを押す時にはfalse
     98        //になっていた場合、
     99        //秘密の質問は登録する
     100        if ((IS_PASSWORD_QUERY_ANSWER) || (!empty($c_password_query_answer))) {
     101            db_member_h_config_3(
     102                $u,
     103                $is_receive_mail,
     104                $rss_url,
     105                $ashiato_mail_num,
     106                $is_receive_daily_news,
     107                $c_password_query_id,
     108                $c_password_query_answer,
     109                $public_flag_diary,
     110                $is_shinobiashi,
     111                $schedule_start_day
     112            );
     113        } else {
     114            db_member_h_config_3_no_password_query_answer(
     115                $u,
     116                $is_receive_mail,
     117                $rss_url,
     118                $ashiato_mail_num,
     119                $is_receive_daily_news,
     120                $public_flag_diary,
     121                $is_shinobiashi,
     122                $schedule_start_day
     123            );
     124        }
    106125
    107126        db_member_insert_c_access_block($u, $c_member_id_block);
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/do/o_login.php

    r8802 r10931  
    7171        if ($this->_login_params) {
    7272            $url .= '?' . $this->_login_params;
     73        } else {
     74            if ((IS_PASSWORD_QUERY_ANSWER) && (OPENPNE_AUTH_MODE != 'slavepne')) {
     75                if (!db_member_get_is_password_query_answer($_POST['username'], 'pc')) {
     76                    $p = array("msg" => "秘密の質問を登録してください");
     77                    openpne_redirect('pc', 'page_h_config', $p);
     78                }
     79            }
    7380        }
    7481        client_redirect_absolute($url);
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/do/o_password_query.php

    r6527 r10931  
    2525        //--- 権限チェック
    2626        //パスワード確認の質問と答えがあっている
    27 
    28         if (!$pc_address || !$q_id || !$q_answer ||
    29             !$c_member_id = db_member_is_password_query_complete($pc_address, $q_id, $q_answer)
    30            ) {
    31             $msg = '正しい値を入力してください';
    32             $p = array('msg' => $msg);
    33             openpne_redirect('pc', 'page_o_password_query', $p);
     27        if (IS_PASSWORD_QUERY_ANSWER) {
     28            if (!$pc_address || !$q_id || !$q_answer ||
     29                !$c_member_id = db_member_is_password_query_complete($pc_address, $q_id, $q_answer)
     30               ) {
     31                $msg = '正しい値を入力してください';
     32                $p = array('msg' => $msg);
     33                openpne_redirect('pc', 'page_o_password_query', $p);
     34            }
     35        } else {
     36            if (!$pc_address || !$c_member_id = db_member_c_member_id4pc_address($pc_address)) {
     37                $msg = '登録したメールアドレスを入力してください';
     38                $p = array('msg' => $msg);
     39                openpne_redirect('pc', 'page_o_password_query', $p);
     40            }
    3441        }
    3542        //---
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/do/o_regist_prof.php

    r9006 r10931  
    245245        );
    246246
     247        //秘密の質問省略モードの場合、秘密の質問に関するルールを削除する
     248        if (!IS_PASSWORD_QUERY_ANSWER) {
     249            unset($rules['c_password_query_id']);
     250            unset($rules['c_password_query_answer']);
     251        }
     252
    247253        if (OPENPNE_AUTH_MODE == 'pneid') {
    248254            $rules['login_id'] = array(
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/templates/h_config.tpl

    r9730 r10931  
    8080({/if})
    8181({if $smarty.const.OPENPNE_AUTH_MODE != 'slavepne'})
     82({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    8283<tr>
    8384<th>秘密の質問</th>
     
    9798</td>
    9899</tr>
     100({/if})
    99101({/if})
    100102<tr>
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/templates/o_password_query.tpl

    r6154 r10931  
    77
    88<div class="partsInfo">
     9({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    910<p>登録したメールアドレスと、秘密の質問・答えを入力してください。<br />登録したものと一致すると、パスワードが登録メールアドレス宛に送信されます。</p>
     11({else})
     12<p>登録したメールアドレスを入力してください。<br />登録したものと一致すると、パスワードが登録メールアドレス宛に送信されます。</p>
     13({/if})
    1014</div>
    1115
     
    1317<table>
    1418<tr><th>メールアドレス</th><td><input type="text" class="text" name="pc_address" value="" /></td></tr>
     19({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    1520<tr><th>秘密の質問</th><td>
    1621<select name="c_password_query_id">
     
    2227</td></tr>
    2328<tr><th>秘密の答え</th><td><input type="text" class="text" name="c_password_query_answer" value="" /></td></tr>
     29({/if})
    2430</table>
    2531
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/templates/o_regist_prof.tpl

    r8430 r10931  
    187187</td>
    188188</tr>
     189({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    189190<tr>
    190191<th>秘密の質問 <strong>※</strong></th>
     
    204205</td>
    205206</tr>
     207({/if})
    206208</table>
    207209<div class="operation">
  • OpenPNE/branches/work/toraneko/prj_newfeature/enhancement_3679/webapp/modules/pc/templates/o_regist_prof_confirm.tpl

    r8143 r10931  
    117117<td>(表示しません)</td>
    118118</tr>
     119({if $smarty.const.IS_PASSWORD_QUERY_ANSWER})
    119120<tr>
    120121<th>秘密の質問 <strong>※</strong></th>
     
    125126<td>({$prof.c_password_query_answer})</td>
    126127</tr>
     128({/if})
    127129</table>
    128130<div class="operation">
Note: See TracChangeset for help on using the changeset viewer.