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.