- 追加された行はこの色です。
- 削除された行はこの色です。
*PukiWiki/Tips/改造/$auth_usersのユーザーに管理者権限を与える [#y244a498]
*$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(,2006-07-26 (水) 03:35:17,DOBON!,2006-07-26 (水) 03:35:17,DOBON!)
#pageinfo([[:Category/PukiWiki]],2006-07-26 (水) 03:48:57,DOBON!,2006-07-26 (水) 03:48:57,DOBON!)