Besucher ihr eigenes Unternehmen verwalten lassen
Ziel
Die Personen, die sich in Ihrem Portal anmelden, sollen zu einem Unternehmen gehören können – eines gründen, Kollegen dazu einladen, sehen, wer dabei ist, ändern, was sie tun dürfen, und es verlassen –, alles über einen Bildschirm, den Sie zeichnen.
Bevor Sie beginnen
- Ein Portal, das Besucher zur Anmeldung auffordert. Siehe Besucher zur Anmeldung auffordern.
- E-Mail-Versand, eingerichtet von demjenigen, der Ihre Parsware-Installation betreibt. Eine Einladung ist eine Nachricht mit einem Link darin; ohne E-Mail kann niemand eingeladen werden.
Warum diese Aufrufe der Plattform gehören und nicht Ihrer benutzerdefinierten API
Alles andere, was Ihr Portal liest und schreibt, geht über eine benutzerdefinierte API, die Sie geschrieben haben. Ein Unternehmen nicht, und es lohnt sich zu wissen, warum: Wer zu welchem Unternehmen gehört, verwaltet der Identitätsdienst der Plattform, und der akzeptiert die Sitzung eines Besuchers nur vom eigenen Server des Portals. Ihre benutzerdefinierte API läuft nicht dort – sie läuft dort, wo Ihre Tabellen sind –, daher dürfte kein Skript, das Sie schreiben könnten, jemanden einladen.
Also stellt Ihnen die Plattform die sechs Aufrufe bereit, und Sie zeichnen den Bildschirm. In die Plattform ist keine Personen-Seite eingebaut: Die Mitgliederliste, das Einladungsfeld und die Rollenauswahl gestalten Sie selbst, so wie den Rest Ihres Portals.
Die sechs Aufrufe
| Aufruf | Was er tut |
|---|---|
startCompany(name) | Gründet ein Unternehmen mit diesem Besucher als erstem Besitzer |
invitePerson(email) / invitePerson(email, role) | Versendet eine Einladung per E-Mail. Nur Besitzer. Member, wenn keine Rolle angegeben ist |
loadCompanyPeople(into) / loadCompanyPeople(into, companyInto) | Legt die Personen in ein Zustandsfeld und das Unternehmen in ein zweites |
changePersonRole(person, role) | Ändert, was ein Kollege tun darf |
removePerson(person) | Entfernt einen Kollegen oder zieht eine offene Einladung zurück |
leaveCompany() | Dieser Besucher tritt aus |
Die Rollen sind Mitglied, Abrechnung und Besitzer, und jede darf alles, was die vorherige darf. Nur Besitzer laden ein, ändern Rollen und entfernen Personen; das entscheidet die Plattform, nicht Ihr Bildschirm.
Schritte
-
Zeichnen Sie ein Textfeld und binden Sie seinen Wert an ein Zustandsfeld – etwa
state.text. -
Zeichnen Sie eine Schaltfläche und geben Sie ihr diesen Handler für Gedrückt:
startCompany(getState("text"));createRecord("par_client", { par_name: getState("text") });loadCompanyPeople("people", "company"); -
Zeichnen Sie eine zweite Schaltfläche zum Einladen:
invitePerson(getState("text"));loadCompanyPeople("people", "company");notify("Invitation sent."); -
Setzen Sie in den Handler Bildschirm wird geöffnet des Bildschirms
loadCompanyPeople("people", "company");, damit die Seite mit bereits gefüllter Liste öffnet.
startCompany tut zwei Dinge: Es erstellt das Unternehmen und richtet die Sitzung dieses Besuchers
darauf aus. Erst danach liefert portalCustomerId() überhaupt eine Antwort – und genau das liest die
benutzerdefinierte API hinter createRecord, um Ihrem eigenen Datensatz die ID des Unternehmens zu
geben.
Andersherum gibt es keine ID, die der Datensatz bekommen könnte. Ihre API erhält nie eine von der Seite, und das soll sie auch nicht: Die Plattform entscheidet darüber, und das hindert einen Besucher daran, das Unternehmen eines anderen für sich zu beanspruchen.
Was in Ihren Zustandsfeldern landet
loadCompanyPeople("people", "company") füllt zwei Felder:
-
state.people– eine Zeile pro Kollege und pro offener Einladung:Feld Was es ist idmember:…oderinvitation:…– geben Sie es direkt anremovePersonzurücknameSein Name oder die Adresse, an die eine Einladung ging emailDie Adresse, mit der er sich anmeldet roleMember,BillingoderOwnerstatusMemberoderInvitedisYouOb diese Zeile die Person ist, die die Seite liest -
state.company–{ name, role, canManage }. Binden Sie eine Beschriftung anstate.company.name, und legen Sie die Bindung Angezeigt Ihres Einladungsfelds aufstate.company.canManage, damit einem gewöhnlichen Mitglied keine Schaltfläche angezeigt wird, bei der es abgewiesen würde.
Wer in keinem Unternehmen ist, erhält eine leere Liste und ein leeres Unternehmen – das ist kein Fehler, sondern genau der Fall, für den Ihr Formular „Unternehmen gründen“ da ist.
Eine Schaltfläche „Entfernen“, die bei beiden Zeilenarten funktioniert
Wiederholen Sie eine Tabelle über state.people, und setzen Sie eine Schaltfläche in die Zeile:
removePerson(row.id);
loadCompanyPeople("people", "company");
Das entfernt einen Kollegen oder zieht eine Einladung zurück, denn die id der Zeile sagt, was sie
ist. Diese Bedingung schreiben Sie nicht – und sollten es auch nicht, denn für die Plattform sind das
zwei verschiedene Handlungen, und nur sie kennt die Regeln für jede.
Die Rolle einer Einladung lässt sich nicht ändern. changePersonRole auf einer invitation:-Zeile
wird mit einer Begründung abgelehnt: Ziehen Sie die Einladung zurück und laden Sie die Person erneut
ein.
Wie eine Ablehnung aussieht
Der eigene Satz der Plattform erscheint neben der Schaltfläche, die jemand gedrückt hat – „Nur ein Besitzer kann Personen einladen“, „Der letzte Besitzer kann das Unternehmen nicht verlassen“, „Diese Adresse ist bereits in diesem Unternehmen“.
Diese Meldungen müssen Sie nicht schreiben und sollten auch nicht versuchen, ihnen zuvorzukommen: Die Regeln gehören der Plattform, und ein Bildschirm, der rät, würde irgendwann falsch raten.
Wer der einzige Besitzer eines Unternehmens ist, muss zuerst einen Kollegen zum Besitzer machen. Das ist Absicht: Ein Unternehmen mit Datensätzen dahinter soll nicht dadurch, dass eine Person eine Schaltfläche drückt, ohne jemanden dastehen, der es verwalten kann.
Wo eine Einladung landet
An der Eingangstür Ihres Portals, wie ein Bestätigungslink und ein Link zum Zurücksetzen des Kennworts. Wer angemeldet ist, tritt sofort bei; wer nicht angemeldet ist, sieht das Anmeldeformular mit Sie wurden eingeladen darüber, und die Einladung wartet noch, nachdem er sich registriert und seine Adresse bestätigt hat. Siehe Besucher zur Anmeldung auffordern.
Wofür das gut ist
Ein Unternehmen ist das, wonach eine Datenrichtlinie Datensätze einschränkt. Diese beiden Seiten gehören also zusammen: Diese hier beschreibt, wie jemand zu einem Unternehmen kommt, und jene, wie die Zeilen einer Tabelle zu dessen Eigentum werden.