Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mrx am 04.09.03 - 11:33:53

Titel: Benutzerrollen in L.Script abfragen
Beitrag von: mrx am 04.09.03 - 11:33:53
Hallo,

kann mir jemand sagen wie ich in Lotus Script abfragen kann ob der aktuelle Benutzer mitglied einer bestimmten Rolle ist oder nicht?

Also quasi die @IsMember bzw. @IsNotMember funktion nur halt in Lotus Script.

Gruß
Malte.
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: koehlerbv am 04.09.03 - 11:40:45
Bevor Du Dir 'nen Wolf programmierst: Nimm' Evaluate.

Bernhard
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: eknori am 04.09.03 - 11:55:38
mal schnell zusammengezimmert

Sub Click(Source As Button)
   Dim roles As Variant
   
   roles = Evaluate("@UserRoles")
   
   flag = False
   
   Forall r In roles
      If Cstr(r) = "[Support]" Then flag = True
   End Forall
   
   If flag = True Then
      Messagebox "Yip !!", 0+64+0+0,"Error"
   End If
End Sub
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: robertpp am 04.09.03 - 11:56:56
Bitte schön:
   Dim s As New NotesSession
   Dim userName As New NotesName(s.UserName)
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   Set db = s.CurrentDatabase
   Set acl = db.ACL
   user2 = username.Abbreviated
   Set entry = acl.GetEntry(user2)
   
   
   If Not entry Is Nothing Then
      If  Entry.IsRoleEnabled("[admin]" ) Then
         continue = True
      Else
         Messagebox "Sie dürfen keine Dokumente löschen. ", 0, "Fehler"
         continue = False
         
      End If
   End If
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: robertpp am 04.09.03 - 11:58:03
Da ist mir eknori zuvor gekommen!!! ;D ;) :D
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: koehlerbv am 04.09.03 - 11:59:45
Robert, was machst Du, wenn der User nicht namentlich in der ACL drin steht, sondern als Gruppenmitglied ?
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: robertpp am 04.09.03 - 12:03:12
Meinst du vielleicht das ich dann ein problem habe? ??? weiß nicht sag mir was du dann machst? Ist da vielleicht das script von eknori doch besser?
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: koehlerbv am 04.09.03 - 12:06:24
Jo, nur so kann man das lösen (oder durch rekursive Gruppenauflösung über das NAB - das ist dann aber kein Dreizeiler ;-)

Bernhard
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: robertpp am 04.09.03 - 12:41:45
Ist das das gleich wie:

   Dim HasRole As Variant
   
   HasRole = Evaluate( |@IsMember("[top5user]"; @UserRoles)| )
   
   If HasRole(0) <> 0 Then
      Continue = True
   Elseif HasRole(0) = 0 Then
      Msgbox "You don't have permission to this folder.", 0 + 16, "No Access"
      Continue = False
   End If

robert
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: koehlerbv am 04.09.03 - 12:47:57
So geht's auch ;-)
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: robertpp am 04.09.03 - 12:57:08
Na dann mach ich das so wenn der user in einer Gruppe steht!!!! ;D ;D ;D ;)
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: eknori am 04.09.03 - 13:26:25
Dann lass uns das gleich mal in eine Funktion reinpacken

Function UserHasRole ( role As String ) As Variant
   UserHasRole = False   
   Dim varACLRoles As Variant
   varACLRole = Evaluate( |@IsMember("| & role & |"; @UserRoles)| )
   If varACLRole(0) <> 0 Then
      UserHasRole = True
   End If
End Function

die läßt sich dann schön mittels

Sub Click(Source As Button)
   Msgbox UserHasRole ( "[DB-ADMIN]" )
End Sub

aufrufen
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: koehlerbv am 04.09.03 - 13:29:23
Ulrich, hast Du Option Declare nicht gesetzt ?  ;-)

Dim varACLRoles As Variant
varACLRole = ....

;-)
Bernhard
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: ata am 04.09.03 - 13:30:26
... in einigen Anwendungen habe ich mir angewöhnt für jeden User ein Profildokument anzulegen. In ein Listenfeld trage ich die Rollen des Users ein. Damit ist es mir möglich jederzeit über alle Rollenzugehörigkeiten informiert zu sein => sehr nützlich bei Supportanfragen - aber es lässt sich auch sonst überall verwenden...

ata
Titel: Re:Benutzerrollen in L.Script abfragen
Beitrag von: eknori am 04.09.03 - 13:33:56
Ulrich, hast Du Option Declare nicht gesetzt ?  ;-)

Dim varACLRoles As Variant
varACLRole = ....

;-)
Bernhard

upps, *schäm* ; aber das macht den Code natürlich noch einmal eine Zeile schlanker; das Dim kannst du ja dann auch weglassen  ;D