Das Notes Forum
Domino 9 und frühere Versionen => Administration & Userprobleme => Thema gestartet von: eknori am 21.02.02 - 10:40:08
-
Hallo zusammen,
Ich stehe vor dem Problem einige bestehende Datenbanken zu überarbeiten.
Meinem Vorgänger kam es leider nicht in den Sinn, die ACL der Datenbanken dergestalt zu pflegen, daß der Zugriff über Gruppen gesteuert wird.
So habe ich also eine fast endlose Liste von Personeneinträgen. :P
Ich suche eine Möglichkeit, gruppen automatisch anhand der Zugriffsebene zu erzeugen, also alle Editoren in eine Gruppe etc.
Hat irgend jemand so etwas griffbereit. Bin heute ein wenig faul und habe überhaupt keine Lust, so ein Tool zu programmieren. ;D
eknori
-
OK, habe meine Faulheit überwunden und schnell einen Agenten gestrickt. hier das Ergebnis
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesAcl
Dim aclEntry As NotesAclEntry
Dim view As NotesView
Dim doc As NotesDocument
Dim item As NotesItem
Dim userName As NotesName
Dim ZE (0 To 6) As String
Set db = s.CurrentDatabase
Set acl = db.ACL
ZE(0) = "NoAccess"
ZE(6) = "Manager"
ZE(5) = "Entwickler"
ZE(4) = "Editor"
ZE(3) = "Autor"
ZE(2) = "Leser"
ZE(1) = "Archivar"
For i% = 0 To 6
Set doc = db.CreateDocument
Set item = doc.AppendItemValue ("Form", "Group")
Set item = doc.AppendItemValue ("Type", "Group")
Set item = doc.AppendItemValue ("ListName", ZE(i%))
Set item = doc.AppendItemValue ("Members", "")
item.IsNames = True
Set aclEntry = acl.GetFirstEntry
Do Until (aclEntry Is Nothing)
If aclEntry.Level = i% Then
Set userName = New NotesName (aclEntry.Name)
Call item.AppendToTextList (userName.Abbreviated)
End If
Set aclEntry = acl.GetNextEntry (aclEntry)
Loop
Call doc.Save (True, True)
Next
End Sub
in die betreffende Datenbank habe ich aus dem NAB die Ansicht "gruppen" und die Maske "Gruppe" kopiert.
Dann den Agenten Starten und die erzeugten gruppen entsprechend umbenennen und ins NAB kopieren.
;D ;D ;D