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.
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...
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.