Anzeige Datenschutzerklärung (Modal Link) zusammen mit Passwortrücksetzung erforderlich

  • Hallo zusammen,


    ich bin mir nicht ganz sicher ob es wirklich ein Bug ist, sieht aber fast danach aus.


    Kurzform:

    Sobald man bei einem neuen User die Option "Passwortrücksetzen erforderlich" auf Ja setzt und dieser dem Datenschutz noch nicht zugestimmt hat, so hat er bei der ersten Anmeldung keine Möglichkeit den Beitrag mit der Datenschutzerklärung einzusehen. Statt des Beitrag wird die Seite selbst angezeigt. (siehe Screenshot)


    Ausführliche Beschreibung:

    1. Neuer User wird im Backend angelegt (eigene Registrierung im FE abgeschaltet)
    2. User bekommt Startpasswort und Option "Passwortrücksetzung erforderlich" = JA
    3. User loggt sich mit Startpasswort ein und muss dem Datenschutz zustimmt und ein eigenes Passwort eingeben

    Bei diesem ersten Login ist links neben den Zustimmung-Optionsfeldern der Link zur Datenschutzerklärung. Diese sollte sich in einem Modal-Fenster öffnen. Sobald aber eine Passwortrücksetzung erforderlich ist, funktioniert das nicht. Stattdessen wird die eigene aktuelle Seite modal geöffnet.

    Verzichtet man auf die Passwortrücksetzung, so wird die Datenschutzerklärung ohne Probleme angezeigt.


    P.S. Die Zustimmung mit der Passwortrücksetzung funktioniert. Lediglich die Anzeige der Datenschutzerklärung funktioniert in diesem Zusammenhang nicht.

    Kann das jemand nachvollziehen und hat jemand eine Lösung hierfür?
    Ich denke mal, dass in diesem Falle die Prüfung "requireReset == 1" nicht relevant sein sollte. Nur wo findet diese Prüfung statt? ;)

  • Ich kann mich nur erinnern, dass ich deswegen mal eine Krücke für einen Joomla-Kunden gebastelt habe, der per Sammellauf alte Nutzer eingespielt hatte und Passwortrücksetzung auf Ja hatte und DSE-Ja aktiviert.


    Dann kam der Teufelskreis.


    Keine Ahnung, obs dir hilft. Ich habe für diese Fälle in einem Override der com_users/profile.php eine Weiche drinnen, die dann auf eine EXTERN liegende (also NICHT selbe Domain) Datenschutzerklärung im HTML-Format verlinkt.


    Das ganze ist halt eine Krücke, weil wir keine Lust mehr hatten. Nachteil: Man muss dran denken, dass diese EXTERNE DSE auch gepflegt wird, wenn mal geändert wird.


    Am Anfang prüfe ich, ob Nutzer noch eine Rücksetzung am Laufen hat:

    Code
    $requireReset = JFactory::getUser()->requireReset;

    Aus dieser Zeile 67 (aus Joomla 3.9.15)

    https://github.com/joomla/joom…profile/tmpl/edit.php#L67

    mache ich dann

    Ich bastel mir also hartkodiert einen eigenen Datenschutzlink ein.


    Grund ist übrigens eine Totalblockade ALLER anderen Joomla-Seiten für Benutzer, die angemeldet sind, aber noch DSE noch nicht bestätigt haben. Komplett egal, welche INTERNE Seite da versucht wird aufzurufen. In diesem Fall halt die DSE. Ist ja auch nur eine INTERNE Seite.

  • Das wäre schon einmal ein Ansatz für einen Workaround.


    Ich hatte mir ansonsten auch überlegt, ob man das Plugin nicht etwas modifizieren könnte. Wobei die Ausgabe ja eher über das enthaltene Feld privacy.php generiert wird.

    Da man die ID des Beitrag hat, könnte man doch statt der Verlinkung sich den Inhalt des Beitrag holen und diesen dann modal ausgeben. Oder übersehe ich da etwas?

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Hm, das ist tatsächlich unglücklich. Würde es auch als Notlösung über das Override versuchen.


    Der Vollständigkeit halber: Hier existiert ein Ticket dazu, in dem aber der Stand seit April letzten Jahres zu sein scheint, dass das nicht so einfach zu lösen ist.

  • Ich habe jetzt eine Lösung gefunden.
    Es ist ein Override der "layouts\plugins\system\privacyconsent\label.php"

    Zu diesem muss aber ein Language String "PLG_SYSTEM_PRIVACYCONSENT_READ" erstellt werden. Das ist für den Buttom im Footer des Modal-Fenster.


    Mit diesem Override wird der gleiche Artikel angezeigt, der im Plugin verknüpft ist. Sollte sich darin ein Modul o.ä. befinden, welche mit {loadmoduleid xx} oder so eingebunden ist, dann wird das auch ausgegeben.

    Wenn Ihr wollt, dann könnt Ihr ja mal testen.