Domino 9 und frühere Versionen > ND7: Entwicklung
Edit-Rechte auf Dokument per LS überprüfen
koehlerbv:
Auch wahr ;)
Dann kannst Du die Verfahren kombinieren: Die Autorenfelder ermitteln und dann mit Evaluate und *= @UserNamesList verarbeiten.
Bernhard
jo@chim:
Et voilà:
--- Code: ---Function userEditRights(doc As NotesDocument) As Boolean
Forall item In doc.Items
If item.IsAuthors=True Then
userlookup=Evaluate(|@contains(@usernameslist;@explode("|+item.text+|";"; "))|)
If userlookup(0)=1 Then userEditRights=True
End If
End Forall
End Function
--- Ende Code ---
Ganz nackich noch die Funktion, ohne Errorhandling und Behandlung übergeordneter Benutzerrechte (Editor, Manager...) - aber funktioniert.
Danke für den Hinweis mit dem @usernames - da wär ich bei meiner LS-Fixierung wieder nicht draufgekommen :-)
koehlerbv:
Feine Rückmeldung. Danke, Achim.
Drei Vorschläge:
- Option Declare einschalten und Dim userlookup As Variant
- Ordnung und Sauberkeit im Schlachthof: Der Code beginnt (nach dem Deklarationen) mit userEditRights = False
- Kleiner Performance-Kicker:
If Abs (userlookup(0)) = True Then
userEditRights = True
Exit Function 'What the hell we should check without any sense more items ...
End If
Bernhard
jo@chim:
OK, also so (inkl. der Prüfung, ob weitergehende Rechte vorliegen):
--- Code: ---Function userEditRights(doc As NotesDocument) As Boolean
Dim session As New NotesSession
Dim db As NotesDatabase
Dim level As Integer
Dim userlookup As Variant
userEditRights=False
'Prüfung auf Editor-, Designer-, Managerrechte...
Set db = session.CurrentDatabase
level = db.QueryAccess(session.UserName )
If level>3 Then
userEditRights=True
Exit Function
End If
'Prüfung auf Autorenrechte...
Forall item In doc.Items
If item.IsAuthors=True Then
userlookup=Evaluate(|@contains(@usernameslist;@explode("|+item.text+|";"; "))|)
If userlookup(0)=1 Then
userEditRights=True
Exit Function
End If
End If
End Forall
End Function
--- Ende Code ---
Hat das eine besondere Bewandnis damit, dass Du das userlookup mittels ABS umwandelst? Erscheint mir auf den ersten Blick nicht notwendig...
koehlerbv:
--- Zitat von: jo@chim am 22.02.08 - 10:16:48 ---Hat das eine besondere Bewandnis damit, dass Du das userlookup mittels ABS umwandelst? Erscheint mir auf den ersten Blick nicht notwendig...
--- Ende Zitat ---
Ja - dann kann ich mit True arbeiten. Liest sich besser und ist damit wartungsfreundlicher.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln