「できること」を権限と、「できるけどやらない」をす拒否(ブロックとか)と。それと「拒否できる」拒否権と。

何かをするには権限が必要。権限のほかに「ブロックしていないこと」なども関わる。できない/できるけどやらない/できるしやるの3パターン。これらがどの処理にもつきまとう。
「できるけどやらない」は「自分でできなくする」でもいい。そうすれば、できる/できないの判定だけで済む。

  • 権限は主に利用者に与える機能/サービスを減らすもの。「権限」が無いことがデフォルトで、権限があると提供する機能/サービスが増える。
  • 拒否は主に利用者自分に与えられる機能/サービスを減らすこと。「拒否」も無いことがデフォルトだけど、拒否するごとに提供される機能/サービスが減る。

権限も拒否も機能/サービスを減らすもの。

拒否権 Edit

拒否する権限。例えば「ページの更新情報をブロックすること」にも権限が必要。

拒否できるものごとに拒否権が必要では?

  • 「ちょっとした更新」を使う権限⇔更新日時更新と更新情報の生成を拒否
  • 更新情報をブロック⇔更新情報を閲覧する権限を捨てる

「与えられている権限を自ら捨てる」というのが拒否の実装になるのかも。「権限を捨てる権限」が拒否権。

→ 「できる」と「できるけどやらない」は区別するので、拒否権は却下。通知をするプラグインが用意する設定方法で通知を拒否するように変更。

権限は必ず拒否可能に Edit

与える側と受け入れる側を考慮。

権限継承元にあるものだけ利用可能にするか、権限領域を変更できる権限でのみ変更可能にする必要がある。
拒否…つまり禁止事項を継承するようにすれば、自身の権限領域を書き換え可能になるし、継承元にある権限だけを使うことになるし、いろいろと解決できる。
拒否は受け側(継承する側)でするもの。

どこに記録するか Edit

権限の場合、鍵は利用者に。対象がどのページであっても同じ鍵。錠のほうは対象ページに。対象ページごとに持っている錠が異なる。
:Done/ページの拒否

仕組みではなく方針/考え方とするはしない Edit

拒否は仕組みではなく機能を考えるための方針としても使える。権限をヒントにして拒否機能を考える。更新日時の更新拒否→「ちょっとした更新」など。

実装するにしても、権限を使うときに拒否されているか考慮。それまでは許可も拒否も同一視。属性のひとつか、プラグイン設定項目として扱うだけ。

アカウント凍結するのに使える Edit

すべての権限を拒否すれば、継承によって権限が与えられていても行使不可能にできる。

権限設定 Edit

権限で拒否するとなると、それだけで管理者権限が要る。通知の拒否などは権限というより個人的な設定のはず。両方必要か。

実装は錠と鍵 Edit

:i/継承にも錠と鍵を