UserRechte und Tricks

  • Hallo!!


    Ich hätt da mal ne Frage :-?
    Bei meiner DB ist es so geregelet, dass User Sachen dort eintragen und an den Admin schicken. Die User sollen aber Dokumente von anderen Usern und ihre eigenen nicht mehr einsehen dürfen. Dazu hab ich dann Rollen angelegt, mit denen Ich die Sicht auf bestimmte Bereiche innerhalb des DOkumentes verhindere. (@IsMember......)


    So dann habe ich den Usern die Rechte eines Einlieferers erteilt ( Über die Eigenschaften der DB, Zugriffskontrolle) und ihnen verboten öffentliche Dokumente zu lesen, erstellen ist aber möglich.


    So das ganze funktioniert auch ganz gut.


    ABER: Das Dokument, was von einem der Normalen User ohne leserechte ZULETZT erstellt wurde, soll sich anhand einer Recht simplen, in diesem Beitrag bereits heiß diskutierten laufsumme an oberste stelle anordnen. ( Mir ist klar das ich dafür gleich wieder einen rüberkrieg aber da muss ich durch ). Nun entzog sich aber meiner Kenntnis, dass für User ohne LEsezugriff, auch immer kein Dokument in der Ansicht befindet, also wird immer die 1 als nummer vergeben.


    So nun zur Frage: Gibt es eine Möglichkeit, Ansichten für bestimmte Rollen zu verstecken, nicht sichtbar zu machen, ohne das der Zugriff darauf verweigert wird ? also, das die Formel für die Vergabe des laufwertes nicht immer 1 ausgibt, sondern erkennt, das dort schon dokumente vorhanden sind, obwohl der User sie nicht sehen darf ?


    Glaubt mir, dieser Post ist meine Letzte möglichkeit, Ich hab forensuche und google ausgereizt.


    Und ja ich weiß, einen Laufwert zu verwenden findet ihr nicht gut etc. etc. :) und ja "ihr habt es mir vorher gesagt" :-p.
    Seh ich ja alles ein, aber nun such ich eben nach einer anderen Möglichkeit. Mittlerweile bin ich auch soweit, das es mir reichen würde, wenn iche s hinbekomm, das es einen Agenten oder sonst etwas gibt, der es schafft Dokumente in einer Ansicht zu zählen und den Wert in die Datenbank schreibt, wenn es nicht möglich ist, der Formel mitzuteilen das dort dokumente vorhanden sind.


    DANKE =)

    • Offizieller Beitrag

    Ansichten verbergen ohne den Zugriff einzuschränken geht, indem Du den Namen der Ansicht in Klammern () setzt.


    ABER!!!!
    Der User braucht mind. Leserechte auf die Dokument (ACL - Leser, und ggf. über ein Leserfeld im Dokument). Also da mit ist es eine schlechte Idee dies so zu lösen.


    Dürfen in der laufenden Nummer lücken sein?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • jagut das mit der klammer ist mir bekannt, aber dann isst das ja auch für die Admins unsichtbar, also für JEDEN, aber die Rolle der admins benötigt den zugriff auf diese ansichten.
    und japp in der laufenden Nummer dürfen lücken sein.

    • Offizieller Beitrag

    STRG + SHIFT + rechte Maustaste auf die Kachel


    oder


    STRG + SHIFT + Menü Datei - Datenbank - gehe zu


    oder


    über eine Gliederung, dort kannst Du auch geklammerte Ansichten anzeigen lassen und die Punkte per HW-Formel verbergen


    Gruß
    Dirk


    %edit
    muss im 1. Punkt natürlich die linke Maustaste sein

  • könntest du mir bitte die 2 möglichkeiten mit strg + shift etwas genauer erklären ?


    und das mit der Hide when formel hab ich auch schon gehört, schade dabei ist ja nur, das ich dann meinen Navigator wegschmeißen kann ;P


    aber bisher hab ich hide when nur über die eigenschaften der paragraphen hinbekommen, wo ich nur die bedingung eintragen musste, in meinem fall in etwa so :


    Code
    !(@IsMember("[Administratoren]");@UserRoles;))


    nun würde ich mich fragen, wie ich das hide when in einer Formel darum bastel ?

  • Wenn du bei gedrückt gehaltenen Tasten STRG & SHIFT rechte Maus auf die Kachel machst -> DB -> Gehe zu ,
    werden dir auch die versteckten Ansichten angezeigt.
    Dies können dann die Admins nutzen... oder alle, die es kennen.


    Gruß Steffen

    [color=0000CC]"Wir können Probleme nicht mit dem Denken lösen,
    das zu ihnen geführt hat." ( A. Einstein )[/color]

    • Offizieller Beitrag

    wenn Du Navigatoren hast fällt 1. Möglichkeit aus.


    Also
    - Kachel markieren
    - STRG + SHIFT drücken und festhalten
    - rechte Maustaste auf die Kachel
    - im Menü "Datenbank" und im Untermenü "Gehe zu ..." anklicken
    - im Dialog Ansicht in Klammern auswählen
    - Schaltfläche "OK" benutzen
    - jetzt erst STRG + SHIFT loslassen
    und die DB ist in der Ansicht offen.


    Warum Navigator wegschmeißen? Mach doch dort einen Eintrag, der einen Formel ausführt @Command([OpenView]...)
    und für diesen Eintrag versiehst Du mit einer HW-Formel, die die Rolle auswertet.


    Gruß
    Dirk

  • Ergänzung, für die, die rechte Maus nicht mögen:


    Man kann bei gedrückten Tasten auch über das Menü gehen:
    Ansicht -> Gehe zu..


    Gruß Steffen

    [color=0000CC]"Wir können Probleme nicht mit dem Denken lösen,
    das zu ihnen geführt hat." ( A. Einstein )[/color]

  • okay das hab ich =)


    hab die sache mit @command[openview] ist mir noch neu. bedeutet das, dass ich das direkt auf jeder ansicht anwende ? oder auf dem navigator ansich ?


    ich hab bei mir nun 1 navigator mit insgesamt 15 Ansichten.
    User sollen absolut keine Ansicht sehen und admins sollen alle ansichten haben, ( Die User sollen eben nur schreiben und nicht verändern dürfen) Ich habe nämlich nachgelesen, das es nahazu unmöglich ist navigatoren zu verstecken, womit ich leben könnte, solange die user die ansichten ( Über buttons im navigator gesteuert) nicht einsehen könnten.und wie bekomme ich die HW Formel hin ?


    könntet ihr mir da ein syntaktisches Beispiel geben ?

  • Zitat


    Bei meiner DB ist es so geregelet, dass User Sachen dort eintragen und an den Admin schicken. Die User sollen aber Dokumente von anderen Usern und ihre eigenen nicht mehr einsehen dürfen. Dazu hab ich dann Rollen angelegt, mit denen Ich die Sicht auf bestimmte Bereiche innerhalb des DOkumentes verhindere. (@IsMember......) ...
    ... ( Mir ist klar das ich dafür gleich wieder einen rüberkrieg aber da muss ich durch )...


    Jo, da musst Du durch. Und auch wenn Du jetzt wieder sagst, ich sei so negativ - es geht ja nicht anders.


    Lass doch einfach das Gewurschtel. Verwende Leserfelder (genauer: READ ACCESS Items). Damit ist sichergestellt, dass nur noch dedizierte User (Server / Admins nicht vergessen, aber das findet sich ja sackweise in den Foren) Dokumente lesen könne. Dein "Ausblenden" bringt gar nichts - das kann man derart einfach umgehen ...
    Wegen Deiner Nummern: Wenn es Nummern sein müssen, dann lass das einen serverbasierenden Agent erledigen. Wenn das Teil nur "oben" landen soll, dann nimm was intelligentes (Erstell-Zeitpunkt, Ansicht entsprechend sortiert).


    Wenn ich jetzt doch was überlesen habe, lass es uns bitte wissen. Ich korrigiere mich dann gerne. Aber das, was Du da treibst, läuft völlig ohne Zweifel in eine vollkommen falsche Richtung. SO wirst Du nicht froh.


    Bernhard

  • also. du musst bedenken,dass du besser und länger in der materie bist als ich. Ich kenne noch nicht alle möglichkeiten von der Notes Programmierung, daher stelle ich ja diese Fragen, um mich da besser zurechtfinden zu können und bin für jeden Hinweis oder Hilfe dankbar.


    Es geht nich wirklich darum, dass die Dokumente eine Nummer bekommen, es geht eher darum, dass ich einen Zähler habe, ich bin mir sicher dass man einen Agenten schreiben kann, der die Dokumente innerhalb einer Datenbank zählen kann, dann stand ich aber vor dem Problem, dass dieser Wert nicht in der Datenbank steht. Denn ich habe vor diese Datenbank extern auswerten zu lassen. Und da ich mehrere Masken habe, die unabhängig voneinander operieren in der selben Datenbank, hab ich mir eben gedacht, dass ich Dokumenten innerhalb einer Maske Nummern vergebe, um später die Anzahl der Dokumente, die mit dieser Maske erstellt wurden zählen zu können und somit in ein Verhältnis zueinander setzen kann.


    Natürlich könnte ich die dokumente auch im statement der abfrage rausfinden ( Select Count(...) from) oder Select (Sum(...)from ) aber das würde mich nicht in notes voran bringen.

  • Unter diesen Umständen (Du brauchst die Nummer nicht sofort für die User) lass es - wie beschrieben - doch einen Agent machen, der periodisch auf genau einem Server läuft. Dann (!) bekommst Du bestimmt keine Probleme und erreichst Dein Endergebnis. Und das noch mit minimalem Aufwand.


    Bernhard

  • Wenn du die Anzahl der Dokumente tatsächlich nur zur Anzeige in einem View brauchst kannst du das sogar ohne Agenten machen, indem du in einem View alle Dokumente aufnimmst (also per SELECT) die gezählt werden sollen und eine Spalte mit dem fixen Wert 1 erstellst und bei dieser die Summenoption aktivierst.


    Allerdings hast du damit nur eine Anzeige, die du allerdings auch exportieren oder über Script ansprechen kannst

  • Da fällt mir gradfe noch was ein... in der DB müssen die USer ja eigentlich nur einen Butten drücken um ihre Maske zu öffnen, aber der Weg für die USer besteht darin, Die Datenbank zu öffnen um darin dann den entsprechenden Button ( SChaltfläche ) zu finden. ( mit eben der Aktion @Command/([Compose]......))


    Habe ich nicht einfach die Möglichkeit, den Usern ein Lesezeichen oder dergleichen anzulegen, das nur diese Aktion ausführt, ohne gleich den gesamt DB zu öffnen ? Das wär die Lösung für mich ;P

    • Offizieller Beitrag

    ja schicke eine Notes-URL mit
    Notes://Server/Pfad/DB.nsf/MaskenName?OpenForm


    Gruß
    Dirk

    • Offizieller Beitrag

    dies kannst Du als normale URL in Lesezeichen (Notes oder Browser) packen.


    Gruß
    Dirk

  • hi ich nochmal. hab das so eingegeben, wie ichs für richitg halte, aber es erscheint der fehler: Serverfehler : Datei nicht vorhanden, obwohl sie definitiv dort liegt. Könntest du mir ein detailierteres Beispiel geben, oder mirn tipp geben was ich falsch mach ? ( auch wenn es sowas banales ist, wie eine URL einzutippen ;P ;P ;P