Domino 9 und frühere Versionen > Entwicklung
dokument vor änderung schützen ?
Silent_Bob:
ist es möglich einem user, der editor rechte hat, zu verbieten, ein dokument zu verändern, wenn eine bestimmte bedingung erfüllt ist?
ich habe nämlich das problem, dass alle dokumente in einer datenbank nach bearbeitung abgeschlossen werden müssen und danach dürfen sie nicht wieder veränderbar sein. auch nicht durch die user, die editor rechte haben.
wie kann ich sowas lösen?
herzlichen dank
MisterDa:
evtl eine Rolle definieren, mit der man die Dokumente im Ernstfall noch ändern kann.
Dann im Querymodechange eine Abfrage einbauen ob Rolle vorhanden und Kriterium erfüllt..falls nicht, continue = false
Hoffe das hilft :)
Silent_Bob:
oh, da muß ich script für können (!?)
schade. nagut, schau ich mal. zur not muß ichs lernen.
klaussal:
... hier ist sowas:
--- Code: ---Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim ws As New NotesUiWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUiDocument
Dim session As New NotesSession
Dim db As NotesDatabase
Dim evalRG, evalR, evalG, evalW As Variant
Dim RolleRG, RolleR, RolleG, RolleW As String
Dim varReturnRG, varReturnR, varReturnG, varReturnW As Variant
Set uidoc = ws.currentDocument
Set doc = uidoc.document
Set db = session.currentDatabase
Continue = False
RolleG = "[Genehmiger]"
RolleR = "[Redakteur]"
RolleRG = "[RedakundGenehm]"
RolleW = "[WEB-Master]"
evalG = Evaluate("@UserNamesList")
evalR = Evaluate("@UserNamesList")
evalRG = Evaluate("@UserNamesList")
evalW = Evaluate("@UserNamesList")
varReturnG = Arraygetindex(evalG, RolleG)
varReturnR = Arraygetindex(evalR, RolleR)
varReturnRG = Arraygetindex(evalRG, RolleRG)
varReturnW = Arraygetindex(evalW, RolleW)
If uidoc.EditMode Then
Continue = True
Exit Sub
End If
If Isnull(varReturnR) And Isnull(varReturnG) And Isnull(varReturnRG) And Isnull(varReturnW) Then
Msgbox "Sie haben keine Berechtigung zum Bearbeiten !" , 16, "ACHTUNG"
Exit Sub
End If
Continue = True
End Sub
--- Ende Code ---
MisterDa:
Hab das bisschen einfacher gemacht:
Dim uiws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = uiws.CurrentDocument
varAccessTest = Evaluate("@IsNotMember(""[Änderungsrolle]""; @UserRoles)")
If <deine Bedingung> And varAccessTest(0) = "1" Then
Messagebox "Bearbeitung nicht mehr möglich!", MB_OK + MB_ICONSTOP, "Lotus Notes"
continue = False
Exit Sub
End If
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln