Domino 9 und frühere Versionen > Entwicklung

Im Delegierungsprofil per LS eine Gruppe hinzufügen

<< < (2/3) > >>

ata:
... ich werde mich der Sache mal annehmen, allerdings wird das heute nichts mehr, denn ich muß mich noch auf ein Konzert vorbereiten - vielleicht am WE...

ata

cococo69:
... wäre bombastisch, wenn das am WE klappen würde, ansonsten muss ich am Montag an ca. 400 Mitarbeiter eine Mail mit Anleitung für die manuelle Pflege senden.

ata:
... wenn, dann am Sonntag...

ata

ata:
... hier wäre die Version mit der Schaltfläche in einer Mail. Der User benötigt Managerrechte in seiner Mail-DB...


--- Code: ---   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docMail As NotesDocument
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim sGroupName As String
   Dim sReturnMailAddress As String
   Dim sThankYou As String
   
   sGroupName = "DeineKalenderGruppe"
   sReturnMailAddress = "info@anton-tauscher.de"
   sThankYou = "Vielen Dank. Der Vorgang wurde erfolgreich abgeschlossen. Dieses Dokument wird geschlossen."
   
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   
   ' # Gibt es die Gruppe bereits in der ACL?
   Set entry = acl.getEntry( sGroupName )
   If Not entry Is Nothing Then      
      Set docMail = db.CreateDocument
      docMail.Form = "memo"
      docMail.Subject = |ACHTUNG: User "| + session.UserName + |" hatte die Gruppe "|+sGroupName+|" bereits eingetragen.|
      Call docMail.Send( False , sReturnMailAddress)
      Msgbox |Die Gruppe "|+sGroupName+|" gibt es bereits... | , 0 , "ACL-Prüfung"
      Exit Sub
   End If
   
   ' # Die Gruppe eintragen mit den erforderlichen Rechten...
   Set entry = acl.CreateACLEntry(sGroupName , 0)   
   entry.IsPublicReader = True
   entry.IsPublicWriter = True   
   Call acl.Save
   
   ' # Jetzt zur Sicherheit noch das Profildokument updaten...
   Set doc = db.GetProfileDocument("CalendarProfile")
   Set uidoc = ws.EditDocument(True , doc)
   Call uidoc.Save
   Call uidoc.Close
   
   Set docMail = db.CreateDocument
   docMail.Form = "memo"
   docMail.Subject = |User: "| + session.UserName + |" hat die Gruppe "|+sGroupName+|" eingetragen.|
   Call docMail.Send( False , sReturnMailAddress )
   
   Msgbox sThankYou
   ws.CurrentDocument.Close
--- Ende Code ---

... den Code in eine Schaltfläche und per Mail an alle betroffenen User versenden...

... es gibt noch die Möglichkeit, den Code in einen Agent einzubauen, der dann auf dem Server gestartet werden muß. ACHTUNG: der Agent muß mit einer ID unterzeichnet werden, die berechtigt ist Änderungen in den ACL's der Maildatenbanken vorzunehmen.

... so in der Art könnte der Agent aussehen


--- Code: ---   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim docMail As NotesDocument
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Dim sGroupName As String
   Dim pathName As String, fileName As String
   
   sGroupName = "DeineKalenderGruppe"
   pathName = "D:\Server5\Lotus\Domino\Data\Mail\*.*"
   fileName = Dir$(pathName, 0)
   Do While fileName <> ""
      Msgbox fileName
      Set db = session.GetDataBase("Celerona/Celerona" , "Mail\"+fileName)
      If db.Isopen Then
         Set acl = db.ACL
         
         ' # Gibt es die Gruppe bereits in der ACL?
         Set entry = acl.getEntry( sGroupName )
         If Not entry Is Nothing Then
            Msgbox |Die Gruppe "|+sGroupName+|" gibt es bereits... | , 0 , "ACL-Prüfung"
            Exit Sub
         End If
         
         ' # Die Grupe eintragen mit den erforderlichen Rechten...
         Set entry = acl.CreateACLEntry(sGroupName , 0)   
         entry.IsPublicReader = True
         entry.IsPublicWriter = True   
         Call acl.Save
         ' # Jetzt zur Sicherheit noch das Profildokument updaten...
         Set doc = db.GetProfileDocument("CalendarProfile")
         Set uidoc = ws.EditDocument(True , doc)
         Call uidoc.Save
         Call uidoc.Close
      End If      
      fileName = Dir$()
   Loop   
   Print "Agent abgeschlossen"
--- Ende Code ---

ata

cococo69:
Hallo ata,

hast Du es doch tatsächlich war gemacht in Sonntagsarbeit mir nicht nur eine sondern gleich zwei Lösungen zu zaubern.....!!!!!!

Ich kann Dir gar nicht sagen, wie dankbar ich Dir bin! Natürlich werde ich es gleich morgen früh ausprobieren und Dich dann wieder informieren.

Bis dahin noch einen schönen Sonntag und nochmal viiiiiieeeeelen Dank!!!!!!!!!!!!!!!!!!!!!

Gruß
Armin

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln