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
Löschrechte Einstellen
- olli691
- Erledigt
-
-
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)
Loopend 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 -
Das ist nicht in der Maske sondern im Datenbank Script