Neue User zu Camp einladen
Design Entscheid für Einladung zu Camp:
- Einladen nur über Mail-Adresse
- Falls Mail-Adresse im System als validierte Adresse bekannt, soll User bereits auf CampCollaboration geschrieben werden
- Sonst CampCollaboration ohne User
- zwei verschiedene Mails
- Mail beinhaltet "Key" für Einladung
- Einladung kann angenommen / abgelehnt werden
- Solange Einladung nicht angenommen, kann keine Verantwortung zugeteilt werden, E-Mail kann momentan nicht geändert werden.
- Momentan wird eine einige FrontendUrl im Backend konfiguriert
Plan für Umsetzung:
- [x] Auf der Collaborators Seite wird neu nicht mehr ein User ausgewählt, sondern eine Email-Adresse eingetippt. (In PR für Review)
- [x] Wenn man eine E-Mail hinzufügt, dann erscheint sie in der Liste der Eingeladenen Personen, und es wird eine Einladung per Email mit inviteKey geschickt. (In PR für Review)
- [ ] Wenn man auf den Einladungslink in der E-Mail klickt, dann kommt man auf einer Seite mit folgenden Möglichkeiten:
- [x] Der InviteKey wurde nicht gefunden: Fehler
- [ ] Der InviteKey wurde gefunden, man ist nicht eingeloggt:
- [x] Login -> funktioniert
- [ ] Register
- [x] funktioniert
- [ ] redirect wird aber nicht behalten
- [x] Deny , der Status wechselt auf LEFT
- Der InviteKey wurde gefunden, man ist eingeloggt:
- [x] displayName des momentan verwendeten Accounts
- [x] Mit momentanem Account akzeptieren -> funktioniert
- [x] anderen Account verwenden -> funktioniert
- [x] Deny, der Status wechselt auf LEFT
- [x] Man sieht auf der Collaborators Seite auch die CampCollaborations mit Status Left (Dann weiss man, welche E-Mails man nicht mehr senden kann. Es hat einen Knopf daneben: E-Mail erneut senden.
- [x] Wenn die E-Mail Addresse schon einem User zugewiesen ist, kann man diesen auch gleich auf der CampCollaboration referenzieren
- [x] Man kann sich selber aus einem Camp entfernen (Gibt momentan Fehlermeldungen) #843
- [x] Owner kann nicht austreten (Ownership muss übertragen werden)
- [x] Reset Invitation-Form after submit
- [x] Redirect to camp after accept invitation (currently it navigates to the camp but the main view stays blank)
- [x] If logged in, display some kind of "Cancel" link on the invitation accept page that brings the user back to the Home page
- [ ] Funktionalität "Collaboration requesten" entfernen
- [x] Request Method mit seperaten Endpoints konfigurieren, statt mit if (gleich in AuthController entfernen, von dort hat @BacLuc es kopiert)
- [ ] Simplify CampCollaborationService
- [x] Nicht erlauben, dass ein User zwei mal eine Invitation akzeptieren kann
- [ ] 1) Unschöne Fehlermeldung: Nicht verständlich für einfache Benutzer.
- [x] Two step process to delete campcollaborations
- [x] Vielleicht den
/inviteEndpoint mehr REST-like gestalten, zum Beispiel so:/invites/abcdinvitekeyabcd/accept

Ausführlich: (From #567) Nach dem erstellen eines neuen Lagers, möchte man deine Mitleiter/innen einladen. Einige davon haben evtl. noch keinen eCamp3 Account. Wie soll der Einlade-Ablauf in diesem Fall funktionieren? Varianten
V1) Mail an Benutzer, er soll dich bitte registrieren
Nach Registrierung kann Benutzer zu Lager eingeladen werden
V2) Benutzer ohne Konto zu Lager einladen (Einladung per Mail)
Bei Registrierung ist Benutzer anschliessend automatisch im Lager
Es soll eine Registrierung mit einer anderen Mail-Adresse möglich sein
Wenn man bereits ein Konto hat, soll die Einladung mit diesem Konto angenommen werden können
Pro V1: Einfacher zu programmieren Pro V2: Benutzerfreundlicher Lösungsskizze für V1
Analog zu V1 kann eine Einlade-Mail aus eCamp heraus verfasst werden. Theoretisch ist selbst dieser Teil optional. Die Mail kann auch jeder selber verfassen. Lösungsskizze für V2
Beim Hinzufügen von Usern zu einem Lager kann zusätzlich eine Einladung an eine Mail-Adresse verschickt werden. Diese Einladung referenziert keinen Benutzer (CampCollaboration ohne Benutzer). Anstelle vom Benutzer werden folgende Informationen gespeichert:
Mail-Adresse
Wohin wurde die Einladung verschickt
Erlaubt ein "Einladung noch einmal schicken
Einlade-Schlüssel
Dieser Schlüssel wird benötigt, um die Einladung anzunehmen.
Der Schlüssel ist im "Einladung annehmen"-Link der Mail enthalten
Solange die Einladung nicht angenommen wurde, kann diese ohne weiteres zurückgenommen werden. So kann z.B. ein Tip-Fehler in der Mail-Adresse korrigiert werden (Einladung löschen und neu erfassen).
Beim Klick auf den "Einladung annehmen"-Link wird man auf folgende Seite geleitet:
Anzeige
Begrüssung: Willkommen bei eCamp... eCamp ist... bla bla bla... du wurdest zur Mitarbeit eingeladen
Einladung wurde verschickt an: "Mail-Adresse"
Falls bereits angemeldet:
Du bist angemeldet als "USER"
Warnung, falls angemeldeter "USER" und "Mail-Adresse" nicht übereinstimmen.
Infos zu Lager (wozu wurde eingeladen)
Infos zum User (wer hat eingeladen)
Optionen (falls angemeldet)
Einladung annehmen
Einladung mit anderem Benutzer annehmen (Logout; Redirect zurück zu dieser Seite)
Diese Einladung ist nicht für mich (Einladung ablehnen)
Optionen (falls nicht angemeldet)
Einladung annehmen durch Anmelden (Login + Redirect zur "Einladung annehmen"-Aktion)
Einladung annehmen durch Registrieren
Diese Option nur anbieten, wenn noch kein Account mit eingeladener Mail-Adresse besteht.
Diese Einladung ist nicht für mich (Einladung ablehnen)
Bei "Einladung annehmen" (sowohl bei Anmelden und Registrieren) muss der Einlade-Schlüssel durchgehend übertragen werden. Nach erfolgreicher Annahme der Einladung soll sofort das Lager geöffnet werden.
Meeting discuss
Weitere Tasks:
- Resend Email
- Owner kann nicht austretten (Ownership muss übertragen werden)