diff options
author | Christian Vogeley <christian.vogeley@hotmail.de> | 2015-01-25 04:16:28 +0100 |
---|---|---|
committer | Christian Vogeley <christian.vogeley@hotmail.de> | 2015-01-25 04:16:28 +0100 |
commit | ba10833bc5ae0afb51d2fc6609370865386678fb (patch) | |
tree | 2099e04ccab359910166b26db8880e249d147c08 /include/network.php | |
parent | 63f1ae5e204cdb615a0edb0d16c4c471c2f3264e (diff) | |
download | volse-hubzilla-ba10833bc5ae0afb51d2fc6609370865386678fb.tar.gz volse-hubzilla-ba10833bc5ae0afb51d2fc6609370865386678fb.tar.bz2 volse-hubzilla-ba10833bc5ae0afb51d2fc6609370865386678fb.zip |
Check allowed emails, also add blacklisting for
not allowed emails:
config:'system','not_allowed_email'
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; } |