権限について考えなければいけないもの。
ユースケース全て †
ページの閲覧と編集/履歴の閲覧と履歴の編集/ページ/属性の閲覧と編集/ページの追記(既存テキストを変えない)
…を対象ページごとに。
ページを伴わないユースケースも †
ダンプと復帰/エクスポートとインポート
…のコンソールを操作したときに受け付けるかどうか。
それぞれのコンソールを表示するかどうかはページの閲覧権限。
リンクの表示 †
リンク先のページを閲覧できるときのみリンクラベルを表示する。リンクはリンク先ページの権限(錠)を継承する。
- リンクを使う場面すべて
例えば検索結果でもリンク先の権限(錠)を考慮する。 - ページ名を出すとき
ページ名はリンクになるはず。ページ名一覧やパンくずリストでも閲覧権限のあるページだけを表示。 - リンクのようなものでも
編集ボタンやUniversalEditButtonは対象ページの編集が可能な時だけ表示。 - 自動リンク(暗黙的なリンク)については「非表示」ではなく「リンク化しない」
ユーザーが入力したテキストは消さない。
拒否 †
与えられた権限を使わないこと。一時的に権限を捨てること。
†:i/権限と拒否[?]
見解 †
利用者が「そんなページは無い」という見解でいるページは表示さえしない。
ページの作成者/所有者 †
テンプレート †
テンプレート参照時は、テンプレートページの権限(錠)を使う。埋め込みと同じ。のページ/属性に書かれたページ名を使って、権限を表すページを取得。そこで権限判定。
NGになってはいけないものなので判定不要だけど。
そのほか †
リンクに関する権限判定は対象URIをすげ替えて、ユースケースと共通の権限判定を行なうようなもの。
UniversalEditButtonの表示はHTMLヘッダーで指定することに注意。