Skip to main content

Versteckte User-Exts: Zugriffsberechtigungen manipulieren (GACL)

Die Mappentypen "Invoice", "Procurement" und "Mailroom" verwenden den Mappenklassenschutz und im Standard ist hier das Text-Feld "Rights" hinterlegt. Der Mappenklassenschutz berücksichtigt Zugriffsprofile und Benutzer-Logins. Standardmäßig setzen sich die Berechtigungen aus den Feldern "RightsInitial" und "RightsWorkflow" zusammen. Die Berechtigungen werden bei einer Weiterleitung automatisch erweitert. Jede Gruppe bzw. jeder Benutzer welcher am Workflow teilnimmt erhält automatisch Zugriffsrechte.

Im Feld "RightsInitial" werden die initialen Berechtigungen festgehalten, welche über die entsprechende WEB-Konfiguration gesetzt werden können. Diese Rechte werden bei einer weiterleitung neu ermittelt! Wenn initiale Berechtigungen abhängig von Feldwerten definiert wurden (zum Beispiel vom Mandanten-Feld) und sich der Feldwert in einer Mappe ändert, dann können neue Zugriffsberechtigungen hinzukommen und es kann auch vorkommen, dass Zugriffsberechtigungen wieder entzogen werden!

Das Feld "RightsWorkflow" speichert hingegen die Gruppen und Benutzer, die am Workflow zum Vorgang teilgenommen haben. Diese Liste wird immer weiter fortgeführt.

Die Zugriffsberechtigungen werden technisch über das Skript-Objekt "RightsGACL" gesteuert. Dieses Objekt wird mit dem DocFile-Objekt als Parameter aufgerufen und enthält folgende Funktionen:

  • addWorkflowEntry(String login/tech ap name)
  • addAccessProfile(AccessProfile)
  • addSystemUser(SystemUser, Boolean add agent in case of absence)
  • checkRights(SystemUser)
  • createGACLString()
  • readInitialRights()
  • readRightsFromField(String fieldName)

Die Funktion "createGACLString()" liefert den fertigen GACL-String (ohne diesen direkt in das Feld "Rights" zu schreiben). Ab Invoice V.1.1.200 enthält diese Funktion 2 optionale UserExit-Funktionen, um das GACL-Ergebnis zu manipulieren.