diff options
author | Habeas Codice <habeascodice@federated.social> | 2015-01-24 22:14:35 -0800 |
---|---|---|
committer | Habeas Codice <habeascodice@federated.social> | 2015-01-24 22:14:35 -0800 |
commit | f9aaa03036b11b00654787475c7ee05c4517b78e (patch) | |
tree | b987e2bcd87bdc52ce6d9e37db1d6cf94d882863 /include/network.php | |
parent | 1d6aead325aa052fbacaad24efdbc784f1ee9407 (diff) | |
parent | dfc6126a65443567c74bb4568e0a32e8248eda80 (diff) | |
download | volse-hubzilla-f9aaa03036b11b00654787475c7ee05c4517b78e.tar.gz volse-hubzilla-f9aaa03036b11b00654787475c7ee05c4517b78e.tar.bz2 volse-hubzilla-f9aaa03036b11b00654787475c7ee05c4517b78e.zip |
Merge branch 'master' of https://github.com/friendica/red
Diffstat (limited to 'include/network.php')
-rw-r--r-- | include/network.php | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/include/network.php b/include/network.php index 170b77d7d..224d9d5e1 100644 --- a/include/network.php +++ b/include/network.php @@ -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; } |