Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: MarkusL am 22.11.11 - 10:57:27
-
Hallo zusammen,
ich habe eine Ansicht, in der nur die Dokumente angezeigt werden sollen, bei denen das Feld "NotesName" gleich dem Usernamen des angemeldeten Benutzers ist.
Leider wird mir meistens das letzte bearbeitete Dokument oder gar keins angezeigt. (Ein System kann ich nicht erkennen)
Meine Formel für die Ansicht lautet:
SELECT @Contains(NotesName;@Name([CN];@UserName))
In den Eigenschaften der DB habe ich den Punkt "So zeigen, wie vom Benutzer zuletzt verlassen" deaktiviert.
Wo liegt mein (Denk-) Fehler?
Gruß Markus
-
Es steht auch in der DesignerHelp: @UserName kann in Ansichten nicht verwendet werden.
Die Ansicht wird vom Domino aufgebaut. Und den interessiert irgendein entfernter @UserName nicht die Bohne - wie auch.
Bernhard
-
Danke an Bernhard für die schnelle Antwort.
Kannst du mir denn noch einen Ansatz geben, wie ich meine Ansicht dann so aufbaue, dass der Benutzer nur das Dokument angezeigt bekommt, welches für ihn ist.
Hintergrund:
In dieser DB werden in Zukunft für alle Benutzer Daten abgefragt. Aber jeder Benutzer soll nur seine eigenen Daten sehen. In der Ansicht werden schon einige Daten mit angezeigt, daher wollte ich die Filterung schon auf Ansichtsebene durchführen.
Gruß
Markus
-
Dafür verwendet man Autoren- oder Leserfelder.
Bernhard
-
@Bernhard: Danke für die Info.
Aber das löst nicht mein Problem, dass einem Benutzer nur sein Dokument angezeigt werden soll. Ich müsste ja trotzdem abfragen, wie der Benutzer heißt. Oder?
Es soll so sein, dass wirklich nur das passende Dokument in der Ansicht angezigt wird.
Markus
-
Der Vollständigkeit halber seien auch noch persönliche Ansichten genannt (gemeinsame Ansicht, bei erster Nutzung persönlich), bei denen @Username verwendet werden kann. Natürlich gibt es dabei auch wieder Nachteile, z.B. die Updatefähigkeit.
Hauptfrage ist, wie so oft, was Du erreichen willst.
Dürfen andere Benutzer die Daten nicht sehen, musst Du die Dokumente mit Leserfeldern schützen, willst Du nur der Übersichtlichkeit wegen eine Steuerung realisieren (z.B. Ansicht "Meine Dokumente"), aber alle sollen grundsätzlich alles sehen können, sind Leserfelder kontraproduktiv.
-
Aber das löst nicht mein Problem, dass einem Benutzer nur sein Dokument angezeigt werden soll. Ich müsste ja trotzdem abfragen, wie der Benutzer heißt. Oder?
Du weißt nicht, was Leserfelder sind? Das solltest Du unbedingt nachlesen. Kurz zusammengefasst: Nur wer im Leserfeld steht (Username, Gruppe, Rolle), darf das jeweilige Dokument sehen.
Wenn Du mit sowas arbeitest, vergiss niemals die Server !!
-
Danke Peter.
Ich habe bisher gedacht, dass Leserfelder erst dann greifen, wenn das Dokument geöffnet wird.
Aber wenn diese schon in einer Ansicht greifen, dann komme ich wohl weiter.
Danke erstmal.
Gruß Markus
-
Hallo,
Um es noch ein wenig mehr zu verdeutlichen, hier noch ein kleiner Auszug aus der Designer-Hilfe.
Erstellen Sie ein Leserfeld in der Maske, um den Zugriff auf bestimmte mit einer Maske erstellte Dokumente einzuschränken. In einem Leserfeld werden Benutzer einzeln aufgeführt, die über Leserechte für mit einer Maske erstellte Dokumente verfügen. Ohne Leserzugriff auf ein Dokument können Benutzer das Dokument in einer Ansicht nicht sehen.
Andreas
-
Genau genommen greifen die Leserfelder auch nicht erst in der Ansicht. Dokumente, die Du nicht lesen darfst, kannst Du nirgendwo lesen, weder über eine Ansicht, NotesDocumentCollection oder was sonst auch. Die Dokumente sind schlicht nicht da (bzw. wenn Du eines z.B. über die ID im Script greifen kannst, hat es keine Items). Deshalb ist es auch wichtig, wie schon gesagt, an die Server zu denken. Zwei replizierende Server, die die Dokumente nicht lesen können, löschen diese.
Natürlich trägst Du niemals Servernamen hart ein, entweder verwendest Du eine Gruppe oder eine Rolle, denn die nächste Serverumbenennung kommt schneller, als Dir lieb ist.
-
Hi,
und die Admins nicht vergessen.
Wir nehmen da gerne die Rolle [Administration], die bekommen die Server und die Admins.
-
Hallo,
nur mal eine ganz allgemeine Frage.
Was würde denn gegen eine eingebettete Ansicht in einer Maske sprechen?
Erste Spalte der Ansicht = NotesName (ich nehme mal an, dass dies ein Feld in den Dokumenten ist)
Show single category = @Username
-
Hallo Christian,
dazu müsste sich der Threadersteller äussern. Bisher wissen wir nur: Jeder soll nur sein eigenes Dokument sehen. Und dann bräuchte man nun alles andere als eine embedded view oder eine persönliche Ansicht (die ja eh sehr viel weiteres Know-Hoff benötigt, wenn man sie ersetzen will).
Bernhard
-
... ich denke es geht um eine Ansicht, in der man nur seine relevanten Dokumente sehen kann - und das wäre die eingebettete Ansicht mit ShowSingleCategory
Toni
-
Toni, eigentlich hat sich Markus recht eindeutig geäussert:
Aber jeder Benutzer soll nur seine eigenen Daten sehen.
Und dabei hilft eine embedded single category nicht weiter, er würde ja auch ganz einfach auf anderem Wege die anderen Dokumente sehen können - sofern es eben keine Leserfelder gibt.
Bernhard
-
Eindeutig wäre es für mich, wenn er geschrieben hätte:
Jeder Benutzer DARF nur seine eigenen Daten sehen
Bei SOLL kann es auch nur eine Benutzersteuerung sein. Jeder darf alles sehen, aber (zur Übersichtlichkeit) soll er (z.B. in einer speziellen Ansicht) nur seine Dokumente sehen.
Ohne den konkreten Fall zu kennen, ist der Interpretationsspielraum doch recht groß.
-
Das sehe ich auch so. In Post #12 habe ich ja auch extra einleitend darauf hingewiesen.
Bernhard
-
... wir werden sehen - falls Markus wieder aus der Versenkung tritt ;)