Löschrechte Einstellen

  • Folgendes Problem:
    In einer Datenbank dürfen alle Personen alle Dokumente editieren, aber nur ihre eigenen löschen. Die Dokumente anderer dürfen nicht gelöscht werden.
    Wie stelle ich das in der ACL ein? Oder weis jemand eine andere Lösung.
    Vielen Dank für die Hilfe!
    Oliver

  • Hallo Olli,


    Ich fürchte, mit der ACL kommst Du da nicht weiter.
    Da kannst Du nur per Hacken einstellen,
    ob jemand überhaupt das Recht hat, Dokumente zu löschen
    Grundeinstellung ACL für alle Personen sollte Editor sein.


    Was Du brauchst, ist ein Feld, in dem Du Dir den Autoren merkst.
    Z.B. ein berechnet beim Anlegen Namensfeld "DokumentAutor".


    Dann kannst Du im Querydokumentdelete/Datenbankscript abzufragen, ob der Benutzer (session.UserName) gleich dem
    Autor Ist. Also ungefähr so wie unten beschrieben.
    Gehört IMHO eher in den Bereich Design als Admin.


    Set coll_del = db.UnprocessedDocuments
    If coll_del.count > 0 then
    Set doc_del = coll_del.GetFirstDocument
    Do while not doc_del is nothing
    If doc_del.DokumentAutor(0) <> s.Username then
    Msgbox "Eins oder mehrere der markierten Dokumente
    dürfen Sie nicht löschen"
    continue = false
    exit sub
    end if
    Set doc_del = coll_del.GetNextDocument(doc_del)
    Loop


    end if

  • Hi,


    vielen Dank, das hab ich soweit verstanden. Ich habe mir jetzt die DB im Designer geöffnet und die entsprechende Maske geöffnet und das Feld DokumentAutor angelegt das beim Erstellen eines Dokuments den Auto speichert.


    Ich finde jedoch nicht das Objekt "Querydokumentdelete".
    Ist das gar nicht bei der Maske? Kannst du mir bitte noch sagen wo ich das genau finde, bzw wo ich das Script genau eintragen muss?
    Vielen Dank!
    Oliver