• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/権限]] [[:t/継承]] [[:t/ロール]] [[☆]]

ロールを作れるロールでは、ロール(権限の集合)に名前を付けて新しいロールにできる。権限/継承のルールによって、自分が使える権限のサブセットを新しいロールに与えることができる。

----

#contents

***権限の継承 [#o2b251d6]
%%設定項目の型は任意のテキストと、選択肢から1つコピペ(列挙型)。ただし自分(ロールを作れるロール)に与えられている選択肢に含まれてなければ未定義(設定されていない状態)になる。このルールで最上位ロールが他のロールを一度に制御できるように。%%

ページ/属性の継承ルールとは違って、継承させていただく側に選択肢がある。継承元ロール名と権限集合のサブセットを定義できればいい。権限名のリスト。書かれている権限が使用可能なもの。書かれていないのは使用不可。書かれているかどうかによらず継承元が持たない権限は使用不可。書かれているのに使用不可になった権限は閲覧ビュー上で強調表示(書いてあるけど使えないという警告)。
ページ/属性ではないので「書かないと継承される」というページ/属性の継承ルールは適用されない。同じルールを取り入れる必要も無い。
%%選択肢なら継承させる側の値はどれ?属性の型定義(つまりそれを使うコード次第)の話なので…列挙値を書く記法が必要。とりあえず汎用記法で。%%

ページ/属性は制約のためのものではないのでこのルールとは別。下位のロールに制約を課すためには使えないし、ロールの上下関係とページの上下関係は違う。
ではどうやるか?

→ロールはページ。特別なページ/型にするか特別なページ/要素で権限を定義するか。いずれにせよロールの上下関係も、下位に制約を課すルールも特殊なので、何かを特殊にする必要はある。

→記述先がページであること以外はすべて特殊。特定のページに特定の記述で書く。それを参照するのはユースケースから呼ばれた権限判定処理。
すべてのページに存在するページ/属性とは別の処理。権限判定のときだけ参照と権限の継承処理が行なわれる。

→ [[:i/属性継承と権限継承は別]]
***%%権限の継承%% [#s8591267]

%%未定義値を「上位からの継承」とするか「無効(設定を使う側次第)」とするかはロールとは別の設定。スペース別設定。%%
%%ページ/属性で設定するなら属性の継承ルールが使える。ページ/属性の設定に「明示してない項目をどう見なすか」という項目を用意して。この項目は書き方の指定なので、ページ内でのみ有効なプラグマのようなもののほうがいいかも知れない。%%



***上下関係 [#s8adc151]

ロールの上位/下位関係は作った側が上位、作られた側が下位。最上位は下位すべての上位にあたる。
つまりロールを定義してるページの作成者(の作成したとき)のロールが上位ロール。(下位展開に関係する)ページ構成の上下関係とは別。
作成したときのロールはどこにも記録されていないので、記録しておく必要がある。

%%作成したときでなく、権限参照時のロールでもいい?作成時だと記録を変える方法が別途要る…ページ/属性の変更で。%%

作成者のロールは複数あるかも知れない。作成者では不足。少なくともロール定義のページには「作成時に使われたロール」が必要。
%%そういった情報を持つにはページ/要素では不足。%%
%%上位ロールの同名権限を参照して、選択肢を用意するにはページ/要素が向いている。%%
%%権限設定には特殊なページ/型と、特殊なページ/要素が必要?%%
%%→特殊な処理がいる。記録のためのページは特殊でなくていい。%%


***[[:i/ロールの上下関係]] [#c438a6da]
(上位含めて)特定のロールでしか書けないページを作る。特定ページだけの編集権限を定義して。
コード不要。運用でできる。

RIGHT:[[:t/管理]] [[:t/権限]]
***ロールを作るとはページを作ること [#ueea19b0]

「ロールを作る」とはそういうページを作る権限のこと。特定のディレクトリにあるページの作成・編集権限。
この権限も下位ロールに継承可能。
***ロールを表すページの内容 [#h5b1ca66]

ページの内容に使用可能な権限(鍵)について記述。属性領域にはそのページが要求する権限(錠)などを書くので使えない。
権限(鍵)はロールを表すページの内容に書く。ここでもこのページの編集権限が必要。この編集権限がロールを作る権限ということ。
権限(錠)はあらゆるページの属性領域に書く。→ [[権限]]
属性領域はどのページも共通の書式にしたほうが分かりやすい。



*** 継承しなければならない [#ce1e94f4]
新ロールの作成者が持つロールのうち、いずれかを継承しなければならない。
権限/継承は禁止事項を継承することなので、継承なしに作れてしまうと何も制限できなくなってしまう。
***必要性 [#e96395ef]
例えばWikiFarmで、各Wikiの管理者を…

- 上位ロールを超えないようシステムで制限
これがロールを作れるロールの仕組み。
- 上位ロールを超えないよう規約で制限
規約違反は手作業で対処。

規約で制限するならロールを作れるロールは不要。

各Wikiにさらに小さい管理者を作るときも同様。規約で制限する場合はどの管理者もWikiFarm全体の管理者と同じ権限が与えられる。

→ [[:i/下位の管理者の作り方]]

--------------------------------------------------

 /スペース名1/利用者/権限 の 変更
 /スペース名1/利用者グループ1/権限 の 変更

…などの権限名を作っておいて、上位の管理者はどちらも鍵として持っていて、下位の管理者は1つしか持たない。といった設定をすればロールを作れるロールは不要?
→…にはならない。利用者の権限を書き換えられるなら、そこには上位の権限をいくらでも書けることになるので、機能しない。

--------------------------------------------------

権限/継承は制限のルール。下位ロールのできないことを増やす仕組み。
書いても有効にならないようにする仕組み。

権限設定のできるロールを複数作るなら権限/継承は必要。