Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TomLudwig am 29.07.04 - 12:25:39

Titel: Dokument löschen ohne Berechigung in ACL
Beitrag von: TomLudwig am 29.07.04 - 12:25:39
Hallo zusammen,

ich bräuchte eure hilfe...
Ich muss ein Dokument im Hintergrund per LotusScript löschen. Einige Benutzer sind Editoren (in Gruppe zusammengefasst) diese dürfen keine Dokumente löschen.
Das eine Dokument muss aber im Hintergrund gelöscht werden können.

Kann ich den Benutzern (Gruppen) das Löschrecht kurz geben, das Dok im Hintergrund löschen, und dann wieder weg nehmen?

Vielen DANK
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: koehlerbv am 29.07.04 - 12:30:47
Das geht natürlich nicht. Eine ACL-Änderung erfordert ja noch höhere Rechte als das Löschrecht.
Ein üblicher workaround ist, dem zu "löschenden" Dokument ein Flag zu geben und das Dokument darüber aus allen Ansichten auszuschliessen. Ein serverbasierender Agent (signiert mit ausreichenden Rechten) kann diese Dokumente dann periodisch physikalisch löschen.

HTH,
Bernhard
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: TomLudwig am 29.07.04 - 12:36:02
War mir irgendwie klar :(
Das ist aber schlecht, da die zu löschenden Dokumente eigentlich nur zu einer Überprüfung gehören, ob ein Dokument von einem anderen Benutzer gerade geöffnet ist und beim verlassen des geöffneten Doks soll das "Überprüf"-Dok im Hintergrund wieder gelöscht werden...

Was haltet ihr von dem Vorschlag:
Ich gebe den Benutzern das Löschrecht in der ACL und überprüfe in QueryDocumentDelete ob das Dokument von der Person gelöscht werden darf ?!?
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: koehlerbv am 29.07.04 - 12:40:08
Auch das ist ein gängiges Verfahren. In Deinem Kontext ist die Realisierung ja sogar bequem und ohne viel Aufwand machbar: Du brauchst ja nur prüfen, ob es sich um EINEN Dokumenttyp (Dein Lock-Dokument) handelt - wenn nicht, ist das Löschen immer verboten.

Bernhard
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: TomLudwig am 29.07.04 - 12:46:42
Stimmt, ich kanns ja im DatenbankScript hinterlegen.
Aber eine Frage noch ... Im Ereignis "QueryDocumentDelete" bekomm ich als Übergabeparameter eine NotesUIDatabase.
Ich möchte aber doch mein Document haben. Wie komm ich dann zu dem Dok ???
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: Spalter am 29.07.04 - 12:51:07
Hallo TomLudwig,

eine Alternative wäre noch die RunOnServer Methode der Notes Agent Klasse. Damit kann können auch Personen ohne entsprechende Rechte Löschungen vornehmen. Schau mal in der Hilfe nach. Habe leider im Moment kein Beispiel zur Hand.

Gruß
Spalter ;)
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: Driri am 29.07.04 - 12:51:20
Über NotesUIDatabase.Documents bekommst Du eine DocumentCollection, die alle Dokumente enthält, für die das Event ausgelöst wurde.
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: billygates am 29.07.04 - 13:04:11
Wie wär es wenn Du einfach einen Flag setzen läßt, der ausssagt, dass das DOK gelöscht werden soll. Z.B. kannst Du einfach die Maske wechseln (doc.form="delete" oder so) und diese Dokumente alle nachts per Agent löscht.
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: koehlerbv am 29.07.04 - 13:08:55
@billygates:
Das habe ich bereits in meiner ersten Antwort vorgeschlagen, und Tom hat in seiner Replik darauf nachgewiesen, dass genau dieses im bestehenden Kontext nicht praktikabel ist.

Bernhard
Titel: Re:Dokument löschen ohne Berechigung in ACL
Beitrag von: TomLudwig am 29.07.04 - 13:31:03
Klasse danke.

Die Vorschläge haben auch funktioniert.

Dieses Forum ist super !!!!