認証による閲覧制限をかけた秘密ページは出来ますか?

質問

公開ページと自分専用のプライベートページをどうやったら分けられますか?
また、任意のページに対する閲覧・編集・検索でアクセス制御を行う方法は?

回答

PukiWiki 1.3の場合は改造が必要になります。
詳細は、dev:PukiWiki/1.3/ちょっと便利に/任意のページごとの閲覧・編集制限を参照してください。

PukiWiki 1.4にはBasic認証による閲覧制限機能や編集制限機能があります。(PHPの制限により基本的には、「ApacheモジュールでPHPが実行されている」場合にしか利用できません)
設定するには、pukiwiki.ini.phpの中の以下の部分を書き換えてください。

$auth_users = array(
 'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード
 'Group2' => 'hegehege', // 編集許可グループ名 => パスワード
);
$auth_method_type = "pagename"; // ページ名で制限する
$read_auth = 1; // 閲覧制限を有効 (0で無効)
$read_auth_pages = array(
 '/^☆.*$/' => 'Group1', // 閲覧制限の対象ページ(正規表現) => 閲覧許可グループ名
);
$edit_auth = 0; // 編集制限を有効 (0で無効)
$edit_auth_pages = array(
 '/^.*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
);
$search_auth = 1; // 本文の検索対象を閲覧可能ページだけに制限する (0で無効)

上の例では、「☆」で始まる名前のページの閲覧に認証が必要になり、編集では全てのページで認証が必要になります。

Memo: 説明を簡単にするために閲覧と編集で違うグループ名を割り当てていますが、実際には同じグループを複数の閲覧や編集の許可ルールに割り当てたり、1つの許可ルールへ複数の許可グループを同時設定する事も可能です。(詳しくはPukiWiki/Install/ユーザ認証を参照)

参考までに他にもいくつかの具体例を以下に示します。

  1. すべてのページの編集に認証が必要、「:」で始まるページ名のページの閲覧に認証が必要
    $auth_users = array(
     'Group1' => 'hogehoge', // 閲覧許可グループ名 => パスワード
     'Group2' => 'hegehege', // 編集許可グループ名 => パスワード
    );
    $auth_method_type = "pagename"; // ページ名で制限する
    $read_auth = 1; // 閲覧制限を有効 (0で無効)
    $read_auth_pages = array(
     '/^:.*$/' => 'Group1', // 閲覧制限の対象ページ(正規表現) => 閲覧許可グループ名
    );
    $edit_auth = 1; // 編集制限を有効 (0で無効)
    $edit_auth_pages = array(
     '/^.*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
    );
    $search_auth = 1; // 本文の検索対象を閲覧可能ページだけに制限する (0で無効)
  2. 閲覧は誰でも自由に、編集だけ制限する
    $read_auth = 0;
    $edit_auth = 1;
  3. 全ページに編集制限をかけるが、「☆」で始まるページ名だけは編集制限なし
    $edit_auth = 1;
    $edit_auth_pages = array(
     '/^[^☆].*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
    );
  4. 全ページに編集制限をかけるが、「ゲストブック」「練習」「掲示板」だけは編集を許可
    $edit_auth = 1;
    $edit_auth_pages = array(
    '/^((?!^(ゲストブック|練習|掲示板)$).)*$/' => 'Group2', // 編集制限の対象ページ(正規表現) => 編集許可グループ名
    );


Reference
正規表現
Q&A/運営
PukiWiki/Install/ユーザ認証
質問箱/308
dev:PukiWiki/1.3/ちょっと便利に/任意のページごとの閲覧・編集制限
dev:PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-01-17 (金) 23:05:37
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.300 sec.

SourceForge