XOOPS でユーザー情報を未ログインで表示させなくする。
カテゴリー: レンタルサーバーやcgi
2006-03-14
XOOPS でユーザー情報を未ログインで表示させなくする。
※ この記事の内容は古くなっています
デフォルトでは、(20.13 時点において 以降はしらない)
開発者が個人情報保護を認識していないようで、
未ログインでも 登録ユーザー情報を足れながしです。
そのまま使うと、個人情報をたればながすわけですので
運営者は なにかにまきこまれて法律的に厳しいかと思います。
そこで とりあえず、
ログインしないと表示させない方法です。
【edituser.php で 利用しない項目をカットします。】
これだけで、かなりのリスクが減ります。
たとえば、こんな感じです
// $form->addElement($name_text);
// $form->addElement($bio_tarea); // その他
また、こんなことるすることで 入力項目を制限します。 |
$location_text = new XoopsFormText(_US_LOCATION, 'user_from', 30, 100, $xoopsUser->getVar('user_from', 'E')); |
↓ |
// $location_text = new XoopsFormText(_US_LOCATION, 'user_from', 30, 100, $xoopsUser->getVar('user_from', 'E')); $location_text = new XoopsFormSelect(_US_LOCATION, 'user_from', $xoopsUser->getVar('user_from', 'E')); $location_text->addOptionArray(array( ""=>"" ,"北海道"=>"北海道" ,"青森"=>"青森" ,"東京"=>"東京" ,"沖縄"=>"沖縄" ,"その他"=>"その他" ,"海外"=>"海外" ,"宇宙"=>"宇宙" ,"ひみつ"=>"ひみつ" )); |
$occupation_text = new XoopsFormText(_US_OCCUPATION, 'user_occ', 30, 100, $xoopsUser->getVar('user_occ', 'E')); |
↓ |
// $occupation_text = new XoopsFormText(_US_OCCUPATION, 'user_occ', 30, 100, $xoopsUser->getVar('user_occ', 'E')); $occupation_text = new XoopsFormSelect(_US_OCCUPATION, 'user_occ', $xoopsUser->getVar('user_occ', 'E')); $occupation_text->addOptionArray(array(""=>"","ひみつ"=>"ひみつ" , "芸人"=>"芸人" , "宇宙人"=>"宇宙人" , "一般人"=>"一般人" ,"その他"=>"その他")); |
【html\modules\system\templates\system_userinfo.html】
次に
\html\modules\system\templates\system_userinfo.html
を開き、
不都合な項目は 変更していきます
誰でも閲覧 → ログインした者は閲覧可 に変更 |
<td class="odd"><{$user_email}></td> |
↓ |
<td class="odd"><{if $xoops_isuser == true }><{$user_email}><{else}>***<{/if}></td> |
さらに |
↓ 誰にも見せたくない場合は、項目自体を 消すといいでしょう。 |
最後に、モジュール システムをアップデートして おわり。
もー わからない っていう時の手段として
userinfo.php を消すという荒技もあります。
より高度な方法は、 誰でも閲覧 → 本人のみ閲覧可 に変更 |
89:userinfo.php // $xoopsTpl->assign('user_uid', $thisUser->getVar('uid')); } $xoopsTpl->assign('user_uid', $thisUser->getVar('uid')); |
↑ adminだけになっているのが 不可解? 比較にいるからいつでも必要でしょ? ということで下に移動 つぎに |
<td class="odd"><{$user_email}></td> |
↓ 登録者には 表示 |
<td class="odd"><{if $xoops_isuser == true}><{$user_email}><{else}>***<{/if}></td> |
↓ 本人だけ 表示 |
<td class="odd"><{if $xoops_isuser == true && $xoops_userid == $user_uid}><{$user_email}><{else}>***<{/if}></td> |
↓ さらに 本人 または 管理者のみ |
<td class="odd"><{if ($xoops_isuser == true && $xoops_userid == $user_uid)||($xoops_isadmin == true)}><{$user_email}><{else}>***<{/if}></td> |
↓ 誰にも見せたくない場合は、項目自体を 消すといいでしょう。 |