Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: my head am 29.10.03 - 07:32:19

Titel: zugriff auf maske
Beitrag von: my head am 29.10.03 - 07:32:19
hallo!

hab mal wieder ne ganz dumme frage...

hab ne maske, die im edit-modus geöffnet werden muss... wie kann verhindern, dass "leser" die maske öffnen und ne standardfehlermeldung erhalten...

will in den aufruf einbauen: @if(rechte<=leser;"kein Zugriff";öffnen der maske)

geht das ohne rollen?
Titel: Re:zugriff auf maske
Beitrag von: Semeaphoros am 29.10.03 - 07:39:41
Im QueryOpen Event der Maske entweder mit der QueryAccess-Methode der NotesDatenbank oder mit @UserAccess
Titel: Re:zugriff auf maske
Beitrag von: my head am 29.10.03 - 07:40:01
hab festgestellt, dass "leser" zugriff auf masken im edit-mod haben...
kann ich die standard fehlermeldung so wie oben beschrieben abfangen?
Titel: Re:zugriff auf maske
Beitrag von: Semeaphoros am 29.10.03 - 07:51:28
Weiss ich nicht, würde aber meinen, genau dazu ist der QueryOpen da, sonst müsstest Du das im Initialize machen, aber da wird es dann etwas sehr trickreich, die Instanziierung abzubrechen, weiss ich auch nicht, ob das funktionieren würde. Probier doch einfach mal, was passiert, wenn Du im QueryOpen einfach mal ein Continue=False einsetzest. Da siehst Du sofort, ob die Fehlermeldung noch kommt oder nicht.
Titel: Re:zugriff auf maske
Beitrag von: klaussal am 29.10.03 - 07:53:21
.. das  kann nicht sein, dass "leser" editieren können. bitte mal das/die leserfeld(er) überprüfen. ansonsten geht's wie oben beschrieben.
Titel: Re:zugriff auf maske
Beitrag von: Semeaphoros am 29.10.03 - 08:29:00
Wenn ich "meinen Kopf" richtig verstehe, meint er, dass Leser ein Dokument mit einer Maske, die in den Edit-Mode wechseln, anwerfen können, aber eine Fehlermeldung bekommen, soweit ist das normal, nur etwas sehr verkürzt von ihm ausgedrückt, hat aber nix mit Leserfeldern zu tun -- meine Interpretation
Titel: Re:zugriff auf maske
Beitrag von: Axel am 29.10.03 - 11:03:00
Hi,

das Ganze muß mit Script im QueryOpen-Event passieren. die Formel-Funktion @UserAccess kann nicht verwendet werden, da die Funktion nicht in Evaluate - Statements verwendet werden kann.

Die Lösung sieht so aus:

Zitat
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim acl As NotesACL
   Dim entry As NotesACLEntry
   
   Set db = session.CurrentDatabase
   Set acl = db.ACL
   Set entry = acl.GetEntry( session.UserName )
   If Not ( entry Is Nothing ) Then
      If entry.Level = ACLLEVEL_READER Then
         Messagebox "Sie haben nur Leserechte und können die Maske nicht öffnen"
         Continue = False
      End If
   End If  '   If Not ( entry Is Nothing ) Then
End Sub

Vorraussetzung ist natürlich, das die entsprechenden User direkt in der ACL als Leser enthalten sind.


Axel