Bei der Registrierung nur bestimmte Mail-Adressen erlauben ?!

Started by Zerbiii, September 06, 2005, 08:52:25 AM

Previous topic - Next topic

Zerbiii

Hallo, ich hab ein kleines Problem:

Wir nutzen SMF ausschließlich im Intranet und für die Registrierung sollen nur E-Mail-Adressen einer speziellen Domain (also unserer) zugelassen werden. Im normalen Administrator Center besteht aber nur die Möglichkeit Domains zu bannen, nicht nur bestimmte zuzulassen. Es kann sich also jeder neue User mit einer anderen Mail-Addy anmelden und erhält keine Rückmeldung vom System, dass jene nicht erlaubt ist. Die "agreement.txt" wurde bereits geändert, aber das reicht mir nicht aus.

Weiß jemand, ob es einen Hack gibt, der eine "Whitelist" einbaut ? Die Möglichkeit bei der Registrierung nur bestimmte Domains zuzulassen, wäre natürlich noch besser.

Danke schon einmal für eure Hilfe.

Christian Land

Die registerMember Funktion muss angepasst werden (die findet sich in Subs-Members.php)... in der Funktion gibts den Block

if (empty($regOptions['email']) || preg_match('~^[0-9A-Za-z=_+\-/][0-9A-Za-z=_\'+\-/\.]*@[\w\-]+(\.[\w\-]+)*(\.[\w]{2,6})$~', stripslashes($regOptions['email'])) == 0)
fatal_error(sprintf($txt[500], $regOptions['username']), false);


dahinter müsste sowas wie:

if (!empty($regOptions['email']))
{

list($user,$domain) = split('@',$regOptions['email']);
$domain = strtolower($domain);

$allowed = array();
$allowed[] = 'domain.de';
$allowed[] = 'domain.com';
$allowed[] = 'whatever.org';

if (!in_array($domain, $allowed))
{
fatal_error(sprintf($txt[500], $regOptions['username']), false);
}

}


in $allowed müssen die Domains eingetragen werden, die erlaubt sind... gehts schief, kommt der normale Fehler der bei einer ungültigen Fehlermeldung kommt...

Zerbiii

Super !

Habe zwar smf 1.0.5 und der Code von dir scheint für 1.1 zu sein, aber konnte das problemlos umschreiben. Der Code steht dann in der "Register.php".

Klappt einwandfrei, thx für die schnelle Hilfe !


PS: Thema kann geclosed werden.

Advertisement: