2016-10-17 1 views
2

私のモデルにACLを定義する最善の方法については、しばらく私の頭を傷つけています。 私はこのようなモデルツリーを持っています:
Project -> Issue -> Objective -> Action -> Planning
各プロジェクトは少数のユーザーによって管理されています(一部のユーザーは読み取り専用アクセス権を持ち、他のユーザーはフルアクセス権を持っています)。ユーザーがプロジェクトに関連していない場合、ユーザーはプロジェクトにアクセスできません。各子はその親(parentId)のみを知っています。ループバックのnレベルの子オブジェクトに対してアクセス制御を適切に定義するにはどうすればよいですか?

ユーザXがPlanning Yにアクセスできることを確認するにはどうすればよいですか?

ネストされたモデルをテストしましたが、最初のレベル(Project -> Issue)でのみ正常に動作します。私はすでにすべての親モデルをProjectに渡すロール・リゾルバを試しましたが、それは醜いので各モデルに対して実行する必要があります。 すべての子供にprojectIdプロパティを追加するように指示されましたが、明らかにきれいではありません。

あなたの助けをありがとうございました、
ティエリー

答えて

0

クリーンな方法は、各サブオブジェクト(問題、客観的、行動、計画)のためのbelongsToProject関係を定義することは間違いなくあります。

このようにして、ループバックからアクセス制御システム全体を活用し、動的役割を使用できます。

あなたが言っているように、それは各モデルに対して繰り返されなければならず、最終的にはより多くのコードを書いているだけで、関係とまったく同じことをするためにさらに多くのクエリを実行しています。

関連する問題