Domino 9 und frühere Versionen > ND7: Entwicklung
Dokument für nicht berrechtigte in Editmode=false setzen
Jörg:
Hallo,
ich möchte gerne verhindern, das Personen ohne die
entsprechende Berechtigung (Editorfelder) keine Dokumente öffnen dürfen.
Hierzu habe ich folgendes geschrieben:
--- Code: --- Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim uidoc As NotesuiDocument
Dim doc As NotesDocument
Dim szStatus As String
Dim szStatus_docadmin As String
Dim szStatus_docstatus As String
Dim allowEdit As Integer
Set UIdoc=workspace.CurrentDocument
Set doc=workspace.CurrentDocument.Document
szStatus = source.FieldGetText("UserRoles")
szStatus_docadmin = source.FieldGetText("dcauthors")
szStatus_docstatus = source.FieldGetText("Doc_Freigabe")
If SaveOptions = 0 Then
SaveOptions = 1
End If
'Wenn Doc im Lesemodus, dann Folgecode nicht beachten
' If Source.EditMode = False Then Exit Sub
'Prüfe Statusfeld...
If Instr(1, szStatus, "admin") > 1 Then
' Source.EditMode = True
allowEdit = False
Exit Sub
Else
If szStatus_docadmin="" And Instr(1, szStatus, "admin") > 1 Then
' Source.EditMode = True
allowEdit = False
Exit Sub
Else
If Instr(1, szStatus_docadmin, session.CommonUserName) > 1 Then
' Source.EditMode = True
allowEdit = False
Exit Sub
Else
If szStatus_docstatus="No_Doc_Freigabe" Then
Exit Sub
Else
If Not Instr(1, szStatus_docadmin, session.CommonUserName) > 1 Or szStatus_docstatus="Doc_Freigabe" Then
allowEdit = False
'Call doc.Save( False, False)
Msgbox "The 'edit mode' is not allowed.", 64, "Error"
Exit Sub
End If
End If
End If
End If
End If
--- Ende Code ---
Aber dies will nicht so ganz funktionieren , da ich immer eine Meldung über verschachtelte Ereignisse erhalte.
wo liegt denn hier der Fehler, und wo plaziert man denn diesen Code am besten Querymodechange,postmodechange oder postopen
damit keinerlei Dokumente unbeabsichtigt verändert werden können.
Danke schon mal Gruß Jörg
ZaLudtske:
Hallo,
umdas Öffnen zu verhindern muß der Code in das Event QueryOpen. Das ganze kann aber dann immer noch über den Debugger der allen zur Verfügung steht, umgangen werden.
HTH
Rainer
dirk_2909:
Im Queryopen musst Du dann aber Continue auf false setzen. Schon wird das doc nicht mehr geöffnet.
Wenn Du das im Postopen machst, musst Du ein uidoc.Close machen.
Bei QueryModeChange und PostModeChange ist das Dokument ja schon geöffnet.
ascabg:
Hallo,
Wobei wir dann aber wieder bei dem Punkt angekommen sind, welche Events werden durchlaufen wenn der User STRG + B (STRG + E) betaetigt.
Funktioniert der Code dann immer noch?
Auch ware dieses aus meiner Sicht doch ein schoenes Beispiel fuer Leser- und Autorenfelder.
Andreas
dirk_2909:
bei Strg+B wir auch ein QueryOpen und ein PostOpen durchlaufen. Nur nicht ein QueryModeChange.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln