Beiträge von Sieger66

    Ich hatte nun Zugriff auf die Datenbank und den Fehler korrigiert sowie per PN:


    Habe dir jetzt die Benutzergruppen 6 , 3 und 8 in der Zugriffsebene Spezial eingetragen.


    Ist so eigentlich Joomla-Standard und du kannst dies bei Bedarf nun selbst im Backend ändern.


    Aber nie die Benutzergruppe SuperUsers aus der Zugriffsebene Spezial entfernen!


    Autor und Manager und deren "Untergruppen" sind ebenfalls auf die Zugriffsebene Spezial angewiesen,

    deshalb die zwei weiteren Benutzergruppen in der Zugriffsebene Spezial.


    Siehe auch:


    Aber was mich am meisten neugierig macht ist, wieso kannst Du mir einen Link aus meinen Backend hier senden?

    Viele Seiten sind in allen Jommla mit identischer Adresse aufrufbar und sind häufig relativ einfach zusammengesetzt:


    fsvsoemmerda.de/administrator/index.php?option=com_users&view=levels

    User-Komonente:

    option=com_users

    gib mir den

    view=levels


    Wenn man angemeldet ist, führt Joomla!4.x dann unter anderem z.B. die nachfolgende Datei aus:


    /administrator/components/com_users/tmpl/levels/default.php


    sofern es diesbezüglich keinen Template-Override gibt.

    Wie oben im Linkziel ab #13 beschrieben ist "viewlevels" die zu korrigierende Tabelle.

    Wobei nur 8 in rules in #14 einzutragen ist !

    Also [8] muß dort stehen vor dem Speichern.


    Die 11 ist dort nur eingetragen weil MichaP eine weitere Benutzergruppe mit Zugriff auf "spezial" erstellt hatte.

    Ist der Benutzer auch in einer Benutzergruppe die in der Zugriffsebene spezial ist ?


    example.com/administrator/index.php?option=com_users&view=levels


    Kannst du nachschauen:


    fsvsoemmerda.de/administrator/index.php?option=com_users&view=levels


    ebenso:


    example.com/administrator/index.php?option=com_users&view=users


    Welche Administrator-Module sind bei dir in der Zugriffsebene spezial ?


    example.com/administrator/index.php?option=com_modules&view=modules&client_id=1

    Ja, für einen der PHP usw. kann, gibt es natürlich auch andere Lösungen.

    Ähnlich wie in dem nachfolgemdem Linkziel ist es ja auch denkbar die gewünschten Funktionalitäten ohne Override in eine einzige Datei zu stecken:


    Joomla Beitrag per Url sichtbar schalten


    Darin kann natürlich auch ein Check für einen Hash der übergeben werden muss, damit die Datenbankabfragen ausgeführt werden können, eingebaut werden. Und darin eben auch die gewüschten Module(anhand der ID) aktivieren oder deaktivieren. Eventuell auch Hash-abhängig usw.


    Natürlich müßte dann die Datenbankabfrage auf die Module-Datenbanktabelle geändern werden:

    Tables/modules - Joomla! Documentation


    Anstatt #__content dann #__modules usw.


    Auch da genügt es dann einen direkten Link zur Datei + den hash in die Bookmarks zu legen.

    Ein Klick nun darauf ändert die Anzeige.

    Dann ist ja wohl alles soweit gut.

    Ich hatte die Hinweise in #15 insbesondere auch für andere Forumsbesucher geschrieben die ein ähnliches Problem haben und auf diese Lösung stoßen und diese Lösung anwenden.

    Beachten und eventuell testen sollte man das wenn mehrere Personen den selben Loginnamen benutzen das es nicht zu unerwüschten effekten kommt.


    Beispiel: Benutzer 1 und 2 bearbeiten im gleichen Zeitraum den selben Beitrag.


    Benutzer 1 bearbeitet und speichert geänderten Beitrag und Benutzer 2 speichert später andere Änderung und dadurch ist die Änderung von Benutzer 1 nicht mehr vorhanden. Weil Benutzer 2 ebenfalls die alte Beitragversion ausgecheckt und bearbeitet hatte.


    Dieses mögliche Problem müßte dann aber eigentlich auch schon bei euch bei Joomla 3.x vorliegen, zumindest soweit es die Eingaben betrifft wenn ihr euch bisher dort nicht angemeldet habt.



    Es sind daher eventuell mehrere spezielle Loginformulare mit jeweils anderen Benutzernamen im Code darin zu verwenden.


    Kann man dann z.B. auch zu individuellen Weiterleitungszielen nach der Anmeldung nutzen.



    /template/TEMPLATENAME/html/com_users/login/testlayout1_login.php


    /template/TEMPLATENAME/html/com_users/login/testlayout2_login.php



    Könnte man aber auch durch anhängen entsprechender Daten an die aufrufende url und verarbeiten der get-Daten in der bestehenden Datei testlayout_login.php lösen.

    Ist https wirklich richtig oder ist es doch http ?

    Die User-Profil-Seite kommt dann wenn das Weiterleitungsziel nicht richtig "funktioniert".

    Versuche mal testweise ein anderes public Weiterleitungsziel auf eurer Website.

    Kannst auch mal die Weiterleitung versuchen im Code in der Zeile 120 mit


    <?php $return = '116'; ?>


    Wobei 116 durch die ID-Nummer des public Menüeintrages ersetzt werden müßte auf den weitergeleitet werden soll.

    Die ID-Nummer siehst du bei den Menüeinträgen in der Spalte ID siehe z.B. auch:


    help.joomla.org/proxy?keyref=Help42:Menus:_Items&lang=de#Bildschirmfoto

    Lass deinen Code in den Zeilen 34 und 39-41 weg.


    Nachfolgenden Code, ist in der Orginal-Core-Datei derzeit in Zeile 109, ist bei dir halt in einer höheren Zeilennummer,

    löschen oder korrekt auskommentieren:


    <?php $return = $this->form->getValue('return', '', $this->params->get('login_redirect_url', $this->params->get('login_redirect_menuitem', ''))); ?>


    an dessen Stelle in dieser Zeile oder in der Zeile darüber folgenden Code entsprechend verwenden:


    <?php $return = 'https://example.com/weiterleitungsseite'; ?>


    Den Dateinamen würde ich aber nicht

    /template/TEMPLATENAME/html/com_users/login/testlayout.php

    sondern wie nachfolgend mit angehängtem _login verwenden.

    /template/TEMPLATENAME/html/com_users/login/testlayout_login.php


    Falls du später einen eigenen Menüeintragstyp daraus machen möchtest,

    mußt du dann z.B. den Dateinamen nicht mehr ändern.

    Oder falls Joomla im Core später mal was ändert könnte es auch einfacher sein...

    Übrigens wenn du dann auch noch nachfolgende Javascript-Zeilen:


    Code
    <script>
    window.onload = function() {    
    window.document.forms[0].submit();
    };
    </script> 

    nach dem

    ?>

    in Zeile 26 hinzufügst wird auch gleich die Anmeldung ausgeführt wenn das vorausgefüllte spezielle Login-Formular aufgerufen wird, ohne das man dann noch auf einen Button im Formular klicken muß.

    Übrigens wenn du dann auch noch nachfolgende Javascript-Zeilen:


    Code
    <script>
    window.onload = function() {    
    window.document.forms[0].submit();
    };
    </script> 

    nach dem

    ?>

    in Zeile 26 hinzufügst wird auch gleich die Anmeldung ausgeführt wenn das vorausgefüllte spezielle Login-Formular aufgerufen wird, ohne das man dann noch auf einen Button im Formular klicken muß.

    Bitte zukünftig das Crossposting nicht erst am Ende des Threads einfügen sondern sofort wenn die Frage in einem anderen Forum gestellt wurde.


    Siehe auch in den Forenregeln :


    Zitat
    avatar-default.svg Zitat von Das Forenteam

    Für die Fragesteller:

    • Wenn eine Frage in mehreren Foren gestellt wird ist es ein Gebot der Fairness, diese Fragen zu verlinken (Crossposting)


    Eventuell nützlich, hab ich aber mit Joomla4 noch nicht benutzt oder getestet:



    Frontend Login


    Das spezielle Frontend-Loginformular müßte man ja in diesem Fall nicht verstecken und könnte es auch z.B. per Menüeintrag aufrufbar machen.