2016-06-14 4 views
1

私はそれをドキュメントやウェブ上のどこでも見つけようとしていましたが、見つけられませんでした。ループバックで彼のグループ要素だけにアクセスするようにユーザーを制限する方法は?

私が尋ねていることは? 私は複数のユーザーのためにウェブサイトを構築しています。フロントエンドは重要ではなく、バックエンドAPIはループバックで構築されています。 すべてのユーザーに割り当てられます。GROUPという名前を付けます。 グループのコンテンツはサブドメインに公開されますが、重要ではありません。 ユーザーはグループの管理者の一種になります。 私はたくさんのモデルを持っていますが、私はいつも彼のグループに属していない要素にアクセスすることからユーザーを保護しなければなりません。

どうすればよいですか?私はそれがいくつかのミドルウェアになると思うが、私はそれを正しく行う方法を知らない。 もちろん、すべてのユーザーとすべての要素にフィールド「group_id」があります。

+1

私は[動的役割リゾルバー](https://docs.strongloop.com/display/public/LB/Defining+and+using+roles#Definingandusingroles-Dynamicroles)と考えています。 [サードパーティのループバックコンポーネントパッケージ](https://github.com/fullcube/loopback-component-access-groups)があり、マルチテナントスタイルのアクセスコントロールを追加することができます。それは完璧ではありませんが、それは良いスタートです。 –

答えて

2

私も良い解決策を見つけようとしています...私は試してみる価値になります。このNPMパッケージを見つけた:ここhttps://www.npmjs.com/package/loopback-component-access-groups

は、パッケージがために使用されるものの簡単な説明です:

このループバックコンポーネントを使用すると、マルチテナントスタイルのアクセスコントロールをループバックアプリケーションに追加することができ、特定のコンテキスト内のユーザーの役割に基づいてモデルデータへのアクセスを制限することができます。

+0

この解決方法は問題ありませんが、元のACLを上書きします。管理者がいれば、もはや責任を負いません。これは、すべてのグループに管理者を追加するのが面倒なことがある、アプリケーショングループ全体をアクセス駆動型にします。 – Undrium

+0

管理者のためにポーンの種類のハックがあります:https://github.com/fullcube/loopback-component-access-groups/issues/15 – Undrium

1

私は同じ問題を抱えて苦労していますが、私はまだ満足のいく答えを見つけませんでした。

この回避方法については、questionで説明しています。私は自分のユーザーIDを持っており、これでアクセスを制限するために必要なデータを取得します。次に、取得したデータに基づいてクエリを変更します。

関連する問題