Function DE Version 2.97

@SetACL

ACL Database NotesAdmin NotesSystem

Syntax

@SetACL(NOTESPATH;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES);
@SetACL(DBHANDLE;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES);
@SetACL(NOTESPATH;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES;FLAGS);
@SetACL(DBHANDLE;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES;FLAGS);

Beschreibung

Schreibt die ACL die durch PARAMETER2-5 beschrieben wird in die Datenbank mit dem DBHANDLE DBHANDLE.
Es muß in dieser ACL immer mindestens ein Eintrag mit ACL-LEVEL=6 enthalten sein.
Der APIEngine-Server der die ACL schreibt muß Manager-Access auf die Datenbank in die die ACL geschrieben werden soll haben.
(Wenn lokal geöffnet, also ohne Server-Namen vor dem NOTESPath der Datenbank, ist dies immer der Fall.)
@SetACL gibt entweder 1 (NUMBER) oder einen Fehler zurück.

TEXT/TEXTLIST USERNAMES:
Die ACL-Names-Einträge .

FN/FNLIST USERLEVELS:
Der zugehörige ACL-LEVEL.

TEXT/TEXTLIST USERPRIVILEGES:
Die Privilegien und ACL-Flags des jeweiligen Users. Die einzelnen Previlegien bzw. ACL-Flags werden durch Kommata getrennt.
Die ersten 5 ACL-Privileges sind für pre Notes V3 Datenbanken reserviert.
Diese können zwar weiterhin hierüber abgefragt werden und über die Engine grundsätzlich auch gesetzt werden, sollten aber nicht mehr verwendet werden (legacy support only!).

Rollen/Previlegien:
1-5   pre V3 Privileges
6-80 >V3 Roles

ACL-Flags:
ACC Author Can Create new documents
CPA Create Personal Agent erlaubt
CPF Create Personal Folder/View erlaubt
CD Can Delete (bei einem Level >= Author)
CF Create Folder erlaubt
CLS Create Lotus Script erlaubt
ASRV Admin-Server Eintrag
SRV Server Eintrag
PRS Personen Eintrag
GRP Gruppen Eintrag
RPD Read Public Documents
WPD Write Public Documents
MDA Der Benutzer kann keine monitors für diese Datenbank registrieren
NRC Der Benutzer kann diese Datenbank weder kopieren noch replizieren
ARA Der Admin-Server kann Reader- oder Author-Felder modifizieren

TEXT/TEXTLIST PRIVILEGESNAMES:
Die Privilegien Namen.
Die ersten 5 dieser Liste sind für die pre V3 kompatiblen Previlegien reserviert.
Das jeweilige Element dieser Liste gehört zum jeweiligen Previleg. Der Name zu Previlge Nummer 8 findet sich hier also im achten Element. Ungenutzte Previlegien müssen hier durch Leer-Elemente belegt werden.

FN FLAGS:
1   Erzwinge einheitliche ACL über alle Repliken.

FN ACL-LEVEL:
6=Manager
5=Developer
4=Editor
3=Author
2=Depositor
1=Reader
0=No Access

Beispiel: @SetACL(DBHANDLE;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES);

DBHANDLE:=@OpenDB("TEST.NSF");
USERNAMES:="Manager":"-Default-";
USERLEVELS:=6:0;
USERPRIVILEGES:="1,2,3,4,5":"";
PRIVILEGESNAMES:="P1":"P2":"P3":"P4":"P5";

Err:=@SetACL(DBHANDLE;USERNAMES;USERLEVELS;USERPRIVILEGES;PRIVILEGESNAMES);

@LogReport(Err);

DBHANDLE:=@CloseDB(dbh1);

Es wird eine ACL mit einem Manager mit dem Namen "Manager" und den ersten fünf Privilegien sowie mit dem Default-Access No Access (kein Zugriff) angelegt.

Die Privilegien haben die Namen:
Privileg 1 = "P1"
Privileg 2 = "P2"
Privileg 3 = "P3"
Privileg 4 = "P4"
Privileg 5 = "P5"