Nachtrag - es wird natürlich eine Prüfung benötigt, ob Autorenfelder vorhanden sind, sonst wird @author in jedem Falle herangezogen. Also hier korrigiert:
Function userEditRights(doc As NotesDocument) As Boolean
Dim session As New NotesSession
Dim db As NotesDatabase
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 der Autorenfelder auf Autorenrechte...
i%=0
Forall item In doc.Items
If item.IsAuthors=True Then
i%=1
userlookup=Evaluate(|@contains(@usernameslist;@explode("|+item.text+|";"; "))|)
If userlookup(0)=1 Then
userEditRights=True
Exit Function
End If
End If
End Forall
'Prüfung auf Autorenrechte, falls keine Autorenfelder vorhanden sind...
if i%=0 then
userlookup=Evaluate(|@contains(@usernameslist;@author)|)
If userlookup(0)=1 Then
userEditRights=True
End If
end if
End Function