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

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



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

ページ/属性の継承ルールとは違って、継承させていただく側に選択肢がある。選択肢なら継承させる側の値はどれ?属性の型定義(つまりそれを使うコード次第)の話なので…列挙値を書く記法が必要。とりあえず汎用記法で。

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

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



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

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



***ロールを作るとはページを作ること [#ueea19b0]

「ロールを作る」とはそういうページを作る権限のこと。特定のディレクトリにあるページの作成・編集権限。



***ロールを表すページの内容 [#h5b1ca66]

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



***上下関係 [#s8adc151]

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

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

作成者のロールは複数あるかも知れない。作成者では不足。少なくともロール定義のページには「作成時に使われたロール」が必要。
そういった情報を持つにはページ/要素では不足。

上位ロールの同名権限を参照して、選択肢を用意するにはページ/要素が向いている。

権限設定には特殊なページ/型と、特殊なページ/要素が必要??