2016-12-22 3 views
1

Ich erstelle ein Schema, ich möchte eine Beziehung mit Apostroph-Benutzer haben, aber es scheint nicht zu funktionieren.Apostroph Pieces verbindet sich mit Benutzern

Weiß jemand ob das Obige überhaupt möglich ist und wenn ja was mache ich falsch?

Zweitens, wäre es möglich, obiges zu filtern, ob sie in der "Coaches" -Gruppe sind oder nicht. Daher können nur Benutzer in einer bestimmten Gruppe für die obige Beziehung ausgewählt werden.

Antwort

2

Ich bin der führende Entwickler von Apostrophe in P'unk Avenue.

Dies funktioniert in gewissem Sinne, aber Benutzer werden immer unveröffentlicht mit dem Feld aus dem Schema entfernt, so dass die Öffentlichkeit sie nie finden kann.

Dies liegt daran, dass das Mischen des Konzepts einer Person in einem Frontend-Verzeichnis von Personen und eines Benutzers, der sich anmelden kann, in Apostrophe 0.5 zu Frustration und Verwirrung geführt hat. "Dies ist ein Benutzer, aber sie können sich nicht anmelden? Dies ist ein Konto, aber sie gehören nicht in das Verzeichnis? Ich bekomme es nicht," etc.

So empfehlen wir ein separates "Profil" Stücktyp, um eine Person am Frontend darzustellen, und erlaubt Benutzern und Gruppen, für Logins und Berechtigungen und sonst nichts verwendet zu werden.

Es ist möglich, das veröffentlichte Feld zurück zu Benutzern und Gruppen hinzuzufügen, wenn Sie wirklich über addFields möchten, aber wir empfehlen es nicht.

Hmm, aber alles, was gesagt wird, die tatsächlichen Fehler in Ihrem verbinden ist, dass Sie apostrophe-user (siehe name Eigenschaft in dem Apostroph-Benutzer Modul verwendet haben sollten, das ist, was ein Benutzer genannt wird, in der Eigenschaft type in der Docs-Sammlung, die sich vom Namen des Moduls unterscheidet). Instanzen sind Singular, Module sind Plural. Abhängig von Ihrer beabsichtigten Anwendung könnte dies das sein, was Sie wissen mussten.

Wenn Sie nur Personen beitreten, die Mitglieder einer bestimmten Gruppe sind, frage ich mich, warum Sie nicht stattdessen dieser Gruppe beitreten und sich deren _users beitreten. Sie müssen den Filter join so einstellen, dass er diesen zusätzlichen Join explizit abruft, da Apostroph sich standardmäßig nicht rekursiv verbindet, um Endlosschleifen zu verhindern.

+0

Vielen Dank für Ihre ausführliche Antwort. Ich stimme völlig mit Ihrer Logik überein, dass das gesamte Benutzer-/Berechtigungsmodell versteckt ist, aber dieses Mal macht es tatsächlich Sinn, Teil desselben Modells zu sein, also werde ich das obige versuchen. Danke noch einmal :) –