Autor(en): TMC
Stand: 27. März 2004
Version: 2.1
Notes-Versionen: 5.x, 6.x
Atnotes-Thread(s):
ACL - Wer darf was?,
ACL - Einträge übersichtlich darstellen
0. Inhalt1. Übersicht ACL-Zugriffsteuerung
2. Besonderheiten
2.1 Feld $PublicAccess
2.2 Formel @UserName
2.3 Formel @Author
3. Transparenz für Anwender1. Übersicht ACL-Zugriffsteuerung(1) Sofern in der ACL die Berechtigung "Dokumente erstellen" aktiviert ist.
(2) Sofern in der ACL "Öffentliche Dokumente schreiben" aktiviert ist.
(3) Sofern kein Lesernamensfeld vorhanden ist oder - falls es ein Lesernamensfeld gibt - der
Anwender namentlich, durch Gruppen- oder Rollenzugehörigkeit in einem Lesernamensfeld oder
Autorennamensfeld enthalten ist.
(4) Bearbeitung nicht erlaubt:
- generell bei allen Dokumenten, in denen der User nicht im Autorenfeld steht
- wenn Autor = Ersteller des Dokumentes, aber kein Autorenfeld vorhanden
Bearbeitung erlaubt:
- Selbst erstellte Dokumente, sofern ein Autorenfeld im Dokument vorhanden und dieses nicht
programmtechnisch belegt ist (dabei wird automatisch beim Speichern der Ersteller als Autor
eingetragen.
- wenn User im Autorenfeld eingetragen ist
2. Besonderheiten2.1 Feld $PublicAccessWenn man in einem Dokument das Feld
$PublicAccess auf den Wert "1" setzt, darf der User dieses Dokument lesen und bearbeiten - unabhängig welcher Zugriffsebene der User angehört (also auch bei: 'Kein Zugriff').
Bedingung: Es muss für den User "Öffentliche Dokumente schreiben" aktiviert sein.
Damit kann man also bestimmte Dokumente zum Zugriff freischalten, auch wenn der User sonst keine weiteren Rechte in der Datenbank hat. Dies wird beispielsweise so auch im Mailfile verwendet (in der Kalender-Delegierung).
2.2 Formel @UserName@Username ist der Benutzername laut user.id, mit der der jeweilige Code ausgeführt wird. Dies kann also auch der Servername oder ein beliebiger anderer Name sein, wenn der Code durch einen Agenten auf dem Server ausgeführt wird und dieser Agent die Neuberechnung von Feldern einer Maske erzwingt (z.B. NotesDocument.ComputeWithForm).
2.3 Formel @Author@Author ist eine mit Bedacht einzusetzende @Function, denn sie gibt je nach Kontext jeweils andere Werte zurück.
Beispiele:
- den Inhalt des ersten (
!) Autorenfeldes
- den Inhalt von $UpdatedBy (der mit Vorsicht zu genießen ist)
- den Inhalt des Feldes "From"
- den aktuellen Benutzernamen lt. user.id
Details siehe Designer-Hilfe.
Beispielsweise für Dokumenthistorie sollte diese Formel nicht verwendet werden; aber auch sonst sehen die Autoren von Best Practices keinen Bedarf zur Verwendung dieser @Funktion.
3. Transparenz für AnwenderUm für Anwender die ACL-Einträge übersichtlich darzustellen, kann man das Beispiel in der unten verlinkten Datenbank verwenden.
Dazu einfach die Maske "box_ACL" und die Aktion "ACL-Einträge anzeigen" (in der View 'ACL') in eine beliebige Datenbank kopieren.
Durch klick auf den Button "ACL-Einträge anzeigen" erhält man dann folgenden Überblick:
Über den Button "Copy to clipboard (CSV)" wird die Tabelle in die Zwischenablage kopiert im csv - Format, dadurch ist ein simpler Import z.B. in Excel einfach möglich.
Download der Datenbank:
ACL.nsf