Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Blitz am 24.09.08 - 16:24:05

Titel: USERrolle [Admin] in Lotus Script
Beitrag von: Blitz am 24.09.08 - 16:24:05
Hallo,

habe die Bearbeitung von Dokumenten in der maske für alle User gesperrt.

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   
   Dim session As New NotesSession
   Dim doc As NotesDocument
   Set doc=source.Document
   If Not isnewdoc  Then
      Messagebox ("Dieses Dokument befindet sich im Lesemodus. Änderungen sind nur über den Butten 'Rückantwort' möglich!")
      continue=False
   End If
   
End Sub

Funktioniert auch super.

Allerdings möcht ich die User der Userrolle [ADMIN] hiervon ausnehmen.

Die Formel kenne ich! @If (@Contains(@UserRoles ; "[Admin]");0;1)
Wie mache ich das aber in Lotus Script? Muss es je oben einbauen?

Vielen Dank.

Gruss

Sascha

Titel: Re: USERrolle [Admin] in Lotus Script
Beitrag von: jBubbleBoy am 24.09.08 - 16:29:50
Ich hab mir mal dafür eine Funktion geschrieben:
Code
Function isRoleEnable( Role$, db As notesDatabase) As Integer
	Dim doc As notesDOcument
	Dim Macro$, u
	isRoleEnable = False
	
	Macro$ = |@isMember("| & Role$ & |";@UserRoles) |
	If db Is Nothing Then
		u = Evaluate (Macro)
	Else
		Set doc = db.createDocument	
		u = Evaluate (Macro$, doc)
	End If
	
	If u(0) = "1" Then isRoleEnable = True
End Function
Titel: Re: USERrolle [Admin] in Lotus Script
Beitrag von: eknori am 24.09.08 - 16:34:29
Ein Blick in die DesignerHilfe :

IsRoleEnabled method  der Notes ACLEntry class ist mein Woodoo für so etwas ...
Titel: Re: USERrolle [Admin] in Lotus Script
Beitrag von: Blitz am 24.09.08 - 16:51:02
Vielen dank.

Genau diese Funktion habe ich gesucht.

IsRoleEnabled method 

Funktioniert!

Gruss Sascha

Titel: Re: USERrolle [Admin] in Lotus Script
Beitrag von: koehlerbv am 24.09.08 - 21:52:19
Sascha, das funktioniert NICHT! Das, was Du da machst, ist eine Sperre für Dummuser - und nur für diese!
Nimm Dir einen Nicht-Admin-User, und drücke dann Strg-B (oder Menü: Bearbeiten - Dokument oder ...), und Du wirst sehen, dass QueryModeChange da gar nicht ausgeführt wird.

Im Bord "Best Practices" findest Du hierzu auch noch einen ausführlicheren Beitrag, aber beachte dabei bitte auch das einleitende Kapitel: Mit der puren Nutzung der Events erzeugst Du KEINE wirkliche Sicherheit bei der Verhinderung des Editierens von Dokumenten durch nichtautorisierte Personen!

Bernhard (weit in Deutschlands Norden im Urlaub)
Titel: Re: USERrolle [Admin] in Lotus Script
Beitrag von: Blitz am 25.09.08 - 10:49:36
Hallo,

vielen Dank für den Hinweis. Habe es getestet und war wie von Dir beschrieben!

Werde mal den beitrag lesen

Gruss

Sascha