ブログ - ユーザ情報をゲストから隠す
デフォルト状態では XCL ではゲストからもユーザ情報が参照できてしまう。
これを隠すには、以下のようにプリロードで対処する。
これを隠すには、以下のようにプリロードで対処する。
情報元:
http://eve.neverever.xrea.jp/modules/d3forum/index.php?topic_id=22
設定:
以下のコードを /preload/UserinfoGuard.class.php として配置する。
基本的な注意として、最後の行の ?> 以下に空行などがあると、ワーニングが出るので注意。
http://eve.neverever.xrea.jp/modules/d3forum/index.php?topic_id=22
設定:
以下のコードを /preload/UserinfoGuard.class.php として配置する。
<?php
/**
* @file preload/UserinfoGuard.class.php
*/
if (!defined('XOOPS_ROOT_PATH')) exit();
class UserinfoGuard extends XCube_ActionFilter
{
function preFilter()
{
$root =& XCube_Root::getSingleton();
//
// Add my function as the first part priority to Legacypage.Userinfo.Access
// By that, my function will be called early than the user module.
//
$root->mDelegateManager->add('Legacypage.Userinfo.Access',
'UserinfoGuard::myfunc',
XCUBE_DELEGATE_PRIORITY_FIRST + 10);
}
function myfunc()
{
$root =& XCube_Root::getSingleton();
$user =& $root->mContext->mUser;
if ($user->isInRole('Site.GuestUser')) {
$root->mController->executeRedirect(XOOPS_URL, 1, "Access Denided!");
}
//
// Delegate of XCube calls all of added functions.
// Therefore, after this function, the regular function will be called.
//
}
}
?>
基本的な注意として、最後の行の ?> 以下に空行などがあると、ワーニングが出るので注意。