2016-05-03 6 views
0

Ich habe Modell basierend auf Benutzermodell - Kunde.
Wenn ich dieses Modell direkt abfrage, gibt es den Fehler "Authorization Required". Welches ist erwünscht.E-Mail nicht zurücksenden, wenn "Benutzer" -basiertes Modell in relationaler Abfrage enthalten ist

Aber wenn ich Kunden in Abfrage für den Produkten gehören (wie {"include":["customer"]})
i erhalten fast die gesamte Bandbreite Kundenmodellinstanz mit E-Mail anzeigen.

Ich möchte E-Mails von jedem, der Produkte anfragt, ausblenden und nur den Benutzernamen und die ID des Benutzers angeben.

Ich kann Daten entfernen, die mit Operation Hook oder Remote Hook an den Client gesendet werden.

Gibt es eine Möglichkeit, Datenzugriff von Model.json zu beschränken oder Hooks sind nur Methode?

+0

Haben Sie versucht, die "versteckte" Stütze zu Product.json hinzuzufügen? https://docs.strongloop.com/display/public/LB/Model+definition+JSON+file#ModeldefinitionJSONfile-Hiddenproperties – amuramoto

+0

@amuramoto: Ich glaube, 'geschützte' Eigenschaft passt dieses Szenario besser (siehe meine Antwort). _ "Authorization Required" _ weist darauf hin, dass es in einem Kundenmodell eine ACL gibt (vielleicht ist es für den Eigentümer zugänglich?). Ihr Ansatz würde die betroffenen Eigenschaften für alle ausblenden. Vielleicht kann OP etwas ausarbeiten. –

Antwort

0

Wenn Sie bestimmte Eigenschaften ausblenden möchten, wenn das Objekt in einer HTTP-Antwort eines verwandten Modells verschachtelt ist, verwenden Sie die protected-Eigenschaft in Ihrer model definition-Datei.

Beispiel aus einer Loopback-Dokumentation:

common/models/customer.json

... 
    "properties": { 
    ... 
    "email": { 
     "type": "string", 
     "required": true 
    }, 
... 
    "protected": ["email"], 
... 

Falls Sie wollen ACL auf ähnliche Modelle anzuwenden, müssen Sie sie separat angeben. Siehe Abschnitt Accessing related models einer LoopBack-Dokumentation.