Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: judicious am 08.03.06 - 16:27:07

Titel: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: judicious am 08.03.06 - 16:27:07
Guten Abend

Ich bin es wieder einmal. Ich sitze wieder einmal ratlos vor einem Problem.
Ich habe ein Dokument welches von dem Author nicht mehr editierbar sein soll, er soll aber mittels eines Buttons den Wert eines Feldes ändern dürfen und speichern. Ablauf:
1. User erstellt ein Dokument --> Status1
2. Admins können den Status und das Dokument ändern --> Status 2
3. Jetzt soll der User das Dokument auf Status 3 schalten können aber das Dokument an sich nicht ändern.  :-:

Bis jetzt habe ich es so das das Authoren Feld leer gemacht wird und nur noch die Admin Role Änderungen vornhemen darf. Wie soll ich das realisieren?

Wenn das Authoren Feld ja leer ist und der User nicht in der Rolle ist dann kann er das Dokument nicht ändern, was klar ist. Aber eine Rolle geben um das Dokument zu ändern kann ich ja auch nicht, da der User dann ja das ganze Dokument ändern kann.
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: Axel am 08.03.06 - 16:36:01
Heute schon die Forensuche genutzt? Nein?!    ;)

Sonst hättest du das hier gefunden:

[LotusScript]: EditMode für bestimmte Dokumente verwehren (http://atnotes.de/index.php?topic=20455.0)


Und das Ändern des Status machst du über eine Aktion.

Axel
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: koehlerbv am 08.03.06 - 16:40:13
Ich bitte dabei aber, ganz besonders den ersten Satz zu beachten:
Zitat
Das nachfolgend geschilderte Verfahren stellt kein sicheres Procedere dar, um das Manipulieren von Dokumenten zu verhindern.

Ich würde für den angefragten Fall folgendes Verfahren verwenden:
- DB wird MailIn-DB
- Button erzeugt ein Memo an die DB mit den erforderlichen Infos
- Agent auf dem Server, der auf neue Mails reagiert, ändert dann den Status.

Bernhard
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: judicious am 08.03.06 - 16:41:52
Doch sicher, mache ich immer als erstes. Doch mir bringt das ganze nichts. Es ist leider nicht so das nur diese 3 Status ( übrigens was ist die mehrzahl von Status? ) vorhanden sind. Es sind insgesamt 6. Wenn ich den Code von dem Link benutze wird mir das editieren ja generell verboten. Oder ich verstehe den Code nicht ganz. Wenn ich diesen Code benutze dann ist der immer im Formular. Sagen wir es ist der Status 4 dann soll das Doppelklicken und so weiter funktionieren. Nur in diesem ganz bestimmten Zustand soll NUR diese Aktion ausführbar sein.
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: m3 am 08.03.06 - 16:53:20
So, ich als Teilzeit-Entwickler geb jetzt auch noch meinen Senf dazu ab:
Wäre es nicht auch möglich, einen Agent zu schreiben, der diese Änderung durchführt un der durch den User aufgerufen wird? Mit dem "Run on behalf of" könnte ich ja dem Agent die Rechte geben, das Dokument zu ändern.
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: Axel am 08.03.06 - 16:54:37
Anscheinend hast du den Code nicht genau durchgelesen.

Da heißt es z.B. im PostOpen-Event

...
If (Source.EditMode = True) And (THE_CONDITION) Then
...

THE_CONDITION ist nur als Platzhalter gedacht um eigene Bedingungen einzufügen. In deinem Fall wäre das eine Status-Abfrage.

...( übrigens was ist die mehrzahl von Status? )

Ich habe gelernt Stati, allerdings nach der neuen Verkehrtschreibreform solle es Statusse heissen.


Axel
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: judicious am 08.03.06 - 16:56:40
Hmm ok ich muss mir das also nochmals ansehen. Ich blicke zwar nicht ganz durch, aber was noch nicht ist kann ja noch werden  8) Also vielen Dank für die schnelle Hilfe und einen schönen Abend.
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: koehlerbv am 08.03.06 - 16:58:32
@Martin: Dann könntest Du aber nicht mehr offline diese Funktionalität nutzen.

@Namenloser: Nach Status = 1 muss der User ja gar nicht mehr "in" das Dokument, sondern kann den Statuswechsel über einen Button erledigen.
Auch wenn ich den oben zitierten BP-Artikel geschrieben habe, rate ich zur Verwendung dieses Verfahrens nur in Ausnahmefällen.

Bernhard
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: HH am 09.03.06 - 10:26:21
Um eine Bearbeitung übers Frontend zu verhindern würde ich mit zugriffsbeschränkten Abschnitten oder vom Status abhängigen berechneten Teilmasken arbeiten.

Um Änderungen übers Backend zu verhindert bleibt m.E. tatsächlich nur die von m3 bereits erwähnte Möglichkeit mit Agenten zu arbeiten.

Hubert
Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: umi am 09.03.06 - 10:40:04
Könntest Du über Agent.runonserver(NoteID) machen.

Lokal startet der Author einen Agent.
Dieser Agent startet einen Agent auf dem Server ( mit entsprechender ID signiert) läuft und ändert das Feld. Als PArameter kannst du ja die NoteID deines Dokuments übergeben.

Titel: Re: Keine Editierrechte, trotzdem Funktion ausführen
Beitrag von: m3 am 11.03.06 - 20:55:11
@Martin: Dann könntest Du aber nicht mehr offline diese Funktionalität nutzen.
Jup, das ist korrekt.