Domino 9 und frühere Versionen > ND7: Entwicklung

Querymodechange

(1/2) > >>

botschi:
Hallo,

ich möchte verhindern, dass nur einige Leute ein Dokument ins Bearbeiten setzen dürfen.
Im Querymodechange habe ich folgende Formel eingetragen:
@IsNotMember(@UserNamesList; "Admingruppe")
Ich bin nicht in dieser Gruppe und kann das Dokument trotzdem ins Bearbeiten setzen.
Dann habe ich das Script eingebaut
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
   
   Dim s As New NotesSession
   Dim formel As String
   Dim eval_formel As Variant
   
   
   formel = | @IsNotMember(@UserNamesList; "Admingruppe") |
   eval_formel = Evaluate(formel)
   
End Sub
Ergebnis ist, dass die Formel immer 0 zurückgibt, auch wenn ich dort eine Gruppe eintrage, in der ich Mitglied bin.

Kann mir jemand helfen? Wie kann ich das realisieren? Kann man dort keine Formel verwenden? Selbst wenn ich @False in das Ereignis eintrage kann ich ins Bearbeiten wechseln.
Leser- und Autorenfelder sind jetzt nicht mehr möglich, da es sehr viele dieser Dokumente gibt und ich diese denn ja erstmal updaten müsste. Es gibt auch viele Editoren in der DB usw. Die DB ist schon sehr alt und voll, aus den Anfängen von R4...

Lossa:
Hi,


--- Zitat von: botschi am 19.09.06 - 14:35:16 ---   formel = | @IsNotMember(@UserNamesList; "Admingruppe") |

--- Ende Zitat ---

ich würde es an deiner Stelle einmal andersherum probieren:

   formel = | @IsNotMember("Admingruppe";@UserNamesList) |

Dann klappts auch mit dem Member.

ZaLudtske:
Hallo,

der Paramater Continue muß um das Ereigniss abzubrechen auf den Wert 'False' gesetzt werden.

Rainer

botschi:
Aaaaah  ;D
Formel umstellen ist ein guter Hinweis gewesen! So gehts auch.

Danke dafür!

Und Continue will ich ja auch auf false setzen, deswegen mach ich ja die Prüfung....

Tode:
Nur nebenbei: ich hoffe, Du erhoffst Dir von dieser Änderung keine Sicherheit...

Jeder, der in seinem Client das Smarticon "Debug Lotus Script" schon mal gedrückt hat, kann damit Dein QueryModeChange locker ausheben, indem er einfach das Script vor der Zeile Continue = False abbricht..

mal ganz abgesehen davon (aber dieser Hinweis kommt JEDESMAL, wenn jemand so versucht, das bearbeiten zu verhindern: Warum verwendet niemand die Suche....), dass man über Strg + B oder über eine Aktion "Dokument bearbeiten" mit dem Code "@Command([EditDocument])" aus der Ansicht DIREKT im Edit- Mode landet, ohne dass das QueryModeChange gefeuert wird...

Um wenigstens das zu verhindern, muss der Code auch noch ins QueryOpen mit Abfrage auf "uidoc.EditMode = True" und isNewDoc....

BITTE: Gib Deinen Benutzern "Author"- Rechte und verwende die entsprechenden Felder für ECHTE Sicherheit... Dann kannst Du im Autor- Feld einfach die Admingruppe eintragen und gut ist...

Tode

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln