Domino 9 und frühere Versionen > Entwicklung

dokument vor änderung schützen ?

(1/2) > >>

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