Verständnisfrage bzgl. "ausgeblendete Menüpunkte nach dem Einloggen" und SuperUser

  • Joomla Version
    5.1.0
    PHP Version
    PHP 8.1.x
    Hoster
    Strato
    Link (URL) zur Seite mit dem Problem
    www.liubicia.de

    Hallo zusammen und Moin,


    vielleicht könnt Ihr mir ja bei einem Verständnisproblem helfen.

    Sehe ich das richtig, dass ich Menüpunkte, die man üblicherweise für Eingeloggte ausblenden kann, für SuperUser nicht ausblenden kann?


    Ich habe in meinem Hauptmenü einen Menüeintrag "Anmelden". Wer da draufklickt, kommt zur Anmeldemaske. Dieser Menüpunkt soll nach dem Anmelden ausgeblendet werden.

    Das funktioniert bei meinem Standard-Dummy-User Hans Dosenkohl, der ein ganz normaler registierter Benutzer ist, aber nicht bei mir als SuperUser.


    Hier mal eine Beschreibung meiner Konfigurationen. Ich habe mir (leider), um es mir ein wenig einfacher zu machen, die Gruppen, Ebenen et al. deutsche Bezeichnungen überlegt, die mir helfen sollen, das zu verstehen. Das müsste aber (trotz der abweichenden Bezeichnungen) die Basiseinstellung sein, die Joomla auch bei einer Blankinstallation hat.


    Meine Gruppen- und Benutzereinstellungen sehen wie folgt aus.

    • In meinen Benutzergruppen habe ich eine Gruppe namens "nichtregistierter Besucher" (für ursprünglich "Guest"), außerdem habe ich eine Zugriffsebene namens "für nicht registierte Besucher" (hieß ursprünglich glaub ich auch "Guest")
    • auf diese Zugriffsebene hat ausschließlich die genannte Benutzergruppe Zugriff, die Benutzergruppe hat auch keinen Zugriff auf irgendeine andere Ebene
    • In der Benutzer-Konfiguration habe ich (unter Benutzeroptionen) diese Benutzergruppe außerdem als "Gast Genutzergruppe" definiert
    • für den normalen registrierten Benutzer gibt es die Zugriffsebene "für Registierte" und die Gruppe "Registierter Gast". Das ist auch die Gruppe für neue Benutzer

    Wenn ich keinen groben Schnitzer eingebaut hab, müsste das im Prinzip eigentllich die Standardkonfiguration sein (nur mt anderen Namen)


    Jetzt habe ich in meinem Menü zwei Menüpunkte eingerichtet:

    • Menüpunkt "Anmelden" als Menüeintragstyp "Anmeldeformular" und mit der Zugriffsebene "für nicht registierte Besucher"
    • Menüpunkt "Abmelden" als Menüeintragstyp "Abmelden" und mit der Zugriffsebene "für Registierte"

    Wenn jetzt mein normaler DummyUser Hans Dosenkohl die Seite aufruft, passiert auch alle so, wie es soll:

    • er sieht (nur) den Menüpunkt "Anmelden", kann dort draufklicken, seine Daten eingeben und sich einloggen
    • nach dem erfolgreichen Einloggen verschwindet der Menüpunkt "Anmelden", dafür ist jetzt der Menüpunkt "Abmelden" sichtbar.
    • Klickt er darauf, kann er sich erfolgreich abmelden und alles ist wie am Anfang...

    So weit, so gut

    ABER!!!!

    Wie wir ja in diesem Thread zum Thema Probleme bei der Freischaltung von Usern herausgefunden haben, muss man die SuperUser auch der Benutzergruppe "Guest" (oder in meinem Fall "nichtregistierter Besucher") zuordnen, weil er sonst die Neuregistierungen nicht über den Link freischalten kann.

    Das aber hat zur Folge, dass ich als SuperUser jetzt nach dem Einloggen den Menüpunkt "Anmelden" doch sehe. Er soll ja "für nichtregistrierte Besucher" sichtbar sein, und ich bin als SuperUser auch der Guppe "nichtregistierter Besucher" zugeordnet (sonst funktionert das Freischalten ja nicht...)


    Und genau das ist eben mein Verständnisproblem:

    Sehe ich das richtig, dass ich Menüpunkte, die man üblicherweise für Eingeloggte ausblenden kann, für SuperUser nicht ausblenden kann? hmmhmmhmm

  • Ja, der Superuser sieht immer alles.

    Das ist nicht korrekt, ein Super User sieht natürlich nur das, wofür er auch die Berechtigung hat.


    Um das Problem anzugehen kannst du einen kleinen Kniff versuchen:


    - Lege einen Menüpunkt zum Anmeldeformular mit dem Namen "Anmelden" an und gib ihm die Zugriffsebene "Public" (nicht Gast) und gleichzeitig stellst du unter dem Reiter "Linktyp" (englisch "Link Type") ein, dass das Menu-Item nicht im Menu sichtbar sein soll

    - Lege dann einen zweiten Menupunkt an vom Typ "Alias", diesen gibst du nur der Gastrolle frei (als Zugriffslevel) und verweist auf deinen versteckten "Anmelden"-Link

    - Entferne Super User aus dem Zugriffslevel Gast (macht absolut keinen Sinn ihn dort zu haben)


    Das sollte dein Problem lösen.

  • Um das Problem anzugehen kannst du einen kleinen Kniff versuchen:

    - Lege einen Menüpunkt zum Anmeldeformular mit dem Namen "Anmelden" an und gib ihm die Zugriffsebene "Public" (nicht Gast) und gleichzeitig stellst du unter dem Reiter "Linktyp" (englisch "Link Type") ein, dass das Menu-Item nicht im Menu sichtbar sein soll

    - Lege dann einen zweiten Menupunkt an vom Typ "Alias", diesen gibst du nur der Gastrolle frei (als Zugriffslevel) und verweist auf deinen versteckten "Anmelden"-Link

    - Entferne Super User aus dem Zugriffslevel Gast (macht absolut keinen Sinn ihn dort zu haben)


    Das sollte dein Problem lösen.

    Kniff funktioniert prima. Gerade mal getestet.

    Danke für die Korrektur, man lernt nie aus.

  • - Entferne Super User aus dem Zugriffslevel Gast (macht absolut keinen Sinn ihn dort zu haben)

    Dann funktioniert leider das Freischalten von neuen Usern nicht mehr problemlos, wie wir hier in diesem Thread festgestellt haben. Damit ein SuperUser neue User automatisch per Klick auf einen Link in der entsprechenden Mail freischalten kann, muss er auch den Zugriffslevel Gast haben.


    Aber den Kniff an sich probiere ich mal aus! Danke :)

  • Dann funktioniert leider das Freischalten von neuen Usern nicht mehr problemlos, wie wir hier in diesem Thread festgestellt haben. Damit ein SuperUser neue User automatisch per Klick auf einen Link in der entsprechenden Mail freischalten kann, muss er auch den Zugriffslevel Gast haben.


    Aber den Kniff an sich probiere ich mal aus! Danke :)

    Doch das funktioniert. Nochmal: es macht absolut keinen Sinn irgendjemanden in die Gästegruppe zu stecken. Die Aussage in dem Thread sind einfach falsch. Mit der Kombination von oben funktioniert es, wie es funktionieren soll. Keine Gastgruppe notwendig für Super User!

  • Meiner Ansicht nach darfst Du unter guest / Gast keine Gruppen anlegen. Für mich ist unklar, was dann passiert; möglicherweise genau so ein Kuddelmuddel, wie Du ihn jetzt hast.


    Ich habe mal die Experten bei Mattermost gefragt, was die Expertenmeinung dazu ist.

  • Nochmal: mein "Kniff" löst genau das Problem. Ignoriere die Aussagen des anderen Threads....die sind einfach falsch.

    Dann habe ich aber das Problem, dass ich neue User nicht per Link freischalten kann, wenn ich nur der Gruppe SuperUser angehöre.


    Hast Du eine Idee, woran das liegen könnte?


    Ich hab mir übrigens gerade noch mal eine Blanko-Installation auf den Server gepackt und gehe gerade alle Benutzer-Optionen durch, finde aber keine Unterschiede zu meinen Einstellungen ;(

  • Dann habe ich aber das Problem, dass ich neue User nicht per Link freischalten kann, wenn ich nur der Gruppe SuperUser angehöre.

    Das Problem wird doch genau gelöst, wenn du meiner Liste folgst...du musst dein Menü bisschen umstellen.

    Wir reden hier nun von 3 Links und 3 Zugriffsebenen:

    - Public

    - Guest

    - Registered

    (bzw. je nachdem wie du die benannt hast)


    Nutzt du alle drei entsprechend meinen Anweisungen oben? Hast du es auch wirklich getestet und nicht nur theoretisch darüber nachgedacht?

  • Hast du es auch wirklich getestet und nicht nur theoretisch darüber nachgedacht?

    Ja, ich habe es ausgetestet.


    Vielleicht das vorweg:

    Hat der SuperUser nicht Zugriff auf die Guest-Ebene, dann wird der Menüpunkt "Anmelden" auch ohne die Menü-Umstellung ausgeblendet. Sie wäre also nicht notwendig.


    Um aber Fehler auszuschließen, habe ich auch die Menü-Umstellung vorgenommen und auch ausprobiert. Und ich habe genau das Problem, das ich auch schon beschrieben habe:

    • Hat der SuperUser nicht Zugriff auf die Guest-Ebene, dann wird der Menüpunkt "Anmelden" ausgeblendet - aber der SuperUser kann keine neuen User per Link freischalten
    • Hat der SuperUser Zugriff auf die Guest-Ebene, dann kann er neue User per Link freischalten - aber der Menüpunkt "Anmelden" ist immer sichbar, auch nach dem Einloggen, und zwar unabhängig davon, ob ich die Variante mit der Menüumstellung habe oder den direkten Link mit Guest-Zugriff habe.

    Ich habe sogar zu Testzwecken einen 2. SuperUser angelegt und die Zugriffsebenen vice versa ausprobiert. Das Ergebnis ist immer identisch

  • Hier sprichst Du von zwei Menüeinträgen:

    • "Anmelden" als Menüeintrag "Public", aber nicht im Menü sichtbar
    • "Alias-Anmelden" mit Gastrolle

    Und so ist es gerade auch auf der o.g. Homepage eingerichtet. Ich richte gerne auch einen dritten Link ein, aber dann müsstest Du mir sagen welchen.


    Und ja, die Registierung ist auf "public". Wenn Du auf der Seite bist und auf den Menüpunkt "Intern" gehst, siehst Du den Button "Anmelden". Wenn Du da draufklickst, kommst Du auf die Anmeldeseite. Dort gibt es dann bei "Benutzername vergessen?" & "Passwort vergessen?" auch einen (öffentlichen) Link für die Registierung.


    Schau bitte nach, damit Du es mir auch glaubst. Du darfst auch gerne den Registierungsprozess einmal selbst ausprobieren (Achtung! Ort ist Pflichtangabe). Die Registrierung an sich funktioniert auch,


    Das Ganze scheitert erst an dem Punkt, an dem ich den neuen User per Link freischalten will. Wenn ich den Link in der Mail anklicke, bekomme ich die Fehlermeldung

    Zitat

    Keine Berechtigung um diese Ressource einzusehen.

    Ich kann den neuen User also nicht über den Systemlink freischalten.


    Die einzige Lösung, die bisher dafür gefunden wurde war, dass ich als SuperUser gleichzeitig auch Zugriff auf die Guest-Ebene haben muss. Erst dann kann ich neue User per Link freischalten.

  • Bei mir hat der Anmelde-Link IMMER "Gast" als Zugriffsebene und der Abmelden-Link immer "Registered". Das funktioniert problemlos. Und "Gast" solltest Du NUR verwenden, wenn es um nicht angemeldete Benutzer geht; sonst schießt Du gegebenenfalls das ganze Berechtigungskonzept von Joomla ab.

  • Bei mir hat der Anmelde-Link IMMER "Gast" als Zugriffsebene und der Abmelden-Link immer "Registered". Das funktioniert problemlos. Und "Gast" solltest Du NUR verwenden, wenn es um nicht angemeldete Benutzer geht; sonst schießt Du gegebenenfalls das ganze Berechtigungskonzept von Joomla ab.

    So hatte ich es ja auch - bis ich festgestellt habe, dass ich dann als SuperUser keine Neuregistierungen per Mail freischalten kann.


    bembelimen

    der Link lautet z.B. https://www.liubicia.de/intern…istration.activate&token=... (den konkreten Token hab ich mal rausgelöscht). Das ist der Link, den das System an den SuperUser schickt, nachdem der neue User seine Anmeldung bestätigt hat. "interner-bereich" ist ein #-URL-Menüeintrag auf der obersten Ebene, unter dem sich dann der eigentliche Anmelden-Link befindet. Der ist natürlich auch öffentlich.


    Hier der Screenshot. Ich hoffe, es ist das, was Du meinst: