Dokument löschen

  • Hallo,


    habe eine Datenbank in welcher der Endbenutzer nicht das Recht besitzt Dokumente zu löschen.
    Nun sollte er aber in einer bestimmten Ansicht die Dokumente löschen können.
    Habe es mit einem Agenten versucht aber leider hats nicht funktioniert. Gibts hier ne Möglichkeit?

  • Hi,


    wenn der User in der ACL nicht das Recht zum Löschen besitzt, dann gilt das für die gesamte Datenbank. Deshalb gibt es - meiner Meinung nach - nur 2 Möglichkeiten:


    1. Der User bekommt das Löschrecht und man programmiert im DB-Script den Event QueryDeleteDocument. Hier sehe ich nur das Problem, woran man ermittelt, ob er in einer bestimmten Ansicht ist oder nicht.


    2. Der User bekommt in der besagten Ansicht eine Aktion zum Löschmarkieren bereitgestellt. Beim Anklicken wird in dem Dokument eine Löschanforderung gesetzt,
    z.B. FIELD ToDelete := 'J';
    Ein periodischer Agent, der auf dem Server läuft kann dann diese Löschmarkierungen bearbeiten und die Dokumente löschen. Wichtig ist dabei, dass der Agent von der ServerID oder einem User unterzeichnet ist, der das Recht zum Löschen hat.


    Ich hoffe, dass hilft Dir.


    Gruß
    Thomas Heiner
    http://www.tgh-online.de

  • Müssen die Dokumente sofort hart gelöscht werden, oder reicht es auch, wenn diese erstmal verschwinden ?


    Falls zweiteres reicht, würde ich eine Schaltfäche erstellen, mittels der die User im Dokument ein Feld setzen (z.B. namens "ToDelete")
    Das Feld könnte standardmäßig auf 0 stehen, die Löschaktion setzt es auf 1.


    Dann musst Du nur noch deine SELECT-Formel in der / den Ansichten dahingehend abändern, daß die ToDelete=1 - Dokumente nicht angezeigt werden.
    Dazu noch einen Agenten basteln, der dann auf dem Server läuft und die geflaggten Docs regelmäßig hart löscht.


    Voila.


    Hat auch den Vorteil, daß man "versehentlich" gelöschte Dokumente wieder herzaubern kann - das lieben die User besonders !


    Bei uns läuft sowas mit einer 3-Tages-Frist und einige privilegierte User haben eine besondere Ansichten, aus der sie selber Löschkandidaten wieder herstellen können.



    Gruß


    Der Ozzy


    Edit: Shit, da war wieder einer schneller als ich ;) !

  • @ DerOzzy


    Du hast es aber schöner beschrieben :D



    maria


    Kann den beiden nur beipflichten. Bei uns heißt es "SoftDelete".
    Eine 3-Tages Frist finde ich aber recht wenig, außer ihr habt gute Datenbank-Admins ;)