Hallo zusammen,
über das o.g. Thema wurde schon mehrmals diskutiert. Allerdings habe ich für meinen Fall noch nicht die passende Lösung gefunden.
Aus einer Datenbank DB1 hole ich mir mittels Agent aus einer Ansicht Dokumente und erstelle mir mit den benötigten Felder neue Dokumente in eine zweite Datenbank DB2. (weil in DB1 nichts geändert werden soll) In DB2 habe ich mir eine Ansicht erstellt, die diese Dokumente anzeigt. Mehr wird eigentlich nicht benötigt. Jetzt gibt es aber Dokumente in DB2, die andere User nicht sehen sollen. Dafür habe ich eine Rolle [Admin] angelegt. Nur User mit der Rolle dürfen alle Dokumente sehen.
Mein Problem ist jetzt, wie ich die Rolle auslesen kann, bzw. wie die Rolle beim Öffnen der Datenbank ausgewertet wird. Zunächst habe ich in der Ansichtsauswahl die Einschränkung mittlels "@IsMember("[Admin]";@UserRoles)" vorgenommen. Ich habe aber gelesen, daß in Ansichten nicht mit @UserRoles gearbeitet werden kann, sondern die Rolle eher über ein Leserfeld in einer Maske ausgewertet werden sollte. Also hab ich die Ansichtsauswahl wieder verworfen und mir eine Maske gebaut, die die betroffenen Elemente der Ansicht und ein zusätzliches Leserfeld enthält, obwohl ich die Maske eigentlich nicht brauche. Das Leserfeld ist "Berechnet" und läßt Mehrfachwerte zu. Als Wert enthält es die Rolle [Admin]. Danach habe ich die Dokumente noch mal gelöscht und neu reingeladen, damit auch das Leserfeld greift. Allerdings wird vom Testuser keine Veränderung gesehen. Egal ob die Rolle angehakt ist oder nicht. Da die Datenbank lokal liegt, habe ich den Haken bei Zugriffskontrolle -> Erweitert -> Konsistente ACL .... gesetzt. Meine erste Vermutung lag darin, dass in der Ansichtsauswahl der Select auf die Form fehlte. Nachdem ich den Select gesetzt habe, wurden gar keine Dokumente mehr angezeigt, egal ob mit oder ohne Rolle. Vermutlich weil die Dokumente nicht mit der Maske erzeugt wurden.
Wie kann ich über eine Rolle nur bestimmte Dokumente einer Ansicht anzeigen, die nicht mit einer Maske erstellt wurden?
Danke für Eure Antworten
Jürgen