Autor Thema: Gruppendokumente anhand von Zugriffsebene erzeugen  (Gelesen 1319 mal)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
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

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Gruppendokumente anhand von Zugriffsebene erze
« Antwort #1 am: 21.02.02 - 11:38:08 »
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
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz