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

Ruby on Rails

背景

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

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

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

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

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

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

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

アプローチ

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

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

コメント