Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Caleb666 am 07.01.15 - 11:09:21

Titel: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 07.01.15 - 11:09:21
Hallo,

in einer Datenbank existiert ein Hotspot, welcher eine Ansicht x aus einer anderen Datenbank öffnet.

Die Ansicht x wurde unter deren Eigenschaften so angepasst, das nur bestimmte Gruppen diese Ansicht verwenden dürfen (Eigenschaften --> Ansicht --> Sicherheit --> Wer darf diese Ansicht verwenden?)

Klickt ein nicht berechtigter Anwender auf den Hotspot, so erscheint derzeit folgender IBM Fehlerhinweis: "Ungültiges oder nicht vorhandenes Dokument".

In folgemdem Code habe ich versucht diese Fehlermeldung zu unterdrücken bzw. anpassen, schaffe es jedoch leider nicht....



@SetTargetFrame("Main");
TempVar := @URLOpen("notes://LDS2XY/workflows//WS2014.nsf/de.view.auswertung.workshops?OpenView");
@If(@IsError(TempVar); @Prompt([Ok];"Hinweis";"Fehler.");@Prompt([Ok];"Hinweis";"Erfolg"))


Oder wäre es sinnvoller anstatt die Fehlermeldung abzufangen, den Zugriff des Anwenders  zu prüfen? Wenn ja, wie mache ich das bei einer Ansicht?

Vielen Dank.

Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Schnubbel am 07.01.15 - 13:57:33
Moin,

mal von hinten durchs Auge als Denkanstoß:

Wie wäre es, wenn du dem Hotspot eine Hide-When-Formel verpasst. Dort fragst du dann die gleiche Gruppe ab wie bei der Ansicht.

Nach dem Motto:"Kein Klick, keine Fehlermeldung"

Gruß

Thorsten
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 07.01.15 - 14:42:00
Vielen Dank für die Antwort.

Den Hotspot zu verstecken wäre eher die letzte Alternative,
da die Anwender sehen sollen das es diese Auswertung
gibt und bei Bedarf die Berechtigung dafür beantragen können.

Wie beschrieben wurde für die gewünschte Ansicht deren Eigenschaften so angepasst, das nur bestimmte Gruppen diese Ansicht verwenden dürfen (unter dem Punkt "Wer darf diese Ansicht verwenden?")

Wie kann ich die berechtigten Gruppen in der Ansicht abfragen? Wo/In welchem Feld werden diese gespeichert. Konnte leider nichts finden...???
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: DerAndre am 07.01.15 - 14:47:28
Und dann ins Knie...

Dann mach doch eine zweite Schaltfläche um Thorsten weiter zu führen.
Wenn keine Berechtigung, dann zeig die zweite Schaltfläche an.

Dann kommt die Meldung, ohne Berechtigung keine Ansicht.
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 07.01.15 - 15:00:14
Jetzt ist diese Variante doch wieder interessant  ;D

Wie jedoch bereits beschrieben, hänge ich bei der Abfrage der Berechtigungen...

Wie prüfe ich die Berechtigung auf eine Ansicht aus einer anderen Datenbank?
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Klafu am 07.01.15 - 15:18:17
Probier mal bei der Fehlermeldung
Code
@If(@IsError(TempVar); @Failure("There is an error in TempVar"); @Prompt([Ok];"Hinweis";"Erfolg"))
Ist aber nur ein Gedanke. Muss sicher noch anderweitig angepasst werden.

Chris
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 07.01.15 - 15:37:19
@Klafu: Der Befehl bringt leider auch keinen Erfolg.

@URLOpen wird anscheinend nicht als Fehler gewertet, da bei der Prüfung über @IsError
das Ergebnis IMMER "Erfolg" ist.

=>Bei fehlender Berechtigung erscheint immer die Standard IBM-Meldung und im Anschluss das Hinweisfenster "Erfolg".

Falls ich hier nicht weiterkomme würde ich  gerne den Ansatz von "DerAndre" verfolgen.

Jedoch verstehe ich noch nicht ganz, wie ich die Berechtigung auf eine Ansicht aus einer anderen Datenbank prüfe?
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Mitch am 07.01.15 - 15:58:39
Zum Ausprobieren:

Was passiert denn bei einem DBLookUp oder DBColumn auf eine Ansicht auf die man keinen Zugriff hat? Da wird doch bestimmt™ ein Fehler zurück gegeben, den du mit @IsError prüfen kannst. Das könnstest du statt @URLOpen mal versuchen...


Gruß,

Mitch
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 08.01.15 - 11:51:37
Ich habs nun mal mit @DbColumn erfolgreich getestet.

Code
@SetTargetFrame("Main");

TempVar := @DbColumn("":"NoCache";"LDS2XY":"workflows\\WS2014.nsf";"de.view.auswertung.workshops";1);

@If(@IsError(TempVar); @Prompt([Ok];"Fehlende Berechtigung";"Sie sind derzeit nicht für den Zugriff auf diese Auswertung berechtigt.");@URLOpen("notes://LDS2XY/workflows//WS2014.nsf/de.view.auswertung.workshops?OpenView"))

Ich kann nun wie gewünscht den Fehler abfangen und die Fehlermeldung selbst definieren, jedoch fallen nun alle durch @Dbcolumn generierten Fehler darunter,  auch Fehler die evtl. gar nichts mit einer fehlenden Berechtigung zu tun haben....

Lässt sich die Formel noch weiter optimieren?


Bzgl. dem anderen Ansatz bei dem ich die Berechtigung in der Ansicht prüfe, hab ich noch ne Frage offen:

Wie beschrieben wurde für die gewünschte Ansicht deren Eigenschaften so angepasst, das nur bestimmte Gruppen diese Ansicht verwenden dürfen (unter dem Punkt "Wer darf diese Ansicht verwenden?")

Wie kann ich die berechtigten Gruppen in der Ansicht abfragen? Wo/In welchem Feld werden diese gespeichert. Konnte leider nichts finden...Huh


Gruß
Franz


Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Mitch am 08.01.15 - 14:07:11
Ich kann nun wie gewünscht den Fehler abfangen und die Fehlermeldung selbst definieren, jedoch fallen nun alle durch @Dbcolumn generierten Fehler darunter,  auch Fehler die evtl. gar nichts mit einer fehlenden Berechtigung zu tun haben....

Lässt sich die Formel noch weiter optimieren?

Hmmm, mit fehlerabhängigen Bedingungen innerhalb von @Formeln hab ich noch nicht experimentiert.

Du kannst den Error doch bestimmt auch irgendwie auswerten. Zum Beispiel einfach mal in einen Text umwandeln und gucken was drin steht. Auf Basis dessen kannst du dann weiter verfahren...

Gruß,

Mitch
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Caleb666 am 08.01.15 - 15:02:05
Alles klar, werd ich mal probieren  ;)

Auf die andere Frage bzgl. "Abfrage berechtigter Gruppen in der Ansicht" hat keiner eine Idee bzw. Hilfestellung?
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: koehlerbv am 08.01.15 - 15:28:33
Auf die andere Frage bzgl. "Abfrage berechtigter Gruppen in der Ansicht" hat keiner eine Idee bzw. Hilfestellung?

Formelsprache reicht hierfür nicht. Punktum.

Warum arbeitest Du eigentlich mit Gruppen und nicht mit einer Rolle?

Bernhard
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: Mitch am 08.01.15 - 15:32:48
Auf die andere Frage bzgl. "Abfrage berechtigter Gruppen in der Ansicht" hat keiner eine Idee bzw. Hilfestellung?
Naja, ich bewege mich hier auf (für mich) unbekanntem Gebiet, aber alle Designelemente sind auch nur Dokumente in der Datenbank. Ich würde mir daher einfach mal die View als Dokument ziehen (Lotus Script, nicht mit Formeln) und mal schauen was für Items drin sind. Vielleicht Author/Reader-Items oder so.

Aber: Wenn der User keinen Zugriff auf die View hat, kriegt er vermutlich auch nicht das Dokument. Von daher sind die Einsatzmöglichkeiten in deinem Fall beschränkt.

Gruß,

Mitch
Titel: Re: Berechtigung auf Ansicht prüfen bzw. Fehlermeldung unterdrücken
Beitrag von: koehlerbv am 08.01.15 - 16:15:48
Das Item heisst $Readers im Design Document.

Und ja: Keine Berechtigung - kein Zugriff (fehlende "Sichtbarkeit", als würde das Doc nicht existieren).

Bernhard