Hallo liebe Community,
heute kam genau das Thema "Login im FE nur mit Mitgliedername" auch bei mir auf und @xtra war so freundlich ein kleines Script dafür zu basteln, dass die ursprüngliche Idee sogar noch erweitert.
Hinweis:
Dieses Vorgehen ist logischerweise nicht so sicher wie der reguläre Login via Passwort und Benutzername.
Überlegt euch sehr, sehr gut ob und wo Ihr diese Methode anwendet.
In meinem Fall geht es nur um ein paar ergänzende Seminarunterlagen, die nicht ganz frei zugänglich sein sollen, weshalb ich keine Bedenken bzgl. der Sicherheit haben muss.
Einrichtung
Legt eine Mitgliedergruppe (zB "Direktlogin") an, in der die Mitglieder sich ohne Passwort einloggen dürfen und merkt euch dessen Gruppen-ID, die beim "hover" über den blauen Kreis ganz rechts in der Gruppenliste zu sehen ist.
Öffnet die Datei
PHP-Code:
system/config/initconfig.php
und tragt dort folgenden Code ein:
PHP-Code:
<?php
$GLOBALS['TL_HOOKS']['checkCredentials'][] = array('MyClass', 'myCheckCredentials');
if (\Input::post('username') && !\Input::post('password')) {
\Input::setPost('password', 'dontcare');
}
class MyClass
{
public function myCheckCredentials($username, $password, \User $user)
{
// 42 == member group id of autologin members.
if (($user instanceof \FrontendUser) && $user->isMemberOf(42)) {
return true;
}
}
}
Tauscht die "42" durch die ID eurer Mitgliedergruppe aus
Funktion
Ist das Mitglied nicht in der Gruppe "Direktlogin" und versucht sich anzumelden, greift der normale Anmeldemechanismus.
Befindet sich das Mitglied jedoch in der Gruppe "Direktlogin", so kann es sich mit und ohne Angabe des Passwortes nur mit seinem Benutzernamen anmelden.
In meinem Fall wird der Benutzername eine Kursnr. sein, ist also nicht für jeden sofort zu erreaten.
Jedoch sei auch an dieser Stelle nochmal explizit darauf hingewiesen:
Diese ist logischerweise nicht so sicher wie der reguläre Login via Passwort und Benutzername. Wendet Sie nicht an wenn Ihr Daten habt, die Ihr wirklich schützen wollt oder müsst. Überlegt euch vor dem Einsatz gut, ob es nicht auch anders geht.
Vielen Dank an dieser Stelle nochmal an @xtra für das Bereitstellen dieser Lösung!
Lesezeichen