Autor Thema: Dokument für nicht berrechtigte in Editmode=false setzen  (Gelesen 3437 mal)

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
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 

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

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #1 am: 04.03.10 - 12:20:24 »
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
Rainer Zaske

MCSD - C#

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #2 am: 04.03.10 - 12:22:43 »
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.
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #3 am: 04.03.10 - 12:31:05 »
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

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #4 am: 04.03.10 - 12:46:03 »
bei Strg+B wir auch ein QueryOpen und ein PostOpen durchlaufen. Nur nicht ein QueryModeChange.
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #5 am: 04.03.10 - 13:36:46 »
Hi,

danke für die Antworten, ich hätte noch ein Verständnisproblem  ::) ....

Wenn ich dann das Continue auf false setze , wie und wann muss ich denn
dies wieder zurück setzen und gibt es eine Stelle in meinen Code wo es am sinvollsten ist???

Gruß Jörg

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #6 am: 04.03.10 - 13:38:43 »
Gar nicht.
Macht Dein Notes fuer Dich.


Andreas

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #7 am: 04.03.10 - 13:41:49 »
Danke .. dann werde ich mal an loslegen....

Gruß Jörg

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #8 am: 04.03.10 - 13:58:55 »
und schon hängt es bei der Definition der Variable

Code
Set doc=workspace.CurrentDocument.Document

ich denke mal , das dies daher kommt da ich hier auf das UIdoc zugreifen muss, oder????

Gruß Jörg


Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #9 am: 04.03.10 - 14:26:05 »
Wie sieht denn der restliche Code aus und wo hast Du diesen eingebunden?

Vorschlagen wuerde ich jedoch Folgendes.

Code
Dim uiws As New NotesUIWorkspace
Dim doc as NotesDocument

Set doc = uiws.CurrentDocument.Document


Andreas

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #10 am: 04.03.10 - 15:25:30 »
Hi,

klappt nicht...

wie kann cih denn auf die Source Variablen  zugreifen ????

Gruß Jörg

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #11 am: 04.03.10 - 15:39:05 »
Äh. Hast Du da nicht einen grundsätzlichen Denkfehler?
Wenn die User im Editor-Feld stehen, dürfen sie das Dokument sehen und Editieren.
Wen die User das Dokument nicht sehen dürfen, darfst Du sie weder im Reader- noch im Editor-Feld eintragen. Dazu braucht man keinen Code.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #12 am: 04.03.10 - 15:50:09 »
JaNein...
Ich mußte der Lesergruppe hier Editoren-Rechte
geben , damit diese keine fehlermeldung erhalten,da im Hintergrund
Profildocs beschrieben werden.

Bestimmt könte man dies anderes lösen , aber ich weiß nicht wie,
da ich keinen ansatz habe um die Hilfe zu befragen.

Gruß Jörg.

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #13 am: 04.03.10 - 17:48:24 »
Hi,

hab es nun hinbekommen...

Gruß Jörg
« Letzte Änderung: 04.03.10 - 17:55:57 von Jörg »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dokument für nicht berrechtigte in Editmode=false setzen
« Antwort #14 am: 04.03.10 - 18:30:59 »
Jeder User, der etwas Bastelwillen besitzt, kann Dein Konstrukt aushebeln - dieses tazgt schlicht nichts.

Verwende Autorenfelder (und gebe den Usern nur Autor-Rechte), und Du bist auf der wirklich sicheren Seite. Alles andere ist Gefrickel.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz