menuItem permissions

  • Hallo,

    ich bin gerade dabei einige Plugins fürs neue WSC umzuschreiben. Im pageMenu-PIP gab es früher die Möglichkeit eines <permissions>-Tag. Im neuen menuItem-PIP gibt es das nicht mehr. Wie kann ich Menüpunkte nur anzeigen lassen, wenn bestimmte Gruppenberechtigungen erfüllt sind?

    Grüße

  • Du benötigst dazu einen PageHandler (siehe wcf\system\page\handler) der die Methode isVisible() implementiert. Wir haben den <permissions>-Tag aus dem PIP entfernt, da er sich funktionell mit den neuen PageHandlern überschneidet und es im Zweifel intransparent ist wann und wo welcher Wert verwendet wird.

    Etwas mehr Aufwand, dafür sehr viel flexibler, da man nun auch einzelne Objekte in Menüs verlinken kann (z.B. ein bestimmtes Forum) und so auch dort alle notwendigen Permissions prüfen kann. Siehe auch: WoltLab Suite Core 3.0: Menüs

  • Allerdings versteckt isVisible() das Menü nur. Die Seite kann man trotzdem per manueller Eingabe des Links aufrufen. Es müssen also trotzdem noch irgendwo Permissions gesetzt werden, um den Seitenaufruf zu verhindern.

    Wie wirken da die permissions in page.xml und $neededPermissions in AbstractPage zusammen?

    Gruß, Udo

  • Allerdings versteckt isVisible() das Menü nur.


    Dann habe ich es vorhin doch richtig interpretiert. Der Mehraufwand erscheint mir übrigens garnicht so klein. Ein Paket wie zum Beispiel die "Einfache Seite" wächst hierdurch erheblich an.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier und hier.

  • Der Mehraufwand erscheint mir übrigens garnicht so klein.

    Damit einher geht aber auch eine entsprechende Funktionalität, etwa die Prüfung auf Basis von Objekt-IDs sowie die Darstellung von "Unread content"-Badges. Dazu kommt noch, dass bisher eine erweiterte Funktionalität für einen Menüpunkt nur per PIP bereitgestellt werden konnte.

    Jetzt kann jeder Durchschnittsbenutzer ein Forum (oder zum Beispiel ein Thema) verlinken und gibt dazu nur an, dass die Zielseite ein Forum ist und die ID 123456 hat, um den Rest kümmert sich das System. Sicherlich ist es nicht dasselbe wie ein <permissions> im menuitem-PIP, dafür geht die Funktionalität um Meilen darüber hinaus - alles zum Vorteil des Nutzers.

    Ein Paket wie zum Beispiel die "Einfache Seite" wächst hierdurch erheblich an.

    Halte ich aus vielerlei Gründen für ein sehr unglückliches Beispiel.

  • Es war halt das erste kleine Paket mit eigenem Menüpunkt, das mir spontan einfiel.


    Gruß norse

    Zugang zu meinen Arbeiten und dem dazugehörigen Support bekommt Ihr bei Interesse hier und hier.

  • Der Mehraufwand erscheint mir übrigens garnicht so klein.

    Naja, ist halt eine Datei mit ein paar Zeilen mehr. Überschaubar.
    Weniger überschaubar ist aus meiner Sicht die Funktion/Umsetzung. Wenn ich mal testweise den ConversationListPageHandler oder den ArticlePageHandler manipuliere (Rückgabe nicht visible), dann wird trotzdem alles angezeigt?!?

    Gruß, Udo

  • Bitte die Dokumentation der Methode beachten:

    Quote

    Returns false if this page should be hidden from menus, but does not control the accessibility of the page itself. The visibility can optionally be scoped to the given object id.

    PS: Da es nun auch das WSC 3-Label gibt, habe ich das manuelle Präfix im Thementitel mal entfernt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!