Zum Hauptinhalt springen
Alle Releases
Release Notes

Rollen und Rechte selbst vergeben, Organisationen und Mitarbeitende verwalten

Rollen und RechteOrganisationenMitarbeiterverwaltungGruppen-Dashboard

Version 0.5.0 bringt ein Rollen- und Rechtesystem, das die Anwendung selbst verwaltet. In den neuen Einstellungen werden Rollen angelegt, ihre Rechte je Bereich gesetzt und einzelnen Personen zugewiesen. Dazu kommt eine Organisationsstruktur, über die sich Bäume, Sensoren, Fahrzeuge und Einsatzpläne einzelnen Einheiten und beauftragten Fremdfirmen zuordnen lassen.

Cedrik Hoffmann

Lead Developer & Projektleitung

Nachdem 0.4.0 die Routenplanung und die Einsatzplanung in den Mittelpunkt gestellt hat, beantwortet Version 0.5.0 eine andere Frage: wer in der Plattform was darf. Bisher gab es dafür eine feste Liste von Rollen, die im Anmeldedienst hinterlegt war und sich nur dort ändern ließ. An ihre Stelle tritt ein Rechtesystem, das die Anwendung selbst verwaltet. Rollen werden in den Einstellungen angelegt, ihre Rechte je Bereich gesetzt und einzelnen Personen zugewiesen. Dazu kommt eine Organisationsstruktur, mit der sich Bäume, Sensoren, Fahrzeuge und Einsatzpläne einzelnen Einheiten und beauftragten Fremdfirmen zuordnen lassen.

Highlight des Releases

Rollen mit frei wählbaren Rechten

Eine Rolle ist eine benannte Sammlung von Rechten. Die Rechte selbst sind nach Bereichen gegliedert, die in drei Gruppen liegen. Unter Grünflächen stehen Bäume, Bewässerungsgruppen, Sensoren und Gebiete, unter Einsatzplanung die Einsätze und Fahrzeuge, unter Verwaltung die Mitarbeitenden, die Organisation und die Rollen selbst. Für jeden Bereich lässt sich eine der Stufen Kein, Ansehen, Bearbeiten und Verwalten wählen. Wer feiner abstufen will, setzt die vier Aktionen Ansehen, Anlegen, Bearbeiten und Löschen einzeln; die Rolle gilt dann als individuell.

Mitgeliefert werden fünf Systemrollen: Administrator, Baumpflege, Sensorik, Routenplanung und Beobachter. Sie dienen als Vorlage, sind selbst nicht änderbar und lassen sich nicht zuweisen. Wer sie als Ausgangspunkt nutzen möchte, kopiert sie: die Kopie gehört der eigenen Organisation und ist frei anpassbar. Beim Anlegen einer neuen Organisation entstehen diese Kopien automatisch. Eine Rolle kann dabei nie mehr Rechte vergeben, als die bearbeitende Person selbst besitzt. Rechte, die dafür fehlen, sind im Editor nicht auswählbar.

Rollenverwaltung in den Einstellungen: links die Liste der Systemrollen, rechts die Rechte der Rolle Routenplanung nach Bereichen gegliedert, jeweils mit den Stufen Kein, Ansehen, Bearbeiten und VerwaltenRollenverwaltung in den Einstellungen: links die Liste der Systemrollen, rechts die Rechte der Rolle Routenplanung nach Bereichen gegliedert, jeweils mit den Stufen Kein, Ansehen, Bearbeiten und Verwalten

In der Oberfläche wirken die Rechte auf die Navigation und auf die Aktionen innerhalb einer Seite. Die Navigation zeigt nur Einträge, die auch erreichbar sind, und der direkte Aufruf einer gesperrten Adresse führt auf eine Hinweisseite statt in einen Fehler. Innerhalb der Seiten verschwinden die Schaltflächen zum Anlegen, Bearbeiten, Löschen und Archivieren, wenn das Recht fehlt, anstatt deaktiviert stehen zu bleiben. Auch das Verschieben von Karten auf dem Einsatzplan-Board ist an das Bearbeitungsrecht gebunden.

Organisationen mit Standort und Kontaktperson

Organisationen sind hierarchisch aufgebaut. Unter der obersten Organisation einer Installation hängen die Mandanten, darunter deren eigene Einheiten und beauftragte Fremdfirmen. Die Seite Einstellungen › Organisation zeigt diese Struktur als auf- und zuklappbaren Baum mit Mitgliederzahlen, daneben die Details der ausgewählten Organisation.

Zu jeder Organisation gehören neben dem Namen ein Standort und eine Kontaktperson. Der Standort ist optional, lässt sich aber nur vollständig speichern: fehlt Straße, Postleitzahl oder Ort, blockiert das Speichern und markiert die fehlenden Felder. Als Kontaktperson sind nur Mitglieder derselben Organisation wählbar. Unterorganisationen lassen sich anlegen, umbenennen und löschen, solange keine Unterorganisationen und keine Personen mehr an ihnen hängen. Die oberste Organisation bleibt schreibgeschützt. Jeder Mandant sieht ausschließlich seinen eigenen Teilbaum.

Organisationsverwaltung mit der Organisationsstruktur links und den Karten für Stammdaten, Standort, Kontaktperson, zugewiesene Mitarbeitende und untergeordnete Organisationen rechtsOrganisationsverwaltung mit der Organisationsstruktur links und den Karten für Stammdaten, Standort, Kontaktperson, zugewiesene Mitarbeitende und untergeordnete Organisationen rechts

Mitarbeitende verwalten

Die Übersicht der Mitarbeitenden war bisher eine reine Leseliste ohne Aktionen. Sie ist jetzt eine Verwaltungsoberfläche im gleichen Muster wie die Rollen- und die Organisationsseite: links die Personenliste mit Suchfeld, Filtern für Organisation und Rolle sowie Gesamtzähler, rechts der Detailbereich, der auf schmalen Bildschirmen über die Liste fährt. Die Suche berücksichtigt Vorname, Nachname, Benutzername und E-Mail-Adresse und läuft auf dem Server, findet eine Person also unabhängig davon, auf welcher Seite der Liste sie steht.

Im Detailbereich stehen oben Benutzername, E-Mail-Adresse, Zugehörigkeit und Verfügbarkeitsstatus. Diese Angaben sind schreibgeschützt, weil der Anmeldedienst sie besitzt; ist die E-Mail-Adresse noch nicht bestätigt, erscheint dort ein Hinweis.

Darunter liegen drei Karten für Organisation, Rollen und Profil. Änderungen an Organisation und Rollen wirken sofort, ein Organisationswechsel wird vorher bestätigt, und zuweisbar sind nur Rollen der eigenen Organisation. Die Profilkarte mit Verfügbarkeitsstatus, Führerscheinklassen, Telefonnummer und Personalnummer hat ein eigenes Speichern und warnt, bevor ungespeicherte Eingaben verworfen werden. Am eigenen Konto sind Rollen und Organisation nicht änderbar, damit sich niemand versehentlich die letzte Rolle entzieht und aussperrt.

Verwaltung der Mitarbeitenden: links die Personenliste mit Suchfeld und Filtern für Organisation und Rolle, rechts die Karten für Organisation, Rollen und ProfilVerwaltung der Mitarbeitenden: links die Personenliste mit Suchfeld und Filtern für Organisation und Rolle, rechts die Karten für Organisation, Rollen und Profil

Neu: Ressourcen gehören zu einer Organisation

Bäume, Bewässerungsgruppen, Sensoren, Fahrzeuge, Startpunkte und Einsatzpläne sind jetzt jeweils einer Organisation zugeordnet. Was eine Person sieht und bearbeiten kann, ergibt sich aus ihrer eigenen Organisation und den darunter liegenden Einheiten. Ein Recht wirkt immer nur nach unten, nie nach oben.

Soll eine Fremdfirma einen Teil der Fläche betreuen, wird der betroffene Bestand an deren Organisation übertragen. Bei einer Bewässerungsgruppe wandern die zugehörigen Bäume mit. Die übergeordnete Organisation behält über ihre Rollen weiterhin Zugriff und kann die Übertragung jederzeit einseitig zurücknehmen.

Neues Dashboard der Bewässerungsgruppen

Die Detailseite einer Bewässerungsgruppe war eine Stammdatenansicht und ist jetzt ein Dashboard. Oben stehen vier Kennzahlen: der durchschnittliche Bewässerungszustand, die Bodentemperatur, der Zeitpunkt der letzten Messung und die letzte Bewässerung. Darunter folgen der Verlauf der Wasserversorgung und die Bewässerungshistorie, rechts daneben Kacheln zu Standort, Sensorik, den Bäumen der Gruppe und den Stammdaten. Die Standort-Kachel zeigt eine kleine Karte mit der Grenze der Gruppe.

Dashboard einer Bewässerungsgruppe mit den vier Kennzahlen, dem Verlauf der Wasserversorgung über sieben Tage, der Bewässerungshistorie sowie Kacheln für Standort und SensorikDashboard einer Bewässerungsgruppe mit den vier Kennzahlen, dem Verlauf der Wasserversorgung über sieben Tage, der Bewässerungshistorie sowie Kacheln für Standort und Sensorik

Der Verlauf zeigt nicht mehr die Rohwerte der Bodenfeuchte, sondern den Anteil des pflanzenverfügbaren Wassers in Prozent, wählbar für die letzten 24 Stunden, 7 Tage oder 30 Tage. Dafür werden die Messwerte mit der hinterlegten Bodenart in Beziehung gesetzt. Gestrichelte Linien markieren die Schwellen für mäßige und kritische Versorgung, weitere Markierungen zeigen, wann die Gruppe bewässert wurde. Fehlt die Bodenart, weist ein Hinweis darauf hin, weil die Berechnung dann nicht möglich ist. Auf der Detailseite eines Sensors bleibt der Verlauf der gemessenen Bodenfeuchte je Messtiefe erhalten.

Voraussetzung für diese Berechnung ist die Bodenart der Gruppe, die sich jetzt im Formular über einen neuen Dialog ermitteln lässt. Aus den Korngrößenanteilen von Sand, Schluff und Ton einer Bodenprobe bestimmt er die Bodenart nach dem KA5-Bodenartendiagramm und zeigt die Probe als Punkt im Diagramm.

Dialog zur Bestimmung der Bodenart mit den Eingabefeldern für Sand, Schluff und Ton, der Probe als Punkt im KA5-Bodenartendiagramm und dem Ergebnis Lt2, schwach toniger LehmDialog zur Bestimmung der Bodenart mit den Eingabefeldern für Sand, Schluff und Ton, der Probe als Punkt im KA5-Bodenartendiagramm und dem Ergebnis Lt2, schwach toniger Lehm

Weitere Verbesserungen

Die Einstellungen sind jetzt ein eigener Bereich mit Unternavigation. Neben Organisation sowie Team und Rollen liegt dort auch das eigene Profil, das bisher an anderer Stelle stand. Der Schalter zum Einklappen der Seitenleiste ist in die Kopfzeile gewandert.

Ist ein Profilbild hinterlegt, erscheint es in der Seitenleiste, in der mobilen Kopfzeile und auf der Profilseite; sonst bleiben es die Initialen. Das Bild liegt zusammen mit Telefonnummer, Personalnummer, Führerscheinklassen und Verfügbarkeit nicht mehr als Attribut im Anmeldedienst, sondern in der Datenbank der Anwendung.

In der API-Dokumentation kann man sich jetzt direkt über Keycloak anmelden. Danach tragen alle Anfragen aus der Dokumentation den Zugriffstoken automatisch mit, sodass geschützte Endpunkte ohne manuelles Kopieren ausprobiert werden können.

Behobene Fehler

Dialoge, Menüs, Auswahllisten und Hinweise erschienen und verschwanden ohne Übergang, weil die dafür vorgesehenen Animationen im Projekt gar nicht hinterlegt waren. Sie sind wieder aktiv, Schaltflächen geben beim Drücken eine sichtbare Rückmeldung, und zentrierte Dialoge blenden nun ein statt aus der oberen linken Ecke einzufliegen. Wer im Betriebssystem reduzierte Bewegung oder reduzierte Transparenz eingestellt hat, bekommt Überblendungen ohne Bewegung und Dialoge ohne Weichzeichner.

Bei der Anmeldung trat vereinzelt ein Fehler auf, weil der nur einmal gültige Anmeldecode unter bestimmten Umständen zweimal eingelöst wurde. Der Austausch läuft jetzt höchstens einmal pro Anmeldung. Auf Mobilgeräten verschwand der Fußbereich der Seitenleiste mit Einstellungen und Benutzermenü hinter der Browserleiste; er ist jetzt fest verankert und bleibt sichtbar, während die Abschnitte darüber scrollen.

Wichtig für bestehende Installationen

Mit der Umstellung wandern Rollen und Organisationszugehörigkeit in die Datenbank. Die Migration legt die oberste Organisation an, liefert die fünf Systemrollen als Vorlagen mit und hinterlegt für die oberste Organisation gleich eine einsatzfähige Kopie jeder Rolle. Personen ohne Organisation werden der obersten Organisation zugeordnet.

Rollen, die zuvor im Anmeldedienst gepflegt wurden, liest die Anwendung nicht mehr aus dem Token. Nach dem Update ist deshalb noch keine Rolle zugewiesen; die Zuordnung erfolgt einmalig unter Einstellungen › Team & Rollen. Wer die Plattform ohne Anmeldung als Demo betreibt, ist davon nicht betroffen; dort gilt der Zugriff weiterhin als unbeschränkt.

Ausblick

Der Einstellungsbereich ist noch nicht vollständig. Die Punkte Bewässerung, Benachrichtigungen, Sensoren und Netz sowie Karte und Einheiten sind angelegt, aber noch nicht mit Inhalt gefüllt. Auch das Anlegen neuer Personen fehlt bislang, weil die Mitarbeitenden beauftragter Fremdfirmen zum Zeitpunkt der Anlage noch keine Benutzerkonten haben. Beides folgt in den kommenden Versionen.

Rückmeldungen und Fehlerberichte sind jederzeit willkommen auf GitHub.

CHANGELOG.md - v0.5.0
$
feat(backend): Organisationsbaum, Rollen und Rechte werden in der Datenbank geführt statt im Anmeldedienst
#921
$
feat(backend): Bäume, Gruppen, Sensoren, Fahrzeuge, Startpunkte und Einsatzpläne gehören zu einer Organisation, Weitergabe erfolgt über Übertragung
#923
$
feat(backend): Jede Person gehört verbindlich zu genau einer Organisation
#938
$
feat(frontend): Einstellungen als eigener Bereich mit Unternavigation und Rollenverwaltung
#939
$
feat: Organisationen mit Standort, Kontaktperson und Unterorganisationen verwalten
#956
$
feat: Mitarbeitende mit Suche, Filtern, Rollen, Organisation und Profil verwalten
#966
$
feat(frontend): Seitenaufrufe und Navigationseinträge richten sich nach den Rechten, gesperrte Adressen führen auf eine Hinweisseite
#925
$
feat(frontend): Aktionen zum Anlegen, Bearbeiten, Löschen und Archivieren erscheinen nur mit dem passenden Recht
#937
$
feat(treecluster): Detailseite einer Bewässerungsgruppe als Dashboard mit Kennzahlen, Bodenfeuchte-Verlauf und Bewässerungshistorie
#915
$
feat(dashboard): Verlauf zeigt den Anteil des pflanzenverfügbaren Wassers statt der rohen Bodenfeuchte
#918
$
feat(frontend): Bodenart einer Gruppe über das KA5-Bodenartendiagramm aus den Korngrößenanteilen bestimmen
#904
$
feat(user): Profilbild aus dem Benutzerprofil in Seitenleiste, Kopfzeile und Profilseite
#917
$
feat(swagger): Anmeldung in der API-Dokumentation über Keycloak, Anfragen tragen den Zugriffstoken automatisch
#922
$
refactor(backend): Telefonnummer, Personalnummer, Führerscheinklassen und Verfügbarkeit werden in der Datenbank geführt statt als Attribute im Anmeldedienst
#907
$
fix(frontend): Ein- und Ausblenden von Dialogen, Menüs und Hinweisen wieder animiert, reduzierte Bewegung und reduzierte Transparenz werden berücksichtigt
#957
$
fix(frontend): Anmeldecode wird nur noch einmal eingelöst, der vereinzelte Fehler beim Anmelden entfällt
$
fix(frontend): Fußbereich der Seitenleiste bleibt auf Mobilgeräten sichtbar
#919

Fehler gefunden oder Feedback zu diesem Release? Issue erstellen →