Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: rar am 11.08.04 - 15:41:22

Titel: Öffnen einer Datenbank verhindern...
Beitrag von: rar am 11.08.04 - 15:41:22
Hi Leute,
kann mir jemand sagen, wie ich das öffnen einer Lokalen Datenbank verhindern kann?

Ich hab es versucht im Postopen (Quercopen mit Contunie gibts ja leider nicht) mit
@If(@Subset(@DbName;1)="";
       @Do(@Command([FileCloseWindow]);
               @Prompt([OK];"";"Nur am Serveraufmachen"));
       "")
abzufangen.
Das hat leider 2 Nachteile.
1.) Solange Das Prompt aktiv ist, ist die DB offen (is mir aber wurscht)
2.) Wenn jemand mit der Rechten Maustaste auf die Kachel clickt und dann bei Datenbank\Gehe zu  eine Ansicht auswählt, kommt er direkt in die Db und das Postopenevent wird ignoriert.

Gibt es eine Möglichkeit das schön abzufragen ohen ins Queryopen jeder Ansicht reinzucoden?

Gruß
-daniel
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: TMC am 11.08.04 - 18:48:29
Daniel, soweit ich weiß gibt es da nichts. Ich mach das auch immer via Postopen-Event - auch wenn das von experimentierfreudigen Usern ausgehebelt werden kann (eben so wie Du schreibst, oder einfach Debugger einschalten und an entsprechender Stelle auf "Stop" klicken).

Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: elajen am 12.08.04 - 09:28:58
Hallo,

leg Dir eine Admin-Rolle in der ACL an. In den Ansichten-Properties aktivierst Du diese Rolle bei den Zugriffseigenschaften.
Auf die versteckten Ansichten kommen dann die User zwar noch immer drauf, aber das darf man halt nicht verraten wie's geht.

Damit's schön aussieht ;), kannst Du ja noch ein Frameset mit einer Willkommensseite machen.

Gruß von Ekki
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: TMC am 12.08.04 - 11:17:28
leg Dir eine Admin-Rolle in der ACL an. In den Ansichten-Properties aktivierst Du diese Rolle bei den Zugriffseigenschaften.

Kannst Du das bitte mal ausführlicher erklären?
Es wird hier von einer DB gesprochen, die darf auf dem Server jeder beliebig öffnen (auch alle Ansichten), nur wenn sie LOKAL ist, nicht.
Wie steuerst Du das über Deine Admin-Rolle?
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: elajen am 12.08.04 - 14:10:39
Entschuldigung - habe ich wiedermal nicht richtig gelesen. >:(

Und wenn Du nur versteckte Ansichten nutzt?

Gruß von Ekki.
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: rar am 12.08.04 - 14:53:22
Versteckte Ansichten helfen mir glaub ich nicht weiter. Am Server soll ich die Ansichten ja sehen können.

Solang ich keine andere Lösung finde, wie man das öffnen lokal unterbindet, werde ich im QO jeder Ansicht Continue auf False setzen, wenn lokal, ...
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: elajen am 12.08.04 - 15:03:14
Hast Du ein Outline, wo Du die Ansichten ansteuerst? Wenn ja, da mußt Du aus den Outline-Entries halt Aktionen machen, die Dir den verstecken View öffnen.
Ist aber, glaub ich, fast aufwendiger als ein False zuschreiben.

Gruß von Ekki.
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: rar am 12.08.04 - 15:12:36
Wenn der böse User aber mit Strg+Shift auf Gehe zu... clickt, kommt er trotzdem in die versteckten Ansichten.

Falls er aber das macht, soll er halt in Gottes Namen lokal zugreifen.  :P
Vielleicht könnte ich ja ein Continue = False ins QO der Masken auch noch eintragen....

lg
-d
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: robertpp am 16.08.04 - 08:10:40
Vielleicht hilft dir das weiter.
Ich hab das im db-script:

Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long
Declare Function NEMStopSubprogramWindow Lib "nnotesws.dll" (Byval wHandle As Long) As Integer


Sub Initialize
   Dim wHandle As Long
   Dim db As NotesDatabase   
   Dim s As New NotesSession
   Set db = s.CurrentDatabase
   If ( db.Server = "" ) Then
      Messagebox "Die Benutzung dieser DB ist nur auf dem Server erlaubt.", 0,"Schwerer Anwenderfehler"
      wHandle = NEMGetCurrentSubprogramWindow
      Call NEMStopSubprogramWindow(wHandle)
   End If
End Sub

Das Problem auch hier: Wenn der user den debugger einschaltet und stop dann ist er ebenfalls in der db.
Der Vorteil hier du brauchst es nicht jedesmal in eine view einbauen.
Titel: Re:Öffnen einer Datenbank verhindern...
Beitrag von: rar am 16.08.04 - 09:55:20
Super  :D
Genau das script hab ich gesucht.
Man kann es leider immer noch mit Gehe zu... umgehen, aber das ist mir jetzt auch egal.

Vielen Dank
-daniel