299 文字
1 分
RailsのアクターがN:Mのシステムを作るときの権限モデル

背景#

手元で作っているRailsのサービスの要求が肥大化してきたので、権限モデルをちょっと整理してみました。

権限が複雑になる原因は、メトリックが多くなること。要件レベルでどれだけメトリックを減らせるかが重要。

ビジネスで利用するサービスの場合、細かい権限設定が要求されるのでメトリックが増えやすい。

今回扱わなければいけないメトリックは以下

  • アクター
  • ロール
  • マスタデータのステータス遷移
  • Webから操作 or APIから操作

メトリックが3つ以上になった時点で直交表が作成できなくなってしまう。

メトリックが3つであれば、直交表を複数作ればギリギリ対応できるが、4つになると表現が厳しい。

アプローチ#

クリーンアーキテクチャのレイヤと比較して、このような感じで考える。これ以上メトリックが増える場合は、独自にビジネスロジックのレイヤーを追加するなりして対応する必要がある。

メトリックが4つになった時点で、権限をわかりやすくまとめろと言われても不可能に近い。

RailsのアクターがN:Mのシステムを作るときの権限モデル
https://blog.teraren.com/posts/rails-permission-metrics/
作者
Yuki Matsukura
公開日
2022-10-08
ライセンス
CC BY-NC-SA 4.0

コメント