私は自分のWebアプリケーションのロール/パーミッションシステムを開発しています。暗黙的なアクセス許可/ロールでセキュリティモデルを定義する
簡単に。ユーザーは、複数のプロジェクトにアクセスできます。これは参加であり、とりわけ、参加者は多くの権利を持つプロフィールを持っています。したがって、これらはプロジェクト内のユーザー特有の権利です。参加者にはタイプ(管理者、サポートなど)もあります。
プロファイルは役割に基づいています。ロール(おそらく名前が不適切)は、管理者によって事前に定義されたデフォルトの権利構成を持つ事実上標準プロファイルです。新しいプロファイルを作成するときは、役割を選択して基本として機能させ、必要に応じて権限を調整します。プロファイルは、1人のユーザーに限定されません。
これまでのところ、とても良い(かない!あなたは私を教えて!)
権利は、コンテキスト/主題別にグループ化されます。したがって、例えば、「プロジェクト・タスク」に関するすべての権利はグループ化されています。私はそれがUIによって処理されているので、これをモデル化していません(それが悪いかどうかはわかりません)。
私の問題は次のとおりです。参加タイプに応じて、特定の権利は暗黙的であり、無効にしないでください。したがって、「サポート」参加の役割を作成する際には、「自分のサポートチケットを参照する」権利を暗示し、表示しないか、無効にして変更できないようにする必要があります。一方、別の参加型は、この権利を任意に割り当てることができます。
私は基本的に参加者タイプ/右=適用不可、適用可能(選択済みまたはしない)のスプレッドシートを持っています&常に適用されます。例:
| RIGHT | INV | SUP | ADM |
| ------------------ | --- | --- | --- |
| G_PROJECTS_READ | I | I | Y |
| G_PROJECTS_UPDATE | Y | N | Y |
| G_PROJECTS_CREATE | N | N | Y |
| G_PROJECTS_PUBLISH | N | N | Y |
Where Y = Type can toggle right on/off, N = Type doesn't have right
& I = Implied i.e. Type has right and it can't be deselected
これをどのようにモデル化することができますか?
多くのおかげで、
AW
スプレッドシートにエンコードされた可能性のある「参加の役割」を作成することで、モデルの複雑さを取り除くことを検討しました。 ユーザーに参加を割り当てることを任されている人は、その場で設定する(潜在的にミスをする)必要はなく、適切な役割を選択するだけです。したがって、サンプルスプレッドシートの場合、参加タイプに結びつけることのできる最大2つの選択肢(管理者の役割を無視します)があります:「PARTICIPATION_READ_ONLY」と「PARTICIPATION_READ_UPDATE」 – fspinnenhirn