Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Wiesel am 29.03.06 - 09:16:34

Titel: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: Wiesel am 29.03.06 - 09:16:34
Hallo!

Ich habe eine Ansicht in der so alle Dokumente angezeigt werden.
Diese Ansicht soll für den User aber nur eine Übersicht darstellen.
Der User soll, wenn möglich, nur die Dokumente öffnen können, in denen er auch als verantwortlicher Mitarbeiter erfasst ist.
Bei allen anderen Dokumenten, soll, wenn der User versucht diese zu öffnen, eine Meldung erscheinen, daß er es nicht darf.

Ich habe dazu im Queryopendocument der Ansicht folgende Formel eingebracht:

Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
   Dim session As New NotesSession
   Dim uidoc As NotesUIDocument
   Dim user As String
   user = session.UserName
   If uidoc.FieldGetText("namVerantwMA") <> user Then
      Msgbox "Sie dürfen das Dokument nicht bearbeiten"
      Continue = False
   End If
End Sub

Das mit dem UIDocument war von mir nur ein Versuch. Aber wie Ihr Euch wahrscheinlich denken könnt, hat das nicht geklappt. Und ich weiß nun auch nicht weiter.

Freue mich über Hilfe.

Gruß, Wiesel
Titel: Re: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: ascabg am 29.03.06 - 09:19:55
Hi,

So auf den ersten Eindruck scheint dies wieder ein typischer Fall fuer die schon so oft angesprochenen Leser- und Autorenfelder zu sein.

Andreas
Titel: Re: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: Axel am 29.03.06 - 09:20:28
Du musst die Prüfung innerhalb der Maske machen und nicht in der Ansicht.

Hier gibt's Infos wie man so was machen kann: EditMode für bestimmte Dokumente verwehren (http://atnotes.de/index.php?topic=20455.0)

Die sicherste Alternative sind auf jeden Fall Autorenfelder.


Axel


Titel: Re: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: Wiesel am 29.03.06 - 09:25:38
Ich arbeite mit Autorenfeldern. Also, das Bearbeiten von "unbefugten Mitarbeitern" ist bereits unterbunden.

Es gibt auch Ansichten, in denen jeder nur seine ihm zugeteilten Dokumente sieht.

Aber es soll eben eine Übersicht geben, in der Kerndaten aus den Dokumenten zur Information angezeigt werden. Aber der User soll nur die Informationen, die eben in der Ansicht gezeigt werden, sehen können. Er soll aber nicht in das Dokument reinkönnen, um noch weitere Daten zu sehen.

Kann ich dieses "in das Dokument reingehen" für "Unbefugte" verhindern?
Titel: Re: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: Axel am 29.03.06 - 09:31:27
Die Prüfung muss in diesem Fall im QueryOpen-Event der Maske gemacht werden.

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   
Dim session As New NotesSession
Dim user As String

user = session.UserName
If Source.FieldGetText("namVerantwMA") <> user Then
  Msgbox "Nix da!!"
  Continue = False
End If

End Sub


Axel
Titel: Lösung: bestimmte Dokumente sollen aus der Ansicht heraus nicht aufrufbar sein
Beitrag von: Wiesel am 29.03.06 - 09:43:42
Vielen Dank für Deine Antwort.

Ich habe jetzt im Postopen den Script mit der Anweisung zum Schließen des Dokuments eingebracht:

Sub Postopen(Source As Notesuidocument)
   Dim session As New NotesSession
   Dim user As String
   user = session.CommonUserName
   Dim feld As String
   feld = Source.FieldGetText("txtVerantwMA")
   If feld <> user Then
      Source.close
   Else
      Continue = True
   End If
End Sub

Ist das Ganze im QueryOpen und nur mit "Continue = False" wird zwar die Bearbeitung unterdrückt, aber der User kommt trotzdem ins Dokument.
Das ist bei meinem Script jetzt nicht mehr der Fall.

Gruß, Wiesel