Berechtigungen
Berechtigungen definieren
In Vertec besteht die Möglichkeit, einem Bearbeiter verschiedene Berechtigungen zuzuordnen. Diese Berechtigungen sind danach überall in Vertec gültig.
Folgende Berechtigungstypen sind möglich:
- Sichtbarkeit der Daten (lesen)
- Ausführen von Reports und Scripts
- Editierbarkeit der Daten (schreiben, erfassen, löschen)
Berechtigungen werden immer auf Benutzergruppen definiert. Alle Bearbeiter, die dieser Benutzergruppe zugeordnet werden, übernehmen die dort vergebenen Berechtigungen.
Die einzelnen Berechtigungen können bis auf einzelne Felder in Vertec vergeben werden. Normalerweise werden die Rechte erteilt. Will man aber das Gegenteil einer Berechtigung bewirken, setzt man den Status auf verweigern.
Die entsprechenden Berechtigungen werden wie folgt vergeben:

- Um eine bestehende Berechtigung zu verändern, markieren Sie die betreffende Zeile in der Liste und..
- ..bearbeiten den gewünschten Wert unter "Berechtigung bearbeiten" im unteren Teil des Fensters.
- Um eine neue Berechtigung hinzuzufügen, klicken Sie auf den Button "Neue Berechtigung". Es erscheint eine neue Zeile in der Liste. Wiederholen Sie dann die Punkte 1 + 2. Um die Werte in den einzelnen Feldern auszuwählen, klicken Sie auf die "..."-Buttons und wählen Sie den gewünschten Wert aus der Liste aus.
- Sind Berechtigungen nicht mehr erwünscht, so kann man die Berechtigung in der Liste markieren und sie dann mit dem Knopf "Berechtigung löschen" entfernen.
Vordefinierte Benutzerrechte
Es gibt eine Reihe von vordefinierten Benutzerrechten im Vertec, wie z.B. das Projektleiter-Recht, der Adressadministrator etc. Eine Übersicht über diese Rechte finden Sie im Artikel über Standard Benutzerrechte.
Objektberechtigungen
Berechtigungen können auch auf einzelnen Objekten vergeben werden. Dabei kommt die Berechtigung nur auf dem einzelnen Objekt zum Tragen und nicht, wie bei normalen Berechtigungen, auf allen Objekten eines bestimmten Typs.
Um eine Objektberechtigung zu erstellen, gehen Sie wie folgt vor:
- Navigieren Sie zur Benutzergruppe, für die Sie eine Berechtigung vergeben möchten, und öffnen Sie den Reiter "Berechtigungen".
- Klicken Sie auf den Button "Neue Objekt-Berechtigung". Es erscheint eine neue Zeile in der Liste der Berechtigungen.
- Vergeben Sie das gewünschte Recht. Dieses kann über den "..."-Button ausgewählt werden.
- Ins Feld "Datentyp/Eintrag" können Sie nun das Objekt mit Drag-and-Drop hineinziehen.

Um eine Objektberechtigung zu löschen, markieren Sie die entsprechende Zeile und klicken auf den Button "Berechtigung löschen".
Expressions auf Berechtigungen
Auf Berechtigungen kann (ab Version 5.5.0.78) eine OCL-Expression angegeben werden. Das entsprechende Recht wird nur berücksichtigt, wenn die Expression für das Objekt, für welches die Berechtigung geprüft wird, wahr ergibt.
In nachfolgendem Beispiel wurde eine Benutzergruppe erzeugt, die allen Adressbetreuern die Berechtigung an von Ihnen betreuten Adressen gibt.
Hier wird überprüft, ob der Adressbetreuer identisch ist mit dem eingeloggten Benutzer. Ist dies der Fall, werden alle Rechte für die entsprechenden Adressen erteilt.
Um den Zugriff auf den eingeloggten Benutzer zu vereinfachen, wurde mit dieser Version die Variable varLogin eingefügt, welche direkt auf den aktuellen Benutzer verweist.

In Kombination von Berechtigungen über verschiedene Benutzergruppen hinweg ist die Auswertung der Berechtigung abhängig vom Objekt, für welches die Berechtigung abgefragt wird.
Folgendes gilt dabei für Berechtigungen mit Expressions:
- Bei der Kombination auf verschiedenen Benutzergruppen werden Berechtigungen mit Expressions am Schluss der resultierenden Berechtigungsliste berücksichtigt.
- Die Expressions werden nur ausgewertet, wenn es ein aktuelles Objekt gibt, welches ausgewertet werden kann. So kann z.B. das Recht, Objekte zu erzeugen, nicht an eine Expression gekoppelt werden, weil in diesem Moment noch kein Objekt besteht, welches ausgewertet werden könnte. Deshalb ist auch das Vergeben von Expressions auf den Standardbenutzerrechten wie z.B. „Projektleiter“ etc. nicht möglich.
- Wenn Rechte mit Expressions, die sich widersprechen (erlauben, verbieten für dasselbe Member) auf verschiedenen Gruppen eines Benutzers definiert sind, dann ist die Reihenfolge und somit der Vorrang nicht klar definiert. Es sollte darauf geachtet werden, dass solche Konstellationen nicht auftreten und die Gruppen sich klar voneinander abgrenzen.
Erstell-Berechtigung von KommMitteln und (Post-)Adressen
Create Berechtigungen können nur auf Klassen-Ebene geprüft werden und sind daher durch OCL Berechtigungen nicht abgedeckt (siehe Punkt 2 in obiger Auflistung).
Damit das Erstellen von KommMitteln und Postadressen auf Adresseinträgen trotzdem mit OCL Berechtigungen geregelt werden kann, wird ab Version 5.5.0.78 beim Erstellen derselben das Link-Member auf Adresseintrag geprüft, sprich, ob der Benutzer das Recht hat, solche Einträge dem Adresseintrag anzuhängen. Für diese Link-Member können Berechtigungen mit OCL Expressions angegeben werden.
Ausserdem wurde die Create-Berechtigung für Adresse, AdressLayout und KommMittel standardmässig für alle freigegeben. Ob der Benutzer das dann tatsächlich erstellen kann, hängt dann von den oben genannten Member-Rechten ab.
Hierarchie von Berechtigungen
Je nachdem, in welcher Reihenfolge oder Kombination die Berechtigungen vergeben sind, werden die Rechte im Vertec berechnet. Dabei gelten folgende Grundsätze:
1. Reihenfolge der Berechtigungsvergabe
Innerhalb einer einzelnen Benutzergruppe spielt die Reihenfolge eine Rolle. Die Rechte werden von oben nach unten abgearbeitet. Betreffen gewisse Rechte die gleichen Member oder Klassen, gilt jeweils das letzte in der Liste.
2. erteilen / verweigern
Bei der Kombination von verschiedenen Benutzergruppen gilt der Grundsatz "erlauben vor verbieten" bei Rechten, die das Gleiche betreffen. Wenn also ein Bearbeiter in verschiedenen Benutzergruppen ist, erhält er immer die meisten möglichen Rechte aus der Kombination der verschiedenen Gruppen.
3. Konkurrenzierende Berechtigungen
Wenn man sich konkurrenzierende Berechtigungen hat wie z.B. "Standarduser dürfen Member XY nicht lesen, Projektleiter aber schon" muss man darauf achten, die gleichen Berechtigungstypen zu verwenden. Wenn "Lesen" gesperrt wird, muss auch "Lesen" wieder freigegeben werden. Es geht nicht, wenn man in einem solchen Fall, z.B. "Schreiben" freigibt. Man könnte dann zwar schreiben, würde aber nicht sehen, was man schreibt!
Objektberechtigungen werden genau gleich behandelt wie die normalen (Klassen-) Berechtigungen, sie kommen einfach nur bei einem bestimmten Objekt zur Anwendung.
Information für Versionen vor 5.5.0.78: Die Angabe der Member in den Berechtigung ist case-sensitive. Wenn ein Member auf einer Gruppe gesperrt wird, welches anderswo freigegeben ist, muss die Schreibweise des Members in den Berechtigungen genau gleich sein, sonst funktioniert es nicht. Am besten wählt man dafür das Member aus dem Menü aus.
Sinnvoller Aufbau von Benutzergruppen
Beim Aufbau eines Berechtigungssystems mit verschiedenen Benutzergruppen empfiehlt es sich, die Gruppen generell so aufzubauen, dass Rechte "erteilt" werden.
Grund ist der Grundsatz "erlauben vor verbieten" bei der Kombination von verschiedenen Benutzergruppen. Es funktioniert also nicht, eine Gruppe zu machen, die einfach alles kann, und dann in anderen Gruppen gewisse Rechte einzuschränken.
Am Besten geht man von einer Standardbenutzergruppe aus, die nichts kann bzw. in der alles verweigert wird, was irgendwo verweigert werden muss. Dieser Standardbenutzergruppe sind grundsätzlich alle Bearbeiter zugeordnet.
Dann baut man die weiteren Benutzergruppen auf, in denen je nach Gruppe die weiteren Rechte erteilt werden. Die Bearbeiter, die dann diesen Gruppen zugeordnet werden, erhalten so gewisse Rechte dazu.
Man kann natürlich auch bei diesen zusätzlichen Gruppen Rechte verweigern, indem man z.B. ein Projektleiter Recht erteilt, aber auf gewissen Members das Schreibrecht verweigert. Geschieht das innerhalb der gleichen Benutzergruppe, geht das, wenn es in der Reihenfolge von oben nach unten geschieht. Bei der Zuordnung von Bearbeitern muss dann einfach darauf geachtet werden, dass sich diese Bearbeiter nicht zusätzlich in Benutzergruppen befinden, die die hier verweigerten Rechte wieder erlauben (z.B. mit einem Projekt-Supervisoren-Recht), sonst gelten wiederum die erlaubten Rechte.
Technische Zusammenfassung
1. Als erstes werden die "eingebauten" Rechte berücksichtigt, das heisst die Berechtigung, die ein Benutzer aufgrund seines Status (Projektleiter, Supervisor, Standardbenutzer etc.) auf einem bestimmten Member hat.
2. Anschliessend werden die Berechtigungen aus allen Gruppen, denen der Bearbeiter angehört, in einer Liste kombiniert. Bei der Kombination der Berechtigungslisten gilt der Grundsatz "erlauben vor verbieten" bei Rechten, die das gleiche betreffen.
3. Die Rechte in dieser kombinierten Liste werden der Reihenfolge nach durchgegangen und auf die "eingebaute" Berechtigung angewandt. Falls z.B. zuerst erlaubt und dann verboten wird, dann gewinnt das verbieten.
Falls der User ein Superuser (Administrator mit dem Recht Super) ist, dann entfallen die Schritte 2 und 3.
Es gibt eine Reihe von eingebauten Rechte, die durch Berechtigungslisten nicht übersteuert werden können. Beispiele dafür sind das inaktiv setzen eines Administrators, das Vornehmen von Änderungen an verrechneten Werten, das aktiv setzen von Bearbeitern über die Lizenzanzahl hinaus etc.
| erstellt: | 17.07.2003 |
|---|---|
| geändert: | 09.09.2010 |
