BugTrack2/255の過去のコメント

  • で、コメント(freeze プラグインと、unfreeze プラグインの認証関連)した時、これにも気がついてはいたのに、
    認証関連しか書かなかったので、反省ついでに対策方法を。
    // $Id: unfreeze.inc.php,v 1.11 2007/01/21 14:27:08 henoheno Exp $
    // Copyright (C) 2003-2004 PukiWiki Developers Team
    (中略)
    	} else if ($pass !== NULL && pkwk_login($pass)) {
    		// Unfreeze
    		$postdata = get_source($page);
    		array_shift($postdata);
    		$postdata = join('', $postdata);
    		file_write(DATA_DIR, $page, $postdata, TRUE);
    
    		// Update 
    		is_freeze($page, TRUE);
    		if (PLUGIN_UNFREEZE_EDIT) {
    +			check_editable($page, true, true);
    			$vars['cmd'] = 'read'; // To show 'Freeze' link
    			$msg  = & $_title_unfreezed;
    			$body = edit_form($page, $postdata);
    		} else {
    +			check_readable($page, true, true);
    			$vars['cmd'] = 'read';
    			$msg  = & $_title_unfreezed;
    			$body = '';
    		}
    
    	} else {
    check_readable() の追加は、認証関連なのでちょっと蛇足かも。
    これの確認ついでに、BugTrack/684 にコメントした、「$vars['cmd'] を'read' で~」のところも確認してほしいです。 -- 2007-07-01 (日) 13:43:50
  • BugTrackを起票した者です。仕様的にどう直すのが正しいのか悩んで修正案が提示できていませんです。 -- 2007-07-01 (日) 19:54:18
    • $canteditの指定はそもそも凍結すら不可のような気もするし
    • 凍結/凍結解除しても編集できないのなら良さそうな気もするし
    • だったら、今のままでも。。。と
    • とりあえず、上案+以下でどうでしょうか。not is_editableはreadに飛ばします。
      		is_freeze($page, TRUE);
      -		if (PLUGIN_UNFREEZE_EDIT) {
      +		if (PLUGIN_UNFREEZE_EDIT && is_editable) {
  • adminpassはedit/read authより強いとすれば、check_editable/readableは冗長な気がします。 -- 2007-07-01 (日) 20:29:05
    • pkwk_login() 、check_editable() と、check_readable() は、すべて同列です。
      管理者パス用、編集認証用、閲覧認証用と、すべて専門特化されています*1
      BugTrack/657 では専門特化されているのが、逆に問題になっていますけど。 -- 2007-07-03 (火) 19:12:37

*1 パスワード解析のため、pkwk_hash_compute() を呼び出すのが唯一の共通点

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-07-20 (金) 12:52:28
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.200 sec.

OSDN