PKWK_READONLY: Read-Only 構成を容易に†
- ページ: BugTrack
- 投稿者: henoheno
- 優先順位: 重要
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2004-11-07 (日) 10:58:52
- バージョン:
メッセージ†
簡単に READ ONLY な PukiWiki が用意できるオプションを用意します。
想定されるニーズ:
- (1) オンラインドキュメンテーション用のツールとしてPukiWikiを用いる
- (2) 個人あるいは特定のグループにしか編集を許さないが、それ以外にに対してもRead-only公開を行うWikiを用意する
- (3) PukiWikiのミラーサイトを用意する
- (4) 運営を停止したPukiWikiを保存する
機能概要†
定数 PKWK_READONLY を 1 に設定することにより、以下の効果が全て有効になります。
- スキンに「編集」「凍結」「添付」「新規」「copy」「rename」といった、編集/管理用のリンクが表示されなくなります。
- (デフォルトのスキン、keitaiスキン(1.4.5_1より)、tDiaryスキン)
- Dangling link (未決定のリンク:「?」マークのことです) が表示されなくなります。これは新しくページを作成することを促すための機能ですから、read only構成には不要です。「ハイパーリンクにならない」ことが、「そのページが無い」という事を意味します。
- 編集・挿入系のフォームを表示するプラグインについて、編集用のボタンが表示されなくなります。必要がなければ入力欄も表示されなくなります。(例えば、memoプラグインはtextareaだけが表示されます。pcommentプラグインはコメント欄が表示されなくなります。comment, bugtrack, trackerプラグインは何も表示されなくなります)
- calendar_viewer, caleanda2, topicpath, yetlist などのプラグインは編集に関するリンクを出力しなくなります
- 内部的にいくつかのロジックが無効になります。
- 編集・挿入系のプラグインに対するアクセスがブロックされます。本来あるはずの編集フォームを偽造したところで無意味です。
- ページを書き換えるための代表的な内部関数が無効にになります。これはサードパーティ製プラグインやカスタマイズによる書き換え行為を妨害します。
- 管理者パスワードを入力する試みは全て(Basic認証も含め)、必ず失敗する様になります。このPukiWikiをパスワードクラックの対象にするのは無意味です。
- いくつかの管理系プラグインの起動が明確に禁止されます (※禁止しなかったとしても、パスワード入力が失敗するため動作しません)
- (パスワードの判定が無効になるため)凍結、凍結の解除のような操作や、バックアップの削除、diffの削除などの管理行為は行えません。(※以下に挙げている、他の手段を使って下さい)
このPukiWikiを変更するためには、他の手段を使って下さい。
- PKWK_READONLY を 0 にセットした別の index.php からアクセスして普段通りに編集・管理する
- 他のPukiWikiでデータを編集・管理し、そのデータをミラーする
- 他のシステムと組み合わせて、直接ファイルを修正する
Read only構成にする時は、一緒に PKWK_SAFE_MODE も有効にすることを検討して下さい。
関連する質問:
1.4.5 リリースまでの修正とそれに関するコメント†
- cvs:skin/pukiwiki.skin.php (1.39)
- cvs:tdiary.skin.php (1.16)
- とり急ぎこんなところでしょうか :) -- henoheno
- データ破壊さえブロックできれば後はどうにでもなるので、カウンター関係は今回見逃しています。 -- henoheno
- そうそう、read-only で運用される方は、「これはRead Onlyなんですよ」ということが他の人にわかる様にした方がいいと思います。それらしいデザインにしたり、説明を加えたり :) -- henoheno
- 簡単な使い方: index.php の中で PKWK_READONLY を define して下さい。編集用に別途 index.php をコピーしたものを用意して、そちらは PKWK_READONLY を別の値にして下さい。 -- henoheno
- お疲れ様です :) 一応マニュアルに「注意! PKWK_READONLYを有効にすると、commentプラグイン等による書き込みも制限されます。」のような説明が必要かもと思ったり。 -- でぃあばぁ
- 大丈夫です。それと同時にcommentプラグインのコメント領域が表示されなくなりますから、彼らにcommentプラグインの存在を気付かれることはありません。(などと言ってみる) -- henoheno
- pcomment とか vote とか memo とか article などもそれなりに編集画面やボタンが表示されなくなりますよ。 -- henoheno
- もちろんform画面を別途偽造してアクセスしたところで、actionプラグインは全てをブロックします。 -- henoheno
- しかもスキンのUIまで変化しますので、どこかで触れたほうが良いのはもちろんですが、数ある設定の中では管理者の方に因果関係が伝わりやすいものになっていると思います。 -- henoheno
- 了解です。謎は全て解けた! :) -- でぃあばぁ
- 本日0時過ぎにCVSからアップデートした分で実験してみました。結果は動きませんでした。詳しくはウチの日記に少しだけ書いておきました。また、夜にでも素の1.4.5_rc1を落として試してみようと思います。 -- okkez
- うちの環境では問題なく動きました :)(素の1.4.5_rc1に従来コンテンツを移行したものです。) -- teanan
- このハックは単に一つのdefineに応じた分岐を各所に追加しているだけなので、そんなに難しいことはしていません。ですので既存のカスタマイズとのバッティングがあるのではないでしょうか。headers_sent()が示している行などをチェックしてみて下さい。 -- henoheno
- 原因が判明しました。permissionの設定ミスでした。README.txtを見ながら全部設定し直したところちゃんとReadOnlyになりました。 -- okkez
- 了解です :) cvs:../devel/release.sh の中にパーミッションを強制するスクリプトが埋まっていますので、良ければ使って下さい。 -- henoheno
- ありがとうございます。使わせて頂きます。 -- okkez
ここまでの変更は PukiWiki 1.4.5に含まれている
1.4.5_1 リリースまでの修正†
ここまでの変更は PukiWiki 1.4.5_1に含まれている
1.4.6 リリースまでの修正†
- 管理用画面(diff/backupの削除)へのリンクを表示しない
ここまでの変更は PukiWiki 1.4.6に含まれる
コメント†