...und wieder mal "Hide when..."

  • Moinsen :)


    momentan ändere ich eine Datenbank so um, daß mehrere Benutzergruppen jeweils auf ihre Bereiche zugreifen können.
    Dies möchte ich über die UserRoles und die "Hide when..." Option realisieren.


    Mein Problem:


    Natürlich sollten auch die Navigationsoutlines nur von der jeweiligen Gruppe gesehen und genutzt werden.
    Also hab ich in den Outline Eigenschaften "hide when formula is true" aktiviert und folgende Formel eingegeben :


    @IsNotMember("[Rolle]";@UserRoles)


    Jetzt habe ich das Problem, daß der Testuser, dem ich die entsprechende Rolle zugewiesen habe, die Outline trotzdem nicht sieht.


    Die Frage ist nur, wo ist mein Denkfehler?
    Die Formel gibt doch nur ein "true" raus, wenn der User nicht die angegebene Rolle hat, oder lieg ich jetzt falsch?


    Also, es soll nur derjenige die Outline nicht sehen, der nicht die korrekte Rolle hat.


    ...irgendwie bin ich verwirrt..... :D

  • Tach Tom,


    hat dein Testuser vielleicht mehr als eine Rolle ? Dann wärst du besser dran, wenn du mit @Contains arbeitest....



    Glück auf !


    Schuessi

  • Jup...die Datenbank hab ich schon mehrfach geschlossen und wieder geöffnet (ist eine Schablone, die ich dann über eine Testkopie der eigentlichen Datenbank schmeisse)


    In der Datenbankkopie hab ich mich als Testuser in der ACL mit 3 von 3 möglichen Rollen (Rollen: Industrie / Retail / External_Reader)


    @contain wäre einen Versuch wert. Stimmt, die User können mehr als eine Rolle haben, aber waren @IsMember und @IsNotMember nicht genau für solche Fälle gedacht?


    Ich bastel hier auf jeden Fall noch ein wenig rum :)


    Aber schon mal Danke für die Hilfe


    (Ups...hatte ich glatt vergessen....Designer 6.5.1 und Client 6.5.1) :D

  • Also....ich bearbeite die Schablone der Datenbank.
    Um sie zu testen, bevor sie in die Produktivapplikation gerät, habe ich von der Datenbank eine lokale Kopie (keine Replik) angelegt, über die ich das Design drüberbügel.
    Stimmt, die ACL ist nicht konsistent (zumal von der Kopie keine Replik existiert).
    Existieren in diesem Zusammenhang Probleme?

  • Ja das ist das Problem.


    Hast du lokal keine konsistente ACL greifen weder Rollen noch Zugriffsrechte, da ein User lokal immer Manager Rechte hat sofern keine konsistente ACL eingestellt ist.
    Wenn du lokal eine konsistente ACL einstellst stell vorher sicher dass es mindestens einen User gibt der Manager Rechte hat, sonst sperrst du dich noch aus der DB aus.