* 閲覧権限のないページでも,そのページ名がlistなどで閲覧できる [#u5a9fb71]

- ページ: [[BugTrack2]]
- 投稿者: [[しましま]]
- 優先順位: 重要
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2006-04-22 (土) 01:39:09
- バージョン: 1.4.6

#contents

-----
** メッセージ [#r743ffaa]
listやrecentなどのプラグインで,閲覧権限のないページでも,そのページ名が閲覧できてしまいます.そのため,ページの存在は隠匿できません.

list プラグインは自力で書いてみました.(PHPもPukiWikiの構成も全く分かってないので,自分でもかなり冗長だと思います.もっとまともなコードをお教えください.)

 --- list.inc.php.orig	2006-04-20 22:37:45.000000000 +0900
 +++ list.inc.php	2006-04-22 01:06:20.000000000 +0900
 @@ -21,7 +21,14 @@
 {
 	global $non_list, $whatsnew;
 
 -	$pages = array_diff(get_existpages(), array($whatsnew));
 +	$pages = array();
 +    $files = get_existpages();
 +	foreach (array_keys($files) as $_file) {
 +        $_page = $files[$_file];
 +		if ($_page == $whatsnew ||
 +            (! check_readable($_page, false, false)) ) continue;
 +        $pages[$_file] = $_page;
 +	}
 	if (! $withfilename)
 		$pages = array_diff($pages, preg_grep('/' . $non_list . '/', $pages));
 	if (empty($pages)) return '';

しかし,これは list プラグインだけで済む問題ではないと思います.recent や RecentDeleted など関連するプラグインは多数あります.特に,ls2 プラグインと tilte オプションを使うと,セクションタイトルだけですが,閲覧権限のないページも見えてしまいます.

そこで,get_existpages と同様に,readable なページを全て返す関数 get_readablepages が必要ではないでしょうか?この関数があれば,多くの場合,get_exstpages を get_readablepages と置き換えるだけで済むと思います.

また,閲覧権限のないページの名前が見えてもよい場合を考えて,pukiwiki.ini.php に $list_if_readable といったフラグを作り,これが 1 ならリストへの閲覧許可のないページの名前の表示が抑制されるとよいと思います.

*[[関連>PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/関連ページ]] [#l74bae8c]
#include(PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/関連ページ,notitle)

--------
*コメント [#v8400efc]
- ページ名を見せたくないものは $non_list で抑止するという思想だとおもいます。 -- [[teanan]] &new{2006-04-22 (土) 02:24:52};
-- そのような書き込みも拝見しました.non_list の大きな問題は,閲覧権限に関わりなく,全ての利用者が一律に制限を受けることです.non_list を閲覧権限の狭いユーザに合わせると,閲覧権限の広いユーザは,一覧で見えないページが多数できてしまいます.~
non_list で行うポリシーなら, non_list も edit_auth_pages のような array にする方法でも,上記の問題は回避できると思います. -- [[しましま]] &new{2006-04-22 (土) 10:22:09};
- うーん、ユーザ管理の部分についてはPukiWikiの苦手とする部分ですね (^^; ソースコード上の話をしますと、もう少しで$non_listの処理部分が一箇所にまとまり%%ます%%そうです。そのあとなら、このようなハックも書きやすくなると思います。現状の構成だと、かな~り面倒そうです (^^; -- [[teanan]] &new{2006-04-23 (日) 03:00:06};
-- 現状でこの点に手を出すのは大変そうですね.このあたりの再編が終わってから対処を考えます.~
どうもありがとうございました. -- [[しましま]] &new{2006-04-23 (日) 11:36:23};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.069 sec.

OSDN