Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Troubleshooter am 03.01.12 - 15:25:06

Titel: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: Troubleshooter am 03.01.12 - 15:25:06
Hi,

folgendes Szenario:

Eine Datenbank, in deren ACL -Default- auf "Autoren" + Docs erstellen steht. Zusätzlich ein paar User, die Editoren sind (+ Rolle "Editor")

Auf einer Maske sind einige bearbeitbare Felder und 1 berechnetes (beim Anlegen) Feld.
Die Editoren sollen die bearbeitbaren Felder bearbeiten dürfen, die -Default-User nur das berechnete Feld (überschreiben) und zwar per LotusScript.
Dh die -Default-User klicken beispielsweise auf einen Button in einer Ansicht, welcher LotusScript ausführt und das berechnete Feld des ausgewählten Dokuments ändert.

Ich steh aber völlig auf der Leitung, denn ich schaff es nicht, die Zugriffsrechte so zu setzen, dass es dem obigen Szenario entspricht.

Folgendes hab ich ua. versucht:
* das berechnete Feld in einen kontrollierten Abschnitt setzen und alle User auf diesen Abschnitt berechtigen -> Feld kann nicht geändert werden
* zusätzlich ein Autorenfeld in die Maske setzen und für * berechtigen -> -Default- hat auch auf die bearbeitbaren Felder Zugriff
* den für Editoren bearbeitbaren Teil ebenso in einen kontrollierten Abschnitt setzen und nur auf die Rolle "Editor" zu berechtigen -> -Default- hat auch auf die bearbeitbaren Felder Zugriff

Wäre sehr erfreut, wenn man mir wieder von der Leitung hilft ;)

Lg
Florian
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: klaussal am 03.01.12 - 15:31:50
Jedes Feld zweimal in die Maske: einmal als bearbeitbar und als berechnet.
Je nachdem, wer mit welcher Rolle das Doc bearbeitet, wird entweder das eine oder andere versteckt.
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: DAU-in am 03.01.12 - 15:36:39
Hallo,

wenn die Autoren nicht in einem Autorenfeld aufgeführt sind, dürfen sie das Dokument nicht bearbeiten.
Wenn sie die Aktion über einen Button auslösen, müsste im Hintergrund ein Agent mit den entsprechenden Rechten laufen und die Aktion durchführen.

Warum nicht:
- die Autoren in ein Autorenfeld aufnehmen
- die Felder für die Editoren in einen zugriffskontrollierten Abschnitt

- ein berechnetes Feld, das die  berechtigten Editoren angibt
- im Abschnitt Zugriff auf 'berechnet zur Anzeige' und das Feld als Formel


edith: Editier-Fehler wieder rausgenommen
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: DAU-in am 03.01.12 - 15:38:58

* den für Editoren bearbeitbaren Teil ebenso in einen kontrollierten Abschnitt setzen und nur auf die Rolle "Editor" zu berechtigen -> -Default- hat auch auf die bearbeitbaren Felder Zugriff


Dann hast du was falsch eingestellt.
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: Troubleshooter am 03.01.12 - 16:04:22
Danke für eure Antworten!

Jedes Feld zweimal in die Maske: einmal als bearbeitbar und als berechnet.
Je nachdem, wer mit welcher Rolle das Doc bearbeitet, wird entweder das eine oder andere versteckt.
Diese Lösung hab ich ein bisschen hinausgeschoben, da sie natürlich mit deutlichem Mehraufwand verbunden und nicht so schön anzusehen ist ;)

Warum nicht:
- die Autoren in ein Autorenfeld aufnehmen
- die Felder für die Editoren in einen zugriffskontrollierten Abschnitt
- ein berechnetes Feld, das die  berechtigten Editoren angibt
- im Abschnitt Zugriff auf 'berechnet zur Anzeige' und das Feld als Formel

So hab ichs ja eh (fast):
- Autorenfeld mit "*"
- Editorenfelder in kontrolliertem Abschnitt
- berechnetes Feld habe ich nicht, denn ...
- den Formelwert habe ich auf "[Editor]" festgesetzt, eben die Rolle, welche die Editoren haben

Dann hast du was falsch eingestellt.
Ist nur die Frage was.. an der ACL kanns nicht liegen, denn mein Testuser hat (über -Default- und auch effektiv) nur Autorenrechte, ohne Rolle
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: DAU-in am 03.01.12 - 16:17:09
Hast du den Zugriff auf 'berechnet zur Anzeige' stehen?

Hast du mit neuen Dokumenten getestet?

Hat der Autor wirklich nicht die Rolle 'Editor'? (expliziten Zugriff prüfen auf die DB)

Ich würde in einem Autoren- oder Leserfeld nicht mit '*' arbeiten.
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: Troubleshooter am 03.01.12 - 16:21:47
Hast du den Zugriff auf 'berechnet zur Anzeige' stehen?
- ja

Hast du mit neuen Dokumenten getestet?
- ja

Hat der Autor wirklich nicht die Rolle 'Editor'? (expliziten Zugriff prüfen auf die DB)
- ja

Ich würde in einem Autoren- oder Leserfeld nicht mit '*' arbeiten.
- hm, im Prinzip kann aber nicht genau definiert werden, wer auf das Dokument zugreifen soll, denn das wird dynamisch in anderen Dokumenten festgelegt. Deshalb hab ich mir gedacht, nehm ich einfach mal alle in das Feld rein. Da es berechnet is, kann so eh niemand die Werte in der Maske ändern - über LotusScript muss das aber eben möglich sein.
Gäb da eine idealere Alternative dazu?
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: koehlerbv am 03.01.12 - 16:23:50
Ich würde in einem Autoren- oder Leserfeld nicht mit '*' arbeiten.

Genau - dann kann man das Item auch entfernen (Autor) oder leeren (Leser).

Florian:
Code
Diese Lösung hab ich ein bisschen hinausgeschoben, da sie natürlich mit deutlichem Mehraufwand verbunden und nicht so schön anzusehen ist
Keine Ahnung, was Du da getrieben hast, aber bei dieser Lösung ist keinerlei Unterschied sichtbar!

A-Bär: Das ist keine wirkliche Sicherheit! Diese hat Anita schon in ihrem ersten Post angetönt.

Bernhard
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: Troubleshooter am 04.01.12 - 08:57:28
Ok, ich werd wohl dem Agenten entsprechende (höhere) Rechte geben.
Das klappt aber nur, wenn ich den Agenten mit einem User signiere, der in der DB-ACL dann die entsprechenden Rechte hat, oder?

Lg
Florian
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: DAU-in am 04.01.12 - 14:22:25
entweder den Agent auf 'Run on behalf' stzen und dort den berechtigten Anwender entsprechend ausführen.
Oder aber ein Flag setzen im Dokument, und einen periodischen Agenten laufen lassen.
Wenn du nur den Agenten signierst mit einem berechtigten Anwender, werden bei manuellem Auslösen die Rechte des auslösenden Anwenders verwendet.

Ich hoffe, ich hab das jetzt auch für 8.5 korrekt aufgeführt.

Ok, ich werd wohl dem Agenten entsprechende (höhere) Rechte geben.
Das klappt aber nur, wenn ich den Agenten mit einem User signiere, der in der DB-ACL dann die entsprechenden Rechte hat, oder?

Lg
Florian
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: koehlerbv am 04.01.12 - 14:29:13
Oder NotesAgent.RunOnServer.

Bernhard
Titel: Re: ReplaceItemValue und Masken-/Abschnittsberechtigung
Beitrag von: Troubleshooter am 04.01.12 - 15:23:44
Sodala, nach ewigem Herumprobieren sieht die Lösung (in meinem Fall) nun wie folgt aus:

Ich hab einen eigenen User kreiert, den ich für solche Anforderungen verwende
Dieser User hat Editor-Rechte in der Datenbank
Den User hab ich im Agent auch im Feld "Run on behalf " definiert
Desweiteren wird der Agent per RunOnServer ausgeführt.

In dieser Kombination funktionierts endlich :)

Vielen Dank für eure Hilfe!