Check allowed emails, also add blacklisting for

not allowed emails:
config:'system','not_allowed_email'
This commit is contained in:
Christian Vogeley
2015-01-25 04:16:28 +01:00
parent 63f1ae5e20
commit ba10833bc5
5 changed files with 29 additions and 595 deletions

View File

@@ -464,24 +464,47 @@ function allowed_email($email) {
return false;
$str_allowed = get_config('system','allowed_email');
if(! $str_allowed)
$str_not_allowed = get_config('system','not_allowed_email');
if(! $str_allowed && ! $str_not_allowed)
return true;
$found = false;
$return = false;
$found_allowed = false;
$found_not_allowed = false;
$fnmatch = function_exists('fnmatch');
$allowed = explode(',',$str_allowed);
if(count($allowed)) {
foreach($allowed as $a) {
$pat = strtolower(trim($a));
if(($fnmatch && fnmatch($pat,$domain)) || ($pat == $domain)) {
$found = true;
if(($fnmatch && fnmatch($pat,$email)) || ($pat == $domain)) {
$found_allowed = true;
break;
}
}
}
return $found;
$not_allowed = explode(',',$str_not_allowed);
if(count($not_allowed)) {
foreach($not_allowed as $na) {
$pat = strtolower(trim($na));
if(($fnmatch && fnmatch($pat,$email)) || ($pat == $domain)) {
$found_not_allowed = true;
break;
}
}
}
if ($found_allowed) {
$return = true;
} elseif (!$str_allowed && !$found_not_allowed) {
$return = true;
}
return $return;
}