*$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!) |