Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 13.03.03 - 17:01:22
-
Hallo,
Ich möchte haben das kein User die erstellten Docs bearbeiten kann.
Das hab ich in der Maske so verwirklicht:
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim session As New NotesSession
Dim userName As New NotesName(session.UserName)
Dim db As NotesDatabase
Dim acl As NotesACL
Dim entry As NotesACLEntry
Set db = session.CurrentDatabase
Set acl = db.ACL
user2 = username.Abbreviated
Set entry = acl.GetEntry(user2)
If Not source.isnewdoc Then
If Not entry Is Nothing Then
If Entry.IsRoleEnabled("[admin]" ) Then
continue = True
Else
Messagebox "Arbeitsaufträge können nicht bearbeitet werden.", 0, "Fehler"
Continue = False
End If
End If
End If
End Sub
Funtioniert auch ohnen Probleme wenn der user in der ansicht auf das doc klickt und im Doc dann doppelt klickt und es bearbeiten möchte!!
ABER:
Wenn der user sich in der Ansicht aber auf ein Doc stellt und dann auf dem Bearbeitungsbleistift in der Smarticonleiste klickt dann kann er es bearbeiten!!
Wie kann ich das umgehen?
danke robertpp
-
Ich hab das Problem gefunden:
In der Maske gehört das noch hinein:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
If Not source.isnewdoc Then
If Source.EditMode Then continue = False
End If
End Sub
robertpp
-
Hi,
regel doch das über ein Autorenfeld. Jeder der da drinsteht kann das Dokument bearbeiten. Die anderen nicht. Dann brauchst du in den Masken-Events keine Klimmzüge zu machen.
Axel
-
Guckst du hier http://www.eknori.de/downloads.htm
dann runterblättern zu "Leser- und Autorenfelder unter Kontrolle"
Damit funzt das dann völlig problemlos und ist super flexibel
eknori
-
Hi,
regel doch das über ein Autorenfeld. Jeder der da drinsteht kann das Dokument bearbeiten. Die anderen nicht. Dann brauchst du in den Masken-Events keine Klimmzüge zu machen.
Axel
Hi Axel,
der Benutzer kann trotz Authoren Feld in den Bearbeitungsmodus, lediglich beim Speichern wird dann gesagt, daß die Berechtigungen fehlen.
-
doliman hat den Punkt getroffen wo das problem liegt!!
Und außerdem dürfen die Ersteller auch nicht das Doc bearbeiten und ich arbeite mit Autorenfelder nur das bringt eben auch nichts!!
Also es funktioniert jetzt eben außer die die das Doc erstellt haben die dürfen es noch immer ändern!!
robertpp
-
Hi,
wer nicht im Authorenfeld steht darf das Dokument nicht editieren, d.h. er kann das Dokument nicht im Editmodus öffnen und nicht in den Editmodus wechseln. Vorausgesetzt er hat nur das Recht Autor in der ACL. Für alle höheren Rechte, also Editor, Entwickler und Manager, greifen die Autorenfelder nicht.
Um auch zu verhindern, das der Ersteller des Dokumentes es nachträgöich verändern kann, mache das Autorenfeld im Querysave-Event einfach leer. Oder du trägst nur den DB-Manager ein, als Rettungsanker.
Ich hatte mit solchen Varianten nie Schwierigkeiten.
Axel
-
Ich hab leider den ersteller die Rechte Editor geben müssen weil ich eine forlfauende nummer eingebaut habe von der DB seqnum.nsf Verknüpung zum Forum eintrag:
http://www.atnotes.de/index.php?board=7;action=display;threadid=6751
und wenn ich dem ersteller autor rechte gebe dann kann er die fortlaufende nummer nicht erstellen.
So jetzt weiß ich nicht was ich machen soll?
robertpp
-
Hi,
ich bin zwar nicht ganz im Bilde, wie diese fortlaufende Nummerierung läuft, aber irgendwie ist da ein NotesDokument im Spiel.
Versuch doch auch in diesem Dokument ein Autorenfeld einzubauen. Dort kannst du ja fest eine Rolle, die du jedem User zuweißt, eintragen. Damit kann auch ein Autor das Dokument ändern und deine Nummerierung sollte wieder funktionieren.
Axel
-
danke axel für den tipp!! ich hab ganz übersehen das in dem notesdoc wo die nummer gespeichert ist das feld schon gibt um dort gruppen und rollen einzutragen die nummeren erstellen dürfen!!
Ich hab jetzt noch den ersteller nur noch leserechte gegeben und jetzt passt es!
robertpp