Rechtesystem
Das neue Rechtesystem wurde entwickelt um verbesserte Möglichkeiten zur Verteilung von spezifischen Rechten an einzelne Nutzer zu bieten. Dafür können beliebige sogenannte "Rollen" erstellt und einem Nutzer zugewiesen werden. Jeder dieser Rollen können dann beliebig viele "Rechte" aus einer vordefinierten Menge an Rechten zugewiesen werden. So könnte es zum Beispiel eine Rolle "Manager" geben die u.a. die Rechte "Fahrzeuge sehen/editieren/löschen", "Abrechnung" und "SMS senden" zugewiesen bekommen hat. Des weiteren könnte man zum Beispiel eine Rolle "Fahrer" anlegen, welche nur das Recht "Fahrzeuge sehen" zugewiesen bekommt.
Um den Übergang besser zu bewältigen, gibt es im Benutzer-Fenster bei den Stammdaten eine Checkbox um das neue Rechtesystem für den jeweiligen Nutzer zu aktivieren. Ist dies nicht aktiviert läuft für den jeweiligen Nutzer alles wie bisher. Am besten fängt man damit an sich die Rollen zu definieren die man braucht und Ihnen die entsprechenden Rechte zuzuweisen. Sobald man einen Benutzer für das neue Rechtesystem aktiviert, kann man dann im gleichen Reiter weiter unten ihm auch gleich eine Rolle zuweisen. Hat ein Benutzer des neuen Rechtesystem keine Rolle zugewiesen bekommen, darf er garnichts ausser sich im OSC einloggen. Er sieht dann keine Fahrzeuge in der Statusanzeige und kann auch keine Fenster öffnen.
Momentan gibt es Rechte zum Lesen/Editieren/Erstellen/Löschen jedes einzelnen Resourcetyps (Fahrzeuge, Mitarbeiter, Benutzer etc.) sowie für die etwas spezielleren Sachen wie Abrechnung, Fahrtenbuch etc..
Leserecht für eine Resource bedeutet, dass der Nutzer überhaupt erstmal auch das entsprechende Dialogfenster öffnen kann (andernfalls ist es ausgegraut) und im geöffneten Fenster die Liste der Resourcen sehen kann. Die Editfelder für die einzelnen Attribute auf der rechten Seite hingegen sind ausgegraut, er sieht nur Ihren Inhalt. Bemerkung: Wenn der eingeloggte Benutzer keine Leserecht auf Fahrzeuge hat, sieht er auch keine in der Statusanzeige im Hauptfenster.
Editierrecht bedeutet, dass der eingeloggte Nutzer alle Resourcen dieses Types ändern kann - die Attributfelder also nicht ausgegraut sind.
Erstellrecht bedeutet, dass für den eingeloggten Benutzer der Button zum Anlegen einer neuen Resource des entsprechenden Typs aktiviert wird.
Löschrecht bedeutet, dass für den eingeloggten Benutzer der Button zum Anlegen einer neuen Resource des entsprechenden Typs aktiviert wird.
Achtung: Jeder der das Recht auf das Editieren von Rollen hat, kann sich oder anderen Benutzern des gleichen Kunden neue Rechte geben!
Das System ist zusätzlich so angelegt, dass es gewisse Rechte gibt, die nicht jeder sehen bzw. verteilen darf. Zum Beispiel kann es einen Benutzer "Teamleiter" geben. Dieser könnte zwar innerhalb seiner ihm zugeteilten Mitarbeiter Lese- und schreibrechte verteilen dürfen, soll aber nicht unbedingt gleich das Recht zur Abrechnung oder zur Aktivierung des Fahrtenbuches sehen bzw. verteilen dürfen.
Daher gibt es eine Art Hirarchie an Rechten wie folgt: Alle Benutzer die direkt zum "A.R.T.E.C.O. GmbH"-Team gehören, haben immer spezielle "arteco"-Rechte aktiv. Aktuell ist das nur das Recht Crash-Dumps zu verwalten und das Recht alle Abrechnungs-spezifischen Sachen machen zu dürfen. Des weiteren gibt es weitere sogenannte "management"-Rechte die alle Arteco-Benutzer ebenfalls automatisch haben. Dazu gehören aktuell das Recht den Sync für Nutzer zu de-/aktivieren, das Recht das Fahrtenbuch für Nutzer zu de-/aktivieren und das Recht Managementrechte zu verwalten. Das letzte Recht soll kurz erläutert werden.
Alle Rechte (inklusive arteco- und management Rechten) können von authorisierten Benutzern (wenn er das z.B. das Recht "Editiere Benutzer" hat) an alle anderen vergeben werden. Diese sind für Ihn im Hintergrund aktiv, selbst wenn er garnicht selber das Recht hat Rechte zu sehen. Die speziellen Rechte sind ebenfalls aktiv für Ihn, aber selbst wenn er das Recht hat Rollen zu sehen und zu editieren, sieht er die speziellen Berechtigungen nicht und kann sie weder löschen noch anderen Nutzern zuteilen.
Im praktischen Beispiel könnte zum Beispiel Tommy (als direkter arteco Benutzer) einem Vertriebler das Recht auf die Abrechnungen geben. Da es aber ein sensibles Gebiet ist muss Tommy jedem Benutzer dieses Recht explizit zuweisen. Im anderen Fall, zum Beispiel bei Fahrtenbüchern soll der Vertriebler selber entscheiden können, welchen Unter-Benutzern er das Recht auf das Fahrtenbuch aktiviert, ohne das jedesmal ein arteco-Benutzer ran muss. Um dies zu gewährleisten gibt es das oben genannte dritte Recht auf Managementrechte. Sobald ein Nutzer dieses Recht von einem arteco benutzer zugewiesen bekommen hat, kann er alle Management-Rechte sehen und verteilen.
Die Hierarchie besteht also aus Arteco->Management->AllesAndere. An sich ist diese Struktur beliebig erweiterbar, sollte es Bedarf dafür geben.
Aktuelle Rechte nach Kategorien (im client entsprechend übersetzt):
View
view_systems view_coworkers view_garmins view_locations view_users view_trailers view_customers view_events view_groups view_sms view_reports view_fms view_user_messages
Edit
edit_coworkers edit_customers edit_events edit_garmins edit_groups edit_locations edit_systems edit_trailers edit_users edit_user_messages
Create
create_coworkers create_customers create_events create_garmins create_groups create_locations create_systems create_trailers create_users create_user_messages
Destroy
destroy_coworkers destroy_customers destroy_events destroy_garmins destroy_groups destroy_locations destroy_systems destroy_trailers destroy_users destroy_user_messages
General/Unspecified
// Rollenrechte könnten in die Management Gruppe kommen? create_roles destroy_roles edit_roles view_roles use_windows // könnte an sich durch view Regeln dargestellt werden, erstmal angelegt als pendant zu user->right_windows
Arteco Only
manage_dumps // momentan nur wichtig für webservice um symbols hochzuladen und gesendete dumps sehen zu dürfen manage_payment // Abrechnung
Management (Arteco user haben implizit management rechte)
do_management // Generelles Management Recht // Nur Management soll sync und Fahrtenbuch Rechte vergeben dürfen, daher sind diese in dieser Kategorie do_sync manage_travels
Finale Tests
- Anlegen einer Rolle
- Ändern des Rollennamen & -beschreibung
- Löschen einer Rolle
- Rollencombo reagiert korrekt auf die obigen drei Aktionen
Noch zu testen:
- Teamwechsel (buggy - beim Teamwechsel werden noch nicht die korrekten verfügbaren Rechte des eingeloggten Nutzers aktiviert)
Grundlegende Funktionalität-Tests
- Propagieren von Rollen/Rechteänderungen (durch update vom webservice, ausgelöst im web selber oder durch andern client)
- Anzeige der Rollen-Combo nur für user mit "Rollen Sehen"-Rechten
- Editierbarkeit der Rollen-Combo nur für user mit "Rollen Editieren"-Rechten
- Resourcerechte in den Dialogen überprüfen
- Fahrzeuge sehen/anlegen/editieren/löschen
- Adressen sehen/anlegen/editieren/löschen
- Teams sehen/anlegen/editieren/löschen
- Garmins sehen/anlegen/editieren/löschen
- Mitarbeiter sehen/anlegen/editieren/löschen
- Benutzer sehen/anlegen/editieren/löschen
- Anhänger sehen/anlegen/editieren/löschen
- Ereignisse sehen/anlegen/editieren/löschen
- Gruppen sehen/anlegen/editieren/löschen
- Reports (man könnte wenn erforderlich für jeden einzelnen Report ein recht erstellen)
- Rollen, SMS, FMS