Autor Thema: [ACL] ACL-Zugriffsteuerung und Überblick für Anwender  (Gelesen 14218 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
 
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. Inhalt


1. Übersicht ACL-Zugriffsteuerung
2. Besonderheiten
   2.1 Feld $PublicAccess
   2.2 Formel @UserName
   2.3 Formel @Author
3. Transparenz für Anwender



1. Ü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. Besonderheiten

2.1 Feld $PublicAccess

Wenn 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 Anwender

Um 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
 

« Letzte Änderung: 06.11.05 - 14:44:32 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz