Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Silent_Bob am 24.06.03 - 11:55:40

Titel: dokument vor änderung schützen ?
Beitrag von: Silent_Bob am 24.06.03 - 11:55:40
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
Titel: Re:dokument vor änderung schützen ?
Beitrag von: MisterDa am 24.06.03 - 12:10:26
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 :)
Titel: Re:dokument vor änderung schützen ?
Beitrag von: Silent_Bob am 24.06.03 - 12:29:59
oh, da muß ich script für können (!?)

schade. nagut, schau ich mal. zur not muß ichs lernen.
Titel: Re:dokument vor änderung schützen ?
Beitrag von: klaussal am 24.06.03 - 12:50:34
... 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
Titel: Re:dokument vor änderung schützen ?
Beitrag von: MisterDa am 24.06.03 - 12:58:31
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
Titel: Re:dokument vor änderung schützen ?
Beitrag von: klaussal am 24.06.03 - 13:01:12
... oder bei OBI  ;)
Titel: Re:dokument vor änderung schützen ?
Beitrag von: MisterDa am 24.06.03 - 13:21:10
oder so..  ;D
Titel: Re:dokument vor änderung schützen ?
Beitrag von: Silent_Bob am 24.06.03 - 14:45:14
ich probier das mal aus.

dankesehr