8 Antworten Neueste Antwort am Apr 26, 2016 3:23 PM von erolst

    Kontoname / Ergebnismenge einschränken

    emailwurm

      Hallo und guten Abend,

       

      folgendes Problem.

      Ich möchte, dass wenn man sich mit einem Kontonamen anmeldet nur bestimmte Datensätze angezeigt werden.

       

      Das habe ich mit einem Script-Trigger versucht. BeiDaatensatzLaden.

       

      Wenn(Hole(Kontoname)="Mustermann“

      Ergebnismenge einschränken

                Berechtigung ="Mustermann"

       

      Funktioniert wenn ich es als Taste hinterlege, aber nicht wenn ich es als Script-Trigger starte. dann kommt das Apfelzeichen und wenn ich es mit esc abbreche zeigt er mir die Ergebnismenge an.

       

      danke

        • 1. Re: Kontoname / Ergebnismenge einschränken
          Markus Schneider

          suchen aktivieren [ ] // leer, ohne pause

          feldwert setzen[Feld: Berechtigungen, Wert: Hole(KontoName)]

          ergebnismenge suchen[ ] // leer

          • 2. Re: Kontoname / Ergebnismenge einschränken
            erolst

            emailwurm wrote:

            folgendes Problem.

            Ich möchte, dass wenn man sich mit einem Kontonamen anmeldet nur bestimmte Datensätze angezeigt werden.

             

            Wenn du das effektiv durchsetzen möchtest, wäre es besser, die Tabelle in den Zugriffsrechten zu schützen, à la

             

            Tabelle::Berechtigung = Hole ( AktuelleBerechtigungName )

            // keine Ahnung, wie die Funktion wirklich auf Deutsch heißt

             

            Dann musst du einfach einmalig eine Dummy-Suche durchführen, nach z. B. Primärschlüssel = "*"; das findet alle erlaubten Datensätze, lt. obigem Prädikat. (Das ist mehr eine optische Sache, um zu verhindern, dass der Benutzer andere Datensätze mit <Kein Zugriff> sieht.)

             

            Da das auf der Datenebene definiert ist, musst du nicht bei jedem neuen Layout erneut einen Script-Trigger anlegen.

            • 3. Re: Kontoname / Ergebnismenge einschränken
              Markus Schneider

              korrekt! Ich hab das so aufgefasst, dass je nach angemeldetem user 'dessen' Datensaetze angezeigt werden sollen - die weiteren Datensaetze aber nicht gesperrt fuer den angemeldeten user sind

               

              wenn ein user aber nur 'seine' Daten sehen _darf_, ist Erolst Loesung besser

               

              hole(AktuelleBerechtigungenName) heisst die Funktion, hat irgendwann in der Vergangenheit anders gelautet, IMHO - ist also abhaengig von der FileMaker-Version

              • 4. Re: Kontoname / Ergebnismenge einschränken
                emailwurm

                Suchen aktivieren …… das geht alles wenn ich das Script auf eine Taste lege. Aber wie schon erwähnt, wenn ich es automatisch starten möchte mit Script-Trigger.

                 

                Layouteinstellung

                  BeiDatensatzLaden

                  suchen aktivieren..

                  feldwertsetzten….

                  ergebnismenge suchen

                 

                  sortieren…

                 

                komme das Apfelzeichen und das Script hängt solange, bis ich auf esc drücke auch wenn ich es über AktuelleBerechtigungName ausführen lasse. Was funktioniert. Müsste dann für jede Abteilung ein Layout erstellen mit Ergebnismenge suchen.

                 

                Es ist so, dass die Datensätze nur für bestimmte User gesperrt sind und andere mehr bzw. alles sehen dürfen.

                 

                Ist ein Lagerprogramm, wo verschiedene Abteilungen Artikel gelistet haben. Einkauf sieht alles, die einzelnen Abteilungen sollen nur ihre sehen. Andere von zwei oder drei Abteilungen.

                 

                Gibt es da vielleicht noch einen ganz anderen Ansatz.

                • 5. Re: Kontoname / Ergebnismenge einschränken
                  erolst

                  emailwurm wrote:

                  mit Script-Trigger.

                   

                  Layouteinstellung

                    BeiDatensatzLaden

                    suchen aktivieren..

                   

                  komme das Apfelzeichen und das Script hängt solange, bis ich auf esc drücke auch wenn ich es über AktuelleBerechtigungName ausführen lasse.

                   

                  Du bist in einer Endlosschleife, weil beim Laden die Suche getriggert wird – die Suche findet einen oder mehrere Datensätze – ein Datensatz wird geladen – die Suche wird getriggert … ad infinitum

                   

                  emailwurm wrote:

                  Müsste dann für jede Abteilung ein Layout erstellen mit Ergebnismenge suchen.

                   

                  Das hast du falsch verstanden. Du sollst in den Berechtigungen festlegen, wer was sehen darf. Die vorgeschlagene Suche (die nicht über DatensatzLaden, sondern z.B. über LayoutLaden laufen könnte) ist einfach ein Dummy, der alle Datensätze findet (z.B: als „Primärschlüssel nicht leer“). Diejenigen Datensätze, die qua falscher Berechtigung vom aktuellen Benutzer nicht gesehen werden dürfen, werden dabei automatisch ignoriert (und du vermeidest die unschöne Anzeige <Kein Zugriff>).

                   

                  Ich empfehle einen Blick ins Handbuch, speziell den Abschnitt über Zugriffsrechte …

                  • 6. Re: Kontoname / Ergebnismenge einschränken
                    emailwurm

                    Danke, bin jetzt denke ich auf der Spur. Handbuch ist auf. :-) hatte das mit den Berechtigungen getestet,muster.tiff

                    dann kam <kein Zugriff> ….

                     

                    Berechtigungen bearbeiten.

                      Datensätze Eigene Berechtigung….

                     

                    ich denke da muss ich hin.

                     

                    die Suche funktioniert schon mal.

                    • 7. Re: Kontoname / Ergebnismenge einschränken
                      emailwurm

                      Einen hätte ich noch.

                      Das mit den Zugriffsrechte ist eine feine Sache.

                       

                      Funktioniert wenn ich bei z.B. Berechtigungen = „Einkauf“ schreibe ohne Probleme.

                       

                      Nun eine neue Idee.  Da es mehrere Bereich gibt die ein Bearbeiter einsehen darf, wäre es viel einfacher man könnte ein Feld mit einer Wertliste Markierungsfelder versehen und  einfach Häkchen setzten wer auf was Zugriff hat.

                      • 8. Re: Kontoname / Ergebnismenge einschränken
                        erolst

                        Dann schau dir mal die Funktion FilterElemente() an.