Domino 9 und frühere Versionen > Entwicklung

Änderung von Dokumenten obwohl kein Autor

(1/4) > >>

Joker:
Hi,
habe da mal eine Frage.
Habe eine Datenbank in der eigentlich alle eingetragenen Personen nur Leserzugriff besitzen. (Bis auf 4-5 Leute mit Editor bzw. Managerrechten).
In einer Maske mit der die einzelnen Dokumente erstellt werden, befinden sich auch ein Autoren- sowie Leserfeld. Autorenzugriff haben standardmäßig nur die Personen, welche der Rolle [Administrator] angehören. Die Leserechte werden für jedes Dokument nach der Erstellung explizit festgelegt.

Nun habe ich folgendes Problem:
Beim öffnen einer Datenbank durch eine Person, welche als Leser in der ACL eingetragen ist, soll ein Script aufgerufen werden, welches einige Dokumente in der Datenbank aktualisiert. Sprich, in ein Richtextfeld werden die neuesten Dateien, welche sich in einem Verzeichnis befinden, eingebettet.

Bei einer Person mit Editorrechten oder höher funktioniert das ja einwandfrei. Doch bei einer Person welche nur Leserrechte hat funktioniert das nicht. Klar, sie hat ja nur Leserrechte und kann kein Dokument verändern und diese Änderungen dan speichern.

Also warum das nicht geht ist mir klar. Doch nun meine Frage: Gibt es eine Möglichkeit, dass eine Person die nur Leserrechte besitzt trotzdem Änderungen an einem Dokument durchführen kann (also nicht im Frontend, sondern durch ein Script im Backend).
Ich habe schon an einen Agenten gedacht der auf dem Server läuft oder aber auch daran der Person kurzzeitig Editorrechte zu geben ??? oder so ???

Vielleich kann mir ja jemand helfen. Vielleich habe ich auch gerade eine kleine Blockade !

Gruss
Martin

Markus Henke:
Hi,

die Person braucht Autorenrechte und dann musst Du in die Dokumente ein Autorenfeld setzen und den Namen der Person, oder Rolle rein. Dann dürfte es gehen. So hast Du zumindest den Schreibzugriff auf bestimmte Dokumente begrenzt.

Ich denke Du kommst in keinem Fall drumherum die Rechte zu erhöhen. Egal wie Du es machst. Dafür sind die Sicherheitsfeatures da. :)

Gruß
Markus

koehlerbv:
Eine Methode wäre der Start eines Agents, der die Signatur mit den entsprechenden Rechten trägt.
Schau' mal unter NotesAgent.RunOnServer in der Designer-Hilfe.

A-Bär: Du mußt dann vor Aufruf des Agents checken, ob lokal oder auf dem Server gearbeitet wird.

Eine andere Variante könnte sein, je nach den Userrechten Felder nur zum Lesen oder zum Editieren anzubieten.

Bernhard

ata:
@Markus

... du musst die rechte nicht erweitern. Bernhard hat es in seinem Posting beschrieben - Agenten verwenden nicht die ID des Users, sondern die ID des Agenten - und das ist die ID mit der der Agent zuletzt gespeichert oder signiert wurde...

... wenn das lokal läuft sollte die konsistente ACL aktiviert sein, da sonst keine Sicherheitsüberprüfung stattfindet...

ata

Joker:
Hi,
danke für eure Antworten.
Habe das mit dem Agenten ausprobiert. Der Agent läuft auch einwandfrei. Jedoch nur wenn ich ihn von Hand (also rechte Maustaste - Starten) aufrufe.

Habe folgendes Script zum aufruf des Agenten entwickelt:

Dim session As NotesSession
Dim db As NotesDatabase
Dim agent As NotesAgent
   
Set session = New NotesSession
Set db = session.CurrentDatabase
Set agent = db.GetAgent("PDFAktualisierung")
   
If agent.RunOnServer = 0 Then
'Meldung für erfolgreiche Aktualisierung
Messagebox("Aktualisierung ausgeführt.")
Else
'Meldung, falls die Aktualisierung fehlschlägt
Messagebox("Aktualisierung fehlgeschlagen")
End If

Habe das ganze auch in eine Aktion gepackt. Es kommt auch die Meldung "Aktualisierung ausgeführt.", doch der Agent macht nichts !
Müsste doch eigentlich so gehen, oder ?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln