Ansichten einschränken

  • Ich habe eine Ansicht, die in der Ansichtsauswahl


    SELECT (@Contains(Initiator; @Name([Abbreviate];@UserName)))


    enthält. (Initiator ist ein berechnetes Feld, das beim Anlegen mit @Name([Abbreviate];@Username) gefüllt wird.


    Aktualisiere ich nun die Ansicht im Designer werden nur Dokumente angezeigt, die von mir erstellt wurden.
    Versuche ich das gleiche in der Datenbank (NotesClient statt Designer) zeigt mir die Ansicht weiterhin ALLE Dokumente.
    Wieso geht das im Designer, in der DB aber nicht?

  • Hi,


    die Funktion @Username sollt nicht in gemeinsamen Ansichten verwendet werden.


    Auszug aus der Designer - Hilfe:


    @UserName sollte nicht in einer öffentlichen Ansicht verwendet werden, da dies nicht vorhersagbare Resultate ergeben kann. Dasselbe gilt für den Fall, daß sich der Inhalt des Feldes ändert, auf das Sie sich beziehen, weil zunächst der Index aktualisiert werden muß, damit die neue Information verwendet werden kann.



    Axel

  • Wie kann ich das Problem dann lösen?


    Weder Leser/Autorenfelder noch eingeschränkte Ansichten funktionieren...


    Nochmal ne Zusammenfassung was ich brauche:


    Ich habe eine Datenbank in der jeder Nutzer Dokumente erstellen kann.
    Dabei werden 2 Namen in das Dokument eingetragen:


    Feld Initiator enthält den Usernamen des Erstellers
    Feld Chef_Name den Namen des Chefs (wird aus einer anderen Datenbank mittels @DBlookup eingefügt.


    Aus Gründen der Datensicherheit sollte nun ein Nutzer nur dann die Dokumente sehen können, wenn er


    a) es aufgrund seiner Stellung (Rolle oder Editorrecht in der ACL) eh darf
    b) er der Ersteller (Feld Initiator) oder Chef (Feld Chef_Name) ist.


    Meine bisherigen Lösungsversuche:


    Eintrag der beiden Felder in ein Feld Autoren:


    Dies führt dazu das ich als DB-Manager nicht mehr auf die Dokumente komme und selbst der Ersteller nicht mehr bearbeiten kann.


    Wechsel des Feldtyps (beide Felder) von Text nach Autoren:


    gleiche Symptome, ich kann zwar lesen aber nicht mehr bearbeiten, selbst bei neuen!!!! Dokumenten.


    Erstellen von eingeschränkten Ansichten, die nur Dokumente enthalten, die der derzeitige Nutzer erstellt hat


    Hier habe ich folgende Versionen erfolglos probiert:


    Select (@Contains)-Anweisung für das feld Initiator bzw auf @Author mit dem derzeitigen Nutzer @Username.
    Dies geht laut der Antwort auf meinen Thread nicht.



    Jetzt fällt mir nichts mehr ein....


    Wie schütze ich die Dokumente?
    Weiss einer wieso das mit den Leserfeldern nicht funktioniert?

  • Hi,


    dein Problem ist eine klasissche Anwendung für Leser- und Autorenfelder. Denn nur mit diesen Feldern ist das Problem sauber zu lösen.


    Bei Autorenfelder darf nur derjenige das Dokument bearbeiten der, das Recht Autor hat und in diesem Feld vorhanden ist. Jeder der das Recht Editor und höher (also auch Manager) hat darf auch ohne, dass er in dem Feld vorhanden ist das Dokument bearbeiten.


    Bei Leserfelder ist das ein bisschen anders. Hier ist etwas mehr Vorsicht angesagt. Nur wer hier drin steht darf das Dokument lesen, egal ob Manager oder Leser. Die beste Lösung hier, man tägt den Datenbank - Manager oder die Manger-Gruppe (oder Rolle) fest ein.


    Wenn mehrere Einträge enthalten sind müssen Mehrfachwerte zugelassen werden.


    Ich habe schön öfters mit Leser- und Autorenfeldern gearbeitet und nie Probleme gehabt.


    Axel

  • Ich hab folgende Probleme:


    1. In welchem Format sind die Leser/Autorenfelder zu befüllen?
    2. Wie trenne ich zwei Einträge, die aus Feldern kommen? (beide Felder sind berechnet bzw berechnet beim Anlegen, nun will ich im richtigen Leserfeld als Wert: Feld1 und Feld2 haben, Mehrfachwerte sind erlaubt, wie trenne ich die beiden Werte?)
    3. Wie komm ich an als Manager an Dokumente, in denen ich nicht im Leserfeld stehe?

  • Hallo Mike,
    zwei Fragen kann ich Dir beantworten weil ich im Moment auch ein wenig in diesem Thema bin.
    Der Feldtyp von Leser- und Autoren-Feldern ist AUTOR und wird entweder durch Funktionen, Felder oder Text in Anführungsstrichen gefüllt. Bei mehreren Einträgen wird durch einen Doppelpunkt getrennt.
    Desweiteren habe ich dasselbe Problem wie Du bei Ansichten. Ich möchte in einer Ansicht nur die Dokumente anzeigen lassen, in deren Autor-Feld der angemeldete Benutzer enthalten ist. Der Vergeliech mit @UserName soll ja in öffentlichen Ansichten nicht korrekt funktionieren, was ich bestätigen kann - es werden z.B. teilweise Ergebnisse angezeigt, die der letzte Benutzer dieser Ansicht bekam!
    Gibt es eine Alternative oder einen andere Lösung für die Funktion @UserName in öffentlichen Ansichten?

  • schueppi


    Zitat


    Gibt es eine Alternative oder einen andere Lösung für die Funktion @UserName in öffentlichen Ansichten?


    Ich kann es nur noch einmal sagen -> Leserfelder !!
    Derjenige der im Leserfeld steht, kann das Dokument sehen und sonst niemand.


    @DaMike


    Wenn du nicht im Leserfeld stehst hast du Pech. Es gibt keine, mir bekannte, Möglichkeit das zu umgehen.


    Axel

  • Da gibt es in den Ansichtseigenschaften ein Register (mit dem Schlüssel), indem man nur bestimmten Usern Zugriff auf die View geben kann!


    grüße


    thomas

  • Die lösung deines problem ist viel einfacher als du denkst, erstelle einen ansicht vom typ Gemeinsam Privat bei erste nutzung. Damit wird jeder person diese ansicht selber aufbauen, und damit wird den @username funktionieren ohne problemen. Hierbei solltest du aber dran denken das dieses für extern viele ansichten (je nach benutzer zahl) führen kann auf den server, und wenn die benutzer dieses NUR aus einem arbeitsplatz aus nutzen (keine wechselnde arbeitsplaätze also) dann solltest du die ansichten in der Desktop speichern (an gleiche stelle den option anklicken). Ansichten solche art können dein server extrem viel speicherplatz kosten, je nachdem wieviele anwender und wieviele dokumente da sind.
    Ausserdem gibt es bei solche ansichten aktualisierungs problemen, weil die beim anwender liegen und dessen "privat" eigentüm sind, wird eienn gestaltungsänderung sich bei den nicht auswirken. Dafür mußte mann im POSTOPEN der DB ein stückchen script schreiben der den privaten ansicht wieder löschen könnte wenn einen gestaltungsänderung dieses erforderlich machen würde. Wenn es mal soweit kommt, kannst du mich nochmal fragen...

  • Also lass dir von keiner erzählen das lesernamen absolut sind, da gibt es verschiedene wegen als gute admin/entwickler um trotzdem an solche dokumente dran zu kommen, es gibt in N6 schliesslich sogar eine extra einstellung als Super Administrator den die dingen einfach ignorieren kann. IN R4 & 5 sind solche dingen mit einfache mitteln (aber MIT entsprechenden berechtigung am server) möglich.

  • Hallo Ronka,


    habe genau das Problem mit privaten Ansichten. Jedesmal, wenn ein neues Dokument hinzukommt, muss man erst die Ansicht manuell löschen, damit das Dokument in der Ansicht erscheint. Mit welchem Script kann ich über POSTOPEN die private Ansicht wieder löschen?


    Vielen Dank im Voraus


    Gruß


    Martin

  • Also Ansichten sind dynamisch, und sollten diese verhalten NICHT am tage legen, bist du nicht über ein Ordner am reden ?
    Und ein privaten ansicht löschen per script ist nicht so einfach... weil beim suchen danach findet er erst den "versteckten" gemeinsamen.. und den kannst du nicht löschen.


    Vielleicht liegt das problem auch wo anders. Hat der anwender das recht ansichten zu erstellen ? Diese parameter sorgt nämlich in gegensatz zu dessen beschreibung nicht für das recht OB, sondern nur für den WO der erstellung. Mit rechte dann auf den server, ohne rechten dann lokal.


    Übrigens mittels Shift-F9 sollte der Inhalte einen Ansicht auch erneurt werden.

  • Um sich selbst nicht auszusperren, kann man auch zwei Leserfelder anlegen.
    Eines mit der Userrolle der Manager und eines, das User enthält.


    Gruß
    Bonzai

  • Ronka:

    Zitat


    Ausserdem gibt es bei solche ansichten aktualisierungs problemen, weil die beim anwender liegen und dessen "privat" eigentüm sind, wird eienn gestaltungsänderung sich bei den nicht auswirken. Dafür mußte mann im POSTOPEN der DB ein stückchen script schreiben der den privaten ansicht wieder löschen könnte wenn einen gestaltungsänderung dieses erforderlich machen würde. Wenn es mal soweit kommt, kannst du mich nochmal fragen...


    Ja genau das brauche ich jetzt! Wie geht das?

  • Ausserdem habe ich noch ein schweres Problem:


    Ich habe in eine Datenbank nachträglich eine Benutzerverwaltung eingebaut und diese mit Rollen realisiert.
    In den sichtbaren Ansichten ist ja auch alles in Ordnung, daber sobald ich mit @DBLookup oder @DBColumn arbeite habe ich wieder alle Dokumente.
    Das darf nicht sein und um alle Änderungen vorzunehmen die ich bräuchte um das "zu Fuß" zu realisieren fehlt mir die Zeit.


    Kann ich da irgendwas tun? Ich müsste sonst ca 150 Formeln und 15 Ansichten ändern und dann noch ein paar Tage debuggen um das wieder zum Laufen zu bekommen.


    HILFE!

  • Wenn es um kategorisierte ansichten geht, dann hast du kaum einen chance etwas anderes zu machen als selber filtern, sonnst kannst du mittels dblookup ( . . . . key, spalte) auch nur teile greifen..

  • Nein, die Ansichten in denen ich mit @DBLookup suche sind nicht Kategorisiert, nur ist der Schlüssel möglicherweise gleich, da sich die Abteilungen nicht sehen und vorraussichtlich teilweise die gleichen Nummern verwenden.
    Das ist auch schlecht zu umgehen, da es sich um Projekt und Produktnummern handelt und der Support die Produkte betreut die die Entwicklung entwickelt.


    Was ist mit den Privaten Ansichten bei erstbenutzung? Kannst Du da helfen wegen Gestaltungsaktualisierungen?


    Danke!

  • Ok, das erste Problem ist gefixt. Da hatte ich mich sebst reingelegt.


    Was mir noch fehlt ist die Gestaltungsaktualisierung der privaten Ansicht