Module veröffentlichen-externes Script

  • Hallo zusammen,


    ich will von einem bestimmten Gerät aus, ein Modul aktivieren und ein anderes deaktivieren. Beide Module sind auf der gleichen Position.


    Das ganze soll aber ohne login ins backend funktionieren.


    Es geht um eine Anzeige auf der Seite ob eine cocktailbar gerade geöffnet oder geschlossen hat.


    Das soll mit einfachsten Mitteln und ohne viel geklicke funktionieren.


    Wenn ihr Ideen habt freue ich mich auf input.


    Beste Grüße

    Daniel

  • Für einen neuen Benutzer einer neun Benutzergruppe die z.B. eben nur die gewünschten Module wie gewünscht verändert abspeichern können dürfen, per Benutzerrechte usw.


    Könnte man den Login ja z.B. auch per "verstecktem" Front-End-Login lösen über ein vorausgefülltes Frontend-Login-Formular per eigenem Layout im Template:


    Beispiel für cassiopeia:


    Login-Override für com_users erstellen und anschließend darin die Datei default_login.php

    z.B. in einen selbstgewählten "geheimen Dateinamen" :


    /html/com_users/login/verstecktabc_login.php

    im Template „cassiopeia“ umbennennen.


    In dieser Datei dann z.B. nach der Zeile 19:

    HTMLHelper::_('behavior.formvalidator');


    nachfolgendes mit den entsprechenden Benutzer-Logindaten ergänzen:


    Code
    $this->form->setValue('username', null, 'Beispielusernamexyz') ;
    $this->form->setValue('password', null, 'beispielpasswortxyz') ;
    $this->form->setFieldAttribute('password', 'type', 'hidden') ;


    Dieser versteckte Login ist dann zugänglich und nutzbar per:


    https://example.com/index.php?option=com_users&view=login&layout=verstecktabc


    Aber beachte das im Seitenquelltext dieses Logins das Passwort sichtbar ist und daher dieser versteckte Login nicht wirklich "sicher" ist!


    Könnte man natürlich wohl z.B. per "WebAuthn Passwortlose Anmeldung" mit FIDO2 verbessern, sofern das benutze Gerät dies unterstützt.

  • Hallo Sieger66,


    Danke für Deine Antwort. Klingt auf jeden Fall schon mal interessant. Von "WebAuthn Passwortlose Anmeldung" mit FIDO2 habe ich noch nie gehört - werde ich mir mal zu Gemüte führen.


    Beste Grüße

    Oni

  • Da bist du sicherlich nicht der einzige daher eventuell auch nützlich:


  • Am sinnvollsten wäre natürlich ein Gerät mit Trusted Platform Module (TPM).

    Dieses Modul ist in manchen Mainboards und auch in manchen CPU´s schon fest eingebaut.


    Wird übrigens für Windows11 zukünftig zwingend erforderlich sein, wenn die bisherigen Aussagen weiterhin gelten.

  • Muß meinen obigen post #9 noch berichtigen:


    Bezüglich (WebAuthn Passwordless Login) in Joomla! 4:

    Habe es am 29.10.21 mal mit Joomla! 4 das ja die Passwordless-Web-Authentification im Core hat

    und einem Windows10-Computer mit Firefox 93.0 und mit eingebautem TPM-Modul im Prozessor getestet.

    Mit dem Ergebnis das sich derzeit auf diesem Wege per Windows-Hello-Pin die FIDO2-Funktionalität zusammen mit Joomla!4 leider nicht einrichten und benutzen lässt.


    Also ist derzeit wohl z.B. ein USB-Stick mit FIDO2-Funktionalität oder ein entsprechender YubiKey erforderlich wenn man WebAuthn Passwordless Login mit Joomla! 4 verwenden möchte.

    So ist es ja auch in der Doku beschrieben.

  • Ü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ß.

  • Ich würde ja einfach ein override von mod_custom machen (freischalten.php) und in dieser Datei zwei Sachen eintragen:

    1. Die Datenbankabfrage die die Artikel (anhand der ID) aktiviert oder deaktiviert.

    2. Ein Check für einen Hash der übergeben werden muss, damit die Datenbankabfragen ausgeführt werden können


    Dann legst du einen dritten Artikel an, in dem du einfach das Modul drin lädst. Last but not least packst du nun einen direkten Link zum Artikel + den hash in deine Bookmarks. Ein Klick nun darauf ändert die Anzeige.

  • 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.