Autor Thema: Benutzerrollen in L.Script abfragen  (Gelesen 2879 mal)

Offline mrx

  • Junior Mitglied
  • **
  • Beiträge: 73
  • Ich liebe dieses Forum!
Benutzerrollen in L.Script abfragen
« 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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #1 am: 04.09.03 - 11:40:45 »
Bevor Du Dir 'nen Wolf programmierst: Nimm' Evaluate.

Bernhard

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #2 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #3 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
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #4 am: 04.09.03 - 11:58:03 »
Da ist mir eknori zuvor gekommen!!! ;D ;) :D
« Letzte Änderung: 04.09.03 - 11:58:41 von robertpp »
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #5 am: 04.09.03 - 11:59:45 »
Robert, was machst Du, wenn der User nicht namentlich in der ACL drin steht, sondern als Gruppenmitglied ?

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #6 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?
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #7 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

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #8 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
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #9 am: 04.09.03 - 12:47:57 »
So geht's auch ;-)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #10 am: 04.09.03 - 12:57:08 »
Na dann mach ich das so wenn der user in einer Gruppe steht!!!! ;D ;D ;D ;)
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #11 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #12 am: 04.09.03 - 13:29:23 »
Ulrich, hast Du Option Declare nicht gesetzt ?  ;-)

Dim varACLRoles As Variant
varACLRole = ....

;-)
Bernhard

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Benutzerrollen in L.Script abfragen
« Antwort #13 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
« Letzte Änderung: 05.09.03 - 10:15:31 von Don Pasquale »
Grüßle Toni :)

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re:Benutzerrollen in L.Script abfragen
« Antwort #14 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
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