氷川 XOOPS 研究室

モジュール制作、ウェブサービスなどなど

続・モジュールを作ろう!(2)アクションの権限チェック anchor.png

モジュールの一部の機能(画面)は管理ユーザでないと使えない、といった許可ユーザを限定する仕様にしたい場合は、isMemberOnly() または isAdminOnly() メソッドで true を返してやれば良いだけです。

この二つのメソッドは、class/AbstructAction.class.php で規定されています。

ご存知のとおり、モジュールを使える/使えないの制御は、通常ユーザモジュールにて行います。

しかしたとえば、閲覧系の画面はゲストユーザにも開放するが、編集系の画面は登録ユーザにしか使わせない、といった制御をしたい場合にこれらのメソッドが有用です。

サンプルA:登録ユーザのみが使える
/actions/XxxEditAction.class.php などで

/**
 * @public
 */
function isMemberOnly()
{
	return true;
}

サンプルB:モジュール管理ユーザのみが使える

/**
 * @public
 */
function isAdminOnly()
{
	return true;
}

以下のコードはちょっと手を加えてあって、モジュールコンフィグの allow_useredit が 0 に設定されている場合は isAdminOnly で true を返します。

サンプルC

function isAdminOnly()
{
	if($this->mModule->getModuleConfig('allow_useredit') == '0'){
		return true;
	}
}

なおモジュールコンフィグは、xoops_version.php に以下の様に記述することで追加できます*1(管理者が、モジュールの「一般設定」管理画面で設定できるようになります)。

$modversion['config'][] = array(
	'name'			=> 'allow_useredit' ,
	'title'			=> "_MI_CUBOOKMARKEN_LANG_ALLOW_USEREDIT" ,
	'description'	=> '' ,
	'formtype'		=> 'yesno' ,
	'valuetype'		=> 'int' ,
	'default'		=> 1 ,
	'options'		=> array()
) ;

*1 あくまでも一例ですのでコピペじゃ上手く動きませんよ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 2687, today: 1, yesterday: 1
最終更新: 2008-08-29 (金) 19:31:18 (JST) (3313d) by kilica

Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project - xc-tokai