Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 24.10.03 - 12:42:50
-
Ich würde gerne per Script die Userroles jemanden zuordnen und wieder entfernen um den zugriff zu etwas geben!!
Es wäre auch anders über Lese- und Authorenfelder realisierbar aber ich dachte es müsste ja auch über die acl gehen.
Ich wollte mir dann einen button machen dort klickt man drauf dann hat man die rolle und dann wir etwas ausgeführt und dann entfernt man die rolle wieder.
Geht das?
-
Das wird nix werden: Der User wird kaum Änderungen der ACL vornehmen dürfen, und wirksam wird das auch erst nach erneutem Öffnen der DB etc. pp.
Ein anderer Weg wäre über den Start eines serverbasierenden Agent möglich, der mit einer ID signiert wurde, die die Rolle in der DB hat.
Was willst Du denn konkret machen ?
Bernhard
-
Es wird auch nicht vom user ausgeführt sondern nur von admins. Ich wollte mir einfach das lästige "rechte Maustaste /DB / access control... user auswählen role dazugeben" und das ganze wieder in die andere richtung nach dem testen ersparren.
Sonst nix.....
-
Na, obwohl Bernhard auch hier recht hat, Dein Beispiel ist da ne Ausnahme. Zur Aenderung der ACL braucht es Manager-Rechte. Machen kannst Du das in Script, schau Dir mal die NotesACL-Klasse an.
-
@Semeaphoros:
Das hab ich jetzt auch gemacht nur wie aktualisiere ich jetzt die ACL?
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Set acl = db.ACL
Set entry = acl.GetEntry( "Robert Prinz/MISEBG" )
Call entry.EnableRole( "[noadmin]" )
Call acl.Save
Geht nur in dem ich die db schließe und wieder öffne und jetzt sind wir bei dem 2ten posting: wie schließe ich eine db und öffne sie wieder?
http://www.atnotes.de/index.php?board=7;action=display;threadid=10825
-
Verstehe Deine "Verwirrung" ist hier aber tatsächlich nicht ganz so tragisch wie beim UIView. Das View-Object im UIWorkspace ist eine Systemvariable, da gibts schon mal "abweichendes" Verhalten. Deine DB-Variable ist aber von Dir instanziiert und lässt sich auch wieder dereferenzieren:
DELETE DB
Damit wird die DB auch geschlossen.
A-bär, das passiert nur, wenn sämtliche Referenzen zur Datenbank dereferenziert werden, wenn also die Datenbank irgendwoanders im Client noch offen ist, geht sie nicht wirklich zu. Dass das erst greift, sobald die DB geschlossen ist, liegt daran, dass die ACL vom Server gecached wird, sprich, es dauert halt eine Weile, bis er die Aenderung nachvollzieht.
-
... ich würde das mit unterschiedlichen Test-User-ID's lösen. Dazu erstelle ich mir jeweils eine Arbeitsumgebung. Beim Wechseln der Arbeitsumgebung wechselt auch die User-ID. Jede UserID hat andere Rollen, die ich testen möchte...
... damit bin ich am realistischsten an der Praxis dran...
ata
-
Guter Tip, insbesondere da Robert ja das Script einem Admin zur Verfügung stellen will, der die Rollen dann für einen User ändert, und damit wechselt dann tatsächlich der User. Damit dürfte das Schliessen der DB auch nicht mehr wirklich ein Problem sein.