Direkt zum Hauptinhalt

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​

AufrufWas 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​

  1. Zeichnen Sie ein Textfeld und binden Sie seinen Wert an ein Zustandsfeld – etwa state.text.

  2. 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");
  3. Zeichnen Sie eine zweite Schaltfläche zum Einladen:

    invitePerson(getState("text"));
    loadCompanyPeople("people", "company");
    notify("Invitation sent.");
  4. Setzen Sie in den Handler Bildschirm wird geöffnet des Bildschirms loadCompanyPeople("people", "company");, damit die Seite mit bereits gefüllter Liste öffnet.

Die Reihenfolge bei der ersten Schaltfläche ist der ganze Trick

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:

    FeldWas es ist
    idmember:… oder invitation:… – geben Sie es direkt an removePerson zurück
    nameSein Name oder die Adresse, an die eine Einladung ging
    emailDie Adresse, mit der er sich anmeldet
    roleMember, Billing oder Owner
    statusMember oder Invited
    isYouOb diese Zeile die Person ist, die die Seite liest
  • state.company – { name, role, canManage }. Binden Sie eine Beschriftung an state.company.name, und legen Sie die Bindung Angezeigt Ihres Einladungsfelds auf state.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.

Der letzte Besitzer kann nicht austreten

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.

Verwandte Seiten​