Domino 9 und frühere Versionen > ND6: Entwicklung

Userroles - Scriptfehler

(1/2) > >>

wuwu:
Hallo,

habe folgendes Script:

Sub Click(Source As Button)
   
   On Error Goto ErrorHaendler
   
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim db As notesdatabase   
   Dim count As Integer
   
   Set uidoc=ws.CurrentDocument
   Set doc = uidoc.Document
   Set db = doc.ParentDatabase
   
   If  ws.Prompt(Prompt_YESNO,"Neuzuweisung?",_
   "Wollen sie?") = 0 Then
      Exit Sub
   Else
      Dim acl As NotesACL
      Dim entry As NotesACLEntry      
      
      Set acl = db.ACL
      Set entry = acl.GetEntry(session.UserName)
      
      Forall role In entry.Roles
         entryRole = entryRole & role
      End Forall
      
      Select Case entryRole
      Case "[Test]" :
         doc.department_detail = "v_P"

                                ........ usw.

Wenn der User einzeln in der ACL ist funktioniert das auslesen der Rolen, wenn der User aber in einer Gruppe ist bekomme ich in der Zeile :

      Forall role In entry.Roles

die Fehlermeldung: Variable not set.

Wie kann ich die Userrole auslesen wenn der User einer Gruppe angehört?

dirk_2909:
Hallo,

mit 

Set entry = acl.GetEntry(session.UserName)

holst Du einen bestimmten Eintrag in der ACL.

Ich würde über alle Einträge der ACL laufen.
Wenn es ein Namenseintrag ist, kannst Du den Wert direkt mit session.UserName vergleichen.
Wenn es ein Gruppenname ist, musst Du erst aus dem DD alle Members holen und dann jeden einzelnen Member mit session.UserName vergleichen.

Dirk

rar:
Du könntest aber auch mit

Dim rollen As Variant
rollen = Evaluate( "@Userroles" )

die UserRoles des Users in ein Array schreiben und dann damit weiter arbeiten.

dirk_2909:
 :-[  Evaluate habe ich gar nicht in betracht gezogen  :(

Ist natürlich schneller  ;D

wuwu:
Ja, das hab ich auch schon probiert:

Dim rollen As Variant
   rollen = Evaluate( "@Userroles" )
   Msgbox rollen


Fehler: Type mismatch bei Zeile msgbox rollen
Im Debuger zeigt er mir die Rolle von mir an, gibt Sie mir aber nicht aus, warum?

2)
Wie kann ich dann alle Usernamen auslesen von der ACL, auch wenn Sie in einer Gruppe sind?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln