Archive for April, 2009

Im meinem Falle wollte ich die Frontend-Registrierung nur für Mitglieder mit E-Mail Adressen auf einer Whitelist zulassen. Ist sicher nicht die feinste und update-freundlichste Lösung, aber ich habe dazu die Datei /system/libraries/Widget.php editiert.

Suchen (Zeile 555 in 2.6.7):
case 'email':
if (!preg_match('/^\w+([!#\$%&\'\*\+\-\/=\?^_`\.\{\|\}~]*\w+)*@\w+([_\.-]*\w+)*\.[a-z]{2,6}$/i’, $varInput))
{
$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['email'], $this->strLabel));
}

Danach einfügen:


if($_SERVER["HTTP_REFERER"] == “http://et-fulda.flowtec.net/registrieren.html”) {
$file_whitelist = file(’whitelist.txt’);
$file_blacklist = file(’blacklist.txt’);
$whitelist = array();
$blacklist = array();
foreach($file_whitelist AS $key => $value) $whitelist[] = trim($value);
foreach($file_blacklist AS $key => $value) $blacklist[] = trim($value);if((in_array($varInput, $blacklist)) OR (in_array(str_replace(’hs-fulda’, ‘fh-fulda’, $varInput), $blacklist))) {
$this->addError(”Das ist keine bekannte E-Mail Adresse unseres Fachbereiches.)”, $this->strLabel);
}
if(!(in_array($varInput, $whitelist) OR in_array(str_replace(’hs-fulda’, ‘fh-fulda’, $varInput), $whitelist))) {
$this->addError(”Das ist keine bekannte E-Mail Adresse unseres Fachbereiches”, $this->strLabel);
}
}

Nur Adressen in der whitelist.txt dürfen, aber die von der blacklist.txt haben Priorität und dürfen nicht (auch wenn sie gleichzeitig auf der whitelist stehen). Die Prüfung mit dem Referer war nötig, warum weiß ich aber nicht mehr (ist schon ne Weile her) :-)

Gestetet mit 2.6.1 und 2.6.7.

Die minimale Länge von standardmäßig 8 Zeichen kann nicht direkt im Backend als Option verändert werden, ist aber in folgenden Dateien verankert:

/system/modules/backend/dca/tl_user.php
/system/modules/backend/dca/tl_member.php
/system/modules/backend/password.php
/system/modules/frontend/FormPassword.php

Einfach im Editor nach “8″ suchen und nötige Stellen ersetzen. Getestet mit TL bis Version 2.6.7.