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

ロールは権限を集めたもの。グループは利用者を集めたもの。
権限を利用者に与えるように、ロールをグループに与えられる。

ロールやグループの内容はページ/属性なので継承可能。
属性/継承を使って、新しいロールを新しいグループに与えることで、多数の権限を多数の利用者に与えたり、剥奪したりできる。



*** グループに含まれる利用者とはページ/属性 [#xeb703f9]
属性/継承できるのは属性のみ。グループに含まれる利用者というのはページ/属性でなければならない。どう表現するか?
→ 利用者のページ/属性にグループ名を書く。あとは参照側で対応。
*** グループにロール名を書く [#g364a473]
利用者に権限名を与えるように、グループにロール名を与える。(そして利用者に権限名でなくグループ名を与える)
グループ×ロール名を書くためのページを用意する方法もあるけど、ロール/グループごと組み合わせを変えられたほうが運用に合いそう。

参照順序は利用者→グループ→ロール→権限、または利用者→ロール→権限。
ということはグループとロールは同じ型?グループ→ロール間は一方的。組もうと思えばグループ←→ロールの双方向関連にもできる型になる?
*** 区別しない [#j266934a]
実装上は区別しないほうが良さそう。
「グループ」「ロール」と言うよりは「権限セット」と呼ぶべき。そのインスタンスにロールっぽい名前を付けたり、利用者グループっぽい名前を付けたりするのは自由。

- 利用者→権限
- ページ→権限
- 利用者→(グループ←→ロール)→権限
- 利用者→権限(鍵)
- ページ→権限(錠)
- 利用者→(グループ←→ロール)→権限(鍵)

集めた権限を照合して、鍵と錠が揃えば「権限あり」と判定。