template & user,rolse & webapi
|
@ -20,8 +20,16 @@ Zusätzlich können Empfänger manuell hinzugefügt werden, wenn diese nicht in
|
|||
|
||||
Der *Export* kann als pdf oder als Mailversand erfolgen. Jedes Mitglied, das eine Mailadresse für den Empfang angegeben hat, erhält eine Mail mit dem Hauptteil des Newsletters. Für alle anderen wird ein PDF erzeugt. Das PDF enthält in der Fußzeile den Namen und optional eine Adresse, falls eine solche für den Versand des Newsletters beim Mitglied angegeben ist.
|
||||
|
||||
Um den Ausdruck zu vereinfachen, werden alle erzeugten PDFs in einem einzigen PDF zusammengefasst.
|
||||
#figure(
|
||||
image("../../images/newsletter-config.png", width: 100%),
|
||||
)
|
||||
|
||||
Für jede Kommunikationsart kann festgelegt werden, ob eine E-Mail versendet, ein PDF mit Adresse oder ein PDF ohne Adresse erzeugt werden soll. Sind die erforderlichen Daten für die Auswahl Mailversand oder PDF-Druck mit Adresse nicht vorhanden, wird als Fallback auf ein PDF ohne Adresse umgeschaltet.
|
||||
\
|
||||
\
|
||||
Um den Ausdruck zu vereinfachen, werden alle erzeugten PDFs in einem einzigen PDF zusammengefasst.
|
||||
\
|
||||
\
|
||||
Zusätzlich wird eine ICS-Datei erstellt, die alle Termine enthält, die dem Newsletter hinzugefügt wurden. Diese wird ebenfalls direkt mit der Mail versendet. Zusätzlich wird noch ein PDF erstellt, welches in der Fußzeile an den Verein adressiert ist und somit an alle Mitglieder z.B. in einer WhatsApp Gruppe verteilt werden kann.
|
||||
\
|
||||
\
|
||||
|
|
|
@ -13,6 +13,24 @@ Queries sind Abfragen an die Mitgliederdaten, die von den Nutzern selbst definie
|
|||
Queries können entweder visuell zusammengebaut oder mit SQL geschrieben werden.
|
||||
|
||||
Dabei muss beachtet werden, dass mit diesen Queries keine Daten verändert werden können.
|
||||
|
||||
#figure(
|
||||
image("../../images/query-builder-result.png", width: 100%),
|
||||
)
|
||||
|
||||
Die Ausgabe beinhaltet dann die ausgewählten Felder einer Tabelle, wobei `*` bedeutet, dass alle Felder angefragt werden sollen. Weiterhin zeigt die Ausgabe an, wie viele Treffer gefunden wurden.
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/query-builder-bar.png", width: 6.5cm),
|
||||
),
|
||||
)[
|
||||
Die Symbole der Leiste des Builders ermöglichen die Ausführung einer Abfrage, aber auch den Export oder die Speicherung einer Abfrage.
|
||||
|
||||
Der Export ermöglicht das Speichern der Abfrageergebnisse in einer CSV-Datei. Weiterhin können entweder die Abfrageergebnisse geleert oder die Abfrage und dessen Ergebnisse zurückgesetzt werden. Auch kann eine ausgewählte Abfrage überschrieben werden.
|
||||
]
|
||||
|
||||
Die Queries können gespeichert werden, damit diese dann zum Beispiel im Newsletter (@newsletter) verwendet werden können.
|
||||
\
|
||||
\
|
||||
Die Queries können auch gespeichert werden, damit diese dann zum Beispiel im Newsletter (@newsletter) verwendet werden können.
|
||||
Typische Anwendungsfälle für die Abfragen wären zum Beispiel Mitglieder unter bzw. über 18 Jahre. Dadurch können die Anzahl ausgegeben oder Statistiken erstellt werden.
|
||||
|
|
|
@ -1,5 +1,27 @@
|
|||
#import "@preview/wrap-it:0.1.1": *
|
||||
|
||||
#pagebreak()
|
||||
== Templates & Template Builder <template>
|
||||
|
||||
== Templates & Template Builder <template>
|
||||
#figure(
|
||||
image("../../images/template-edit.png", width: 100%),
|
||||
)
|
||||
|
||||
Templates sind Formatvorlagen, die beim Druck von Mitgliederdaten bzw. -listen, Protokollen (@protocol) und Newslettern (@newsletter) verwendet werden können.
|
||||
|
||||
Diese Templates können frei gestaltet werden und beinhalten Datenfelder, die dann beim Druck automatisch ausgefüllt werden.
|
||||
\
|
||||
\
|
||||
*Hinweis:* Der Prozess zur Erstellung von Templates wird zeitnah umgestellt. Dadurch sind bestehende Templates zwar noch verwendbar jedoch nicht mehr editierbar.
|
||||
\
|
||||
\
|
||||
#figure(
|
||||
image("../../images/template-usage.png", width: 100%),
|
||||
)
|
||||
Die Formatvorlagen können in der Template-Verwendung als Vorlagen für Kopf- und Fußzeile und den Hauptteil verwendet werden. Standardmäßig besteht die Kopfzeile immer aus dem Druckvorgang und dem Applikationsnamen. Die Fußzeile gibt Standardmäßig die Seitenzahl an.
|
||||
\
|
||||
\
|
||||
Bei der Einstellung der Template-Verwendung kann für jeden verfügbaren Druckvorgang angegeben werden, welche eigenen bzw. Standard-Vorlagen verwendet werden sollen. Zusätzlich muss hier bedacht werden, dass die Höhe von Kopf- und Fußzeile an die Templates angepasst werden muss.
|
||||
|
||||
Die Änderungen können gespeichert oder vollständig zurückgesetzt werden.
|
||||
|
||||
Eine Vorschau des Resultats ist unter dem Auge-Symbol möglich. Dazu werden Demo-Daten geladen und in das Template eingefügt. Die Vorschau zeigt dann ein PDF, wie es bei einem finalen Export aussehen könnte.
|
|
@ -1,3 +1,78 @@
|
|||
#import "@preview/wrap-it:0.1.1": *
|
||||
|
||||
== Benutzer & Rollenverwaltung
|
||||
== Benutzer & Rollenverwaltung
|
||||
|
||||
#figure(
|
||||
image("../../images/user-overview.png", width: 100%),
|
||||
)
|
||||
|
||||
Im FF Admin können Daten nur von Benutzern geändert werden. Diese Benutzer melden sich mit einem TOTP an. Ein TOTP (Time-based One-time Password) ist ein zeitbasiertes Passwort, das sich jede Minute ändert. Jeder Benutzer hat Lese-, Bearbeitungs- und Löschrechte. Es können auch Rollen erstellt und Benutzern zugewiesen werden.
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/user-invite.png", width: 6.5cm),
|
||||
),
|
||||
)[
|
||||
Benutzer können nicht direkt hinzugefügt werden. Eine Einladung muss verschickt werden.
|
||||
|
||||
Einladungen sind nur solange gültig, bis sie angenommen oder zurückgezogen werden.
|
||||
|
||||
Bei einer Einladung wird ein personalisierter Link an die angegebene E-Mail-Adresse gesendet, über den sich der Benutzer registrieren kann. Nach der Registrierung hat der Benutzer noch keine Rollen oder Berechtigungen. Diese müssen nach der Registrierung zugewiesen werden.
|
||||
|
||||
Ein Benutzername oder eine E-Mail-Adresse darf nur einmal existieren.
|
||||
]
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/nopermission.png", width: 6.5cm),
|
||||
),
|
||||
align: right
|
||||
)[
|
||||
Wenn ein Benutzer keine Berechtigungen hat oder diese ihm entzogen wurden, wird die Meldung auf der linken Seite angezeigt.
|
||||
|
||||
Nach der Registrierung wird diese Meldung standardmäßig angezeigt.
|
||||
|
||||
Durch Klicken auf die Schaltfläche "Zum Admin-Portal" werden die Berechtigungen neu geladen.
|
||||
]
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/user-permissions.png", width: 6.5cm),
|
||||
),
|
||||
)[
|
||||
Berechtigungen werden immer addiert. Wenn ein Benutzer direkt zugewiesene Berechtigungen und Rollen erhält, werden die Berechtigungen addiert und der Benutzer kann alles, was zugewiesen wurde und was die Rolle kann.
|
||||
|
||||
Das Berechtigungsmodell unterscheidet zwischen Lese-, Erstellungs-, Änderungs- und Löschberechtigungen. Die Berechtigungen sind abgestuft. Das heißt, wer anlegen darf, darf auch lesen. Wer bearbeiten darf, darf auch anlegen und dementsprechend auch lesen usw.
|
||||
|
||||
Die Berechtigungen sind nach Sektionen gruppiert. Wenn die Berechtigung für einen Abschnitt auf Lesen gesetzt ist, kann der Benutzer mit dieser Berechtigung Daten in allen Modulen des Abschnitts lesen.
|
||||
|
||||
Erweiterte Berechtigungen können pro Modul gesetzt werden. Dabei gelten die Berechtigungen des Abschnitts immer mehr als die eines Moduls innerhalb des Abschnitts.
|
||||
]
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/user-roles.png", width: 6.5cm),
|
||||
),
|
||||
align:right
|
||||
)[
|
||||
Damit Rollen oder Berechtigungen von einem Benutzer vergeben werden können, muss dieser Benutzer über Administratorrechte verfügen. Dabei ist es unerheblich, ob die Admin-Berechtigung über eine Rolle oder direkt vergeben wird.
|
||||
|
||||
Rollen fassen Berechtigungen zusammen und ergänzen die einem Benutzer direkt zugewiesenen Berechtigungen.
|
||||
|
||||
Rollen können sich nicht gegenseitig ausschließen.
|
||||
|
||||
Einem Benutzer können mehrere Rollen zugewiesen werden. Muss aber keine Rollen haben.
|
||||
]
|
||||
|
||||
#figure(
|
||||
image("../../images/role-overview.png", width: 100%),
|
||||
)
|
||||
|
||||
Rollen dienen der Abstraktion von Berechtigungen. Dadurch können spezifische Berechtigungsschemata direkt einem oder mehreren Benutzern zugewiesen werden, ohne dass diese mehrfach zugewiesen werden müssen.
|
||||
\
|
||||
\
|
||||
\
|
||||
*Hinweis:* Änderungen bei den Berechtigungen oder Rollen haben keinen direkten Effekt bei den Nutzern. Die Änderungen haben erst dann einen Effekt, wenn die Session erneuert wird. Die Dauer, bis die Änderungen einen Einfluss haben, wird durch den Wert von `JWT_EXPIRATION` bestimmt.
|
||||
|
||||
Sollen Änderungen direkt verfügbar sein, muss sich der Nutzer ab- und wieder anmelden.
|
||||
Wird Nutzern die Seite `nopermissions` angezeigt, genügt ein Klick auf "Zum Admin-Portal". Dadurch werden die Berechtigungen erneut geladen.
|
|
@ -1,3 +1,45 @@
|
|||
#import "@preview/wrap-it:0.1.1": *
|
||||
|
||||
== Webapi
|
||||
== WebApi
|
||||
|
||||
#figure(
|
||||
image("../../images/webapi-overview.png", width: 100%),
|
||||
)
|
||||
|
||||
WebApi-Tokens ermöglichen externen Clients oder anderen Anwendungen des FF Ecosystems die Kommunikation mit dem FF Admin. Dabei haben WebApis Zugriff auf fast alle Daten des FF Admin, sofern die Berechtigungen gesetzt sind.
|
||||
\
|
||||
\
|
||||
Kategorisch ausgeschlossen ist der Zugriff auf Accountdaten und Serverinformationen wie z.B. die Version. Weiterhin hat eine WebApi keinen Zugriff auf die Endpunkte für Setup, Reset, Invite und Auth. Eine WebApi kann auch nicht auf andere WebApis und Backupds zugreifen.
|
||||
\
|
||||
\
|
||||
Zur einfacheren Verwendung der WebApi in eigenen Anwendungen kann das NPM-Paket `@ff-admin/webapi-client` verwendet werden.
|
||||
|
||||
Dieses ist unter #link("https://npm.registry.jk-effects.cloud/-/web/detail/@ff-admin/webapi-client") verfügbar.
|
||||
\
|
||||
\
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/webapi-form.png", width: 6.5cm),
|
||||
),
|
||||
)[
|
||||
Eine WebApi kann mit einem Verfallsdatum erstellt werden. Dieses Ablaufdatum wird fest eingestellt, wenn eine WebApi Zugriff anfordert.
|
||||
|
||||
Zusätzlich wird für jede WebApi ein Token erstellt, das zur Authentifizierung der WebApi verwendet werden kann.
|
||||
]
|
||||
|
||||
#wrap-content(
|
||||
figure(
|
||||
image("../../images/webapi-token.png", width: 6.5cm),
|
||||
),
|
||||
align:right
|
||||
)[
|
||||
Unter dem Fingerabdruck-Symbol kann das Token der WebApi abgerufen werden.
|
||||
|
||||
Diese Token sind JWTS und können daher ohne Kenntnis der Serverkonfiguration nicht gefälscht werden.
|
||||
]
|
||||
|
||||
Die WebApi bezieht den Zugang wie folgt:
|
||||
|
||||
#figure(
|
||||
image("../../images/webapi.png", width: 100%),
|
||||
)
|
||||
|
|
BIN
admin/images/WebApi.png
Normal file
After Width: | Height: | Size: 178 KiB |
BIN
admin/images/newsletter-config.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
admin/images/nopermission.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
admin/images/query-builder-bar.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
admin/images/query-builder-result.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
admin/images/role-overview.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
admin/images/template-edit.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
admin/images/template-usage.png
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
admin/images/user-invite.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
admin/images/user-overview.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
admin/images/user-permissions.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
admin/images/user-roles.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
admin/images/webapi-form.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
admin/images/webapi-overview.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
admin/images/webapi-token.png
Normal file
After Width: | Height: | Size: 11 KiB |