2016-06-14 9 views
1

Ich habe versucht, es in Dokumenten oder irgendwo im Internet zu finden, aber ich habe nicht gefunden.Wie schränkt man den Benutzer ein, um nur auf seine Gruppenelemente in Loopback zuzugreifen?

Wonach frage ich? Ich baue Website für mehrere Benutzer. Das Frontend ist nicht wichtig, die Back-Backend-API wird in Loopback erstellt. Jeder Benutzer wird einigen zugewiesen, nennen wir es GROUP. Der Gruppeninhalt wird dann in der Subdomain angezeigt, ist aber jetzt nicht wichtig. Benutzer werden Art Admins ihrer Gruppe sein. Ich werde viele verschiedene Modelle haben, aber ich muss immer den Benutzer vor dem Zugriff auf Elemente schützen, die nicht zu seiner Gruppe gehören.

Wie soll ich das machen? Ich denke, es wird Middleware sein, aber ich weiß nicht, wie ich das richtig machen soll. Natürlich hat jeder Benutzer und jedes Element das Feld "group_id".

+1

Ich würde eine [dynamische Rolle Resolver (s)] (https://docs.strongloop.com/display/public/LB/Defining+and+ing+roles#Defininganduserrales-Dynamicroles). Es gibt ein [Loopback-Komponentenpaket von Drittanbietern] (https://github.com/fullcube/loopback-component-access-groups), mit dem Sie Zugriffssteuerungen für mehrere Mandanten hinzufügen können. Es ist nicht perfekt, aber es ist ein guter Anfang. –

Antwort

2

ich auch eine gute Lösung zu finden, ich versuche ... Ich habe diese npm Paket finden, die einen Versuch wert aussieht: https://www.npmjs.com/package/loopback-component-access-groups

Hier ist eine kurze Beschreibung dessen, was das Paket für verwendet wird:

"Mit dieser Loopback-Komponente können Sie einer Loopback-Anwendung Zugriffssteuerungselemente im Multi-Tenant-Stil hinzufügen. Dadurch können Sie den Zugriff auf Modelldaten basierend auf den Rollen eines Benutzers in einem bestimmten Kontext einschränken."

+0

Diese Lösung ist in Ordnung, aber es übersteuert die ursprüngliche ACL, was bedeutet, dass, wenn Sie einen Admin haben, er/sie nicht mehr verantwortlich sein wird. Es macht die gesamte Anwendungsgruppe zugriffsgesteuert, was das Hinzufügen von Admins zu jeder Gruppe ermüdend machen kann. – Undrium

+0

Es gibt einen Hack, der eine Art Weg für die Admins bietet: https://github.com/fullcube/loopback-component-access-groups/issues/15 – Undrium

1

Ich struggeling mit dem gleichen Problem, und ich habe noch nicht eine zufriedenstellende Antwort gefunden.

Meine Problemumgehung wird in diesem question erklärt. Ich habe meine Benutzer-ID und damit die Daten, die ich brauche, um den Zugriff zu beschränken. Dann ändere ich die Abfrage in Übereinstimmung mit den abgerufenen Daten.

Verwandte Themen