*$auth_usersのユーザーに管理者権限を与える [#w429f453]

PukiWikiでは管理者権限が必要な操作では、常にフォームにパスワードを入力することが求められるが、これはとても面倒。$auth_usersで指定されたユーザーのうち、指定されたユーザーを管理者として、管理者パスワードを入力する必要をなくす方法を考える。

まず、pukiwiki.ini.phpに次のような記述を追加し、$admin_usersに管理人とするユーザー名を登録する。

 $admin_users = array(
 	'admin',
 );

次にauth.phpのpkwk_loginを次のように書き換える。

#code(php){{
function pkwk_login($pass = '')
{
	global $adminpass, $auth_users, $admin_users;

	if (! PKWK_READONLY && isset($_SERVER['PHP_AUTH_USER']) &&
		in_array($_SERVER['PHP_AUTH_USER'], $admin_users) &&
		pkwk_hash_compute(
			$_SERVER['PHP_AUTH_PW'],
			$auth_users[$_SERVER['PHP_AUTH_USER']]
			) === $auth_users[$_SERVER['PHP_AUTH_USER']])
	{
		return TRUE;
	} else if (! PKWK_READONLY && isset($adminpass) &&
		pkwk_hash_compute($pass, $adminpass) === $adminpass) {
		return TRUE;
	} else {
		sleep(2);       // Blocking brute force attack
		return FALSE;
	}
}
}}

こうしてもパスワード入力フォームは表示されるが、パスワードを入力しないで送信しても基本的にはエラーが出ないようになる。(このようにしてもパスワード欄を空にするとエラーが出ることがある。そのような時は、パスワード欄に何か文字を入れる必要がある。)

//これより下は編集しないでください
#pageinfo([[:Category/PukiWiki]],2006-07-26 (水) 03:48:57,DOBON!,2006-07-26 (水) 03:48:57,DOBON!)

[ トップ ]   [ 編集 | 差分 | バックアップ | 添付 | 複製 | 名前変更 | リロード ]   [ 新規 | 子ページ作成 | 一覧 | 単語検索 | 最終更新 | ヘルプ ]