- 履歴一覧
- ソース を表示
- PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/編集認証実装方法案 は削除されています。
- 追加された行はこの色です。
- 削除された行はこの色です。
*編集認証の実装を考える [#xe6cfd6a]
2007-08-02 (木) 03:05:45 by ぃぉぃぉ
**現状 [#od26420e]
多くのプラグインが認証未対応のままである。&br;
書き込み認証未対応のために、プラグインによっては任意のページを作成できてしまう。
**対策案 [#c27cc7aa]
lib/file.phpのfunction file_write()で書き込み認証チェックすることによって、ほぼ全てが防げるのでは。
function file_write($dir, $page, $str, $notimestamp = FALSE)
{
global $_msg_invalidiwn, $notify, $notify_diff_only, $notify_subject;
global $whatsdeleted, $maxshow_deleted;
+ global $editable_flag;
if (PKWK_READONLY) return; // Do nothing
+ if (!$editable_flag && !check_editable($page)) return; // Do nothing
if ($dir != DATA_DIR && $dir != DIFF_DIR) die('file_write(): Invalid directory');
とする。(注 $editable_flagのチェックはcheck_editableより先に行わなければならない。明示的にif文2つに分けた方がよいかな。)
~#commentのように、(一部の人は)書き込み認証に関係なく書き込み可としているプラグインにはreturnの前にでも
+ global $editable_flag;
+ $editable_flag = TRUE;
とすることで、書き込み可と出来る。