Berechtigungen

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 neue Berechtigung hinzuzufügen, klicken Sie auf  Neue Berechtigung. Es erscheint eine neue Zeile in der Liste, welche Sie entsprechend bearbeiten können. Die möglichen Werte werden Ihnen über Drop-Down-Listen angeboten:

Um eine Berechtigung zu löschen, markieren Sie die entsprechende Zeile in der Liste und klicken Sie auf Berechtigung löschen.

eingebaute Rechte / einfache Rechte

  • eingebaute Rechte sind Rechte, die in Vertec vordefiniert sind und ganze Problemkreise abdecken, wie z.B. das Projektleiter-Recht, der Adressadministrator etc. Eine Übersicht über diese Rechte finden Sie im Artikel über Standard Benutzerrechte.
  • einfache Rechte sind Rechte, die einzeln vergeben werden, z.B. dass ein bestimmter Wert irgendwo nicht bearbeitet oder eingesehen werden darf.

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:

  1. Klicken Sie auf den Button Neue Objekt-Berechtigung. Es erscheint eine neue Zeile in der Liste der Berechtigungen.
  2. Vergeben Sie das gewünschte Recht.
  3. Ins Feld Objekt können Sie nun das Objekt auswählen:

Expressions auf Berechtigungen

Auf Berechtigungen kann 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 wird überprüft, ob der Adressbetreuer identisch ist mit dem eingeloggten Benutzer. Ist dies der Fall, wird das Schreibrecht für die entsprechenden Adressen erteilt. Um den Zugriff auf den eingeloggten Benutzer zu vereinfachen gibt es die Variable varLogin, 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:

    1. Bei der Kombination auf verschiedenen Benutzergruppen werden Berechtigungen mit Expressions am Schluss der resultierenden Berechtigungsliste berücksichtigt.
    2. 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.
    3. 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.

      Achtung Performance-Falle

      Expressions auf Berechtigungen können zu einer Beeinträchtigung der Performance führen. Das Problem ist, dass bei jedem Zugriff auf ein Member die Berechtigung geprüft werden muss - ein "Zwischenspeichern" geht nicht, weil das Resultat der Expression ja ändern kann zwischen 2 Aufrufen. Insbesondere Lese-Rechte, die auf ganze Klassen vergeben werden (also nicht auf einzelne Felder) müssen so für jedes einzelne Feld erneut überprüft werden.

      Sie sollten die Rechte möglichst knapp formulieren, also zum Beispiel Schreib- statt Leserecht (welches oft sowieso vorhanden ist, beispielsweise bei Adresseinträgen) oder nur auf einzelne Felder vergeben.

      Grundsätzlich gilt: Lese-Rechte auf Klassenebene nicht ohne Angabe der entsprechenden Feldern, insbesondere für Klassen, die entweder in Listen dargestellt werden (wie Leistung, Adresseintrag) oder in Summen verwendet werden (Rechnung).

      Sinnvoller Aufbau von Benutzergruppen

      Bearbeiter werden Benutzergruppen zugeordnet, auf welchen man die Rechte definiert. Dabei gilt es, folgendes zu beachten:

      • Die Rechte aller Gruppen eines Bearbeiters werden kombiniert.
      • Rechte müssen explizit erfasst werden. Ein Benutzer ohne Rechte kann Vertec nicht benutzen.
      • Benutzergruppen haben noch andere Funktionen als "nur" Rechte zu tragen:
        • Benutzergruppen definieren, welche Basisordner die zugeordneten Bearbeiter sehen (siehe: Ordner einer Benutzergruppe zur Ansicht anfügen).
        • Über Benutzergruppen werden Sollzeiteinstellungen gepflegt.
        • Werden Benutzergruppen für alle 3 Anwendungsgebiete verwendet, so empfiehlt es sich, die Anwendungen nicht zu mischen: also Benutzergruppen nur für Berechtigungen verwenden, andere wiederum nur für Sollzeiten, etc. Dabei ist es sinnvoll, diese so zu benennen, dass man sie auseinanderhalten kann.

      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.

      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:

      • Die Benutzergruppen in Vertec sind nicht hierachisch strukturiert und es gibt also keine wichtigeren und weniger wichtigeren Benutzergruppen ("Demokratie")
      • Rechte, die nur erweiternd sind, werden einfach kombiniert ("Addition")
      • Rechte, die sich tangieren, werden nach folgendem Schema kombiniert:
        • in der gleichen Gruppe „sticht“ ein Recht weiter unten in der Liste ein Recht, das weiter oben steht ("Letzter gewinnt")
        • in verschiedenen Gruppen „sticht“ ein erteiltes Recht ein verweigertes ("Positivismus")
        • einfache Rechte „stechen“ eingebaute Rechte ("Detailverliebt")

      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. Und falls eine Expression hinterlegt ist, muss auf der konkurrenzierenden Berechtigung die gleiche Expression hinterlegt werden.

      Objektberechtigungen werden genau gleich behandelt wie die normalen (Klassen-) Berechtigungen, sie kommen einfach nur bei einem bestimmten Objekt zur Anwendung.

      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 Rechten, die durch Berechtigungslisten nicht übersteuert werden können, da sie den reibungslosen Betrieb von Vertec gefährden würden. Beispiele dafür sind das inaktiv setzen eines Administrators, das Vornehmen von Änderungen an verrechneten Werten, das Aktivieren von Bearbeitern über die Lizenzanzahl hinaus etc.


      17.07.2003 | 11.11.2016: Screenshots Vertec 6.1 eingefügt.
      Produktlinien: Standard, Expert
      Module: Leistung & CRM