aboutsummaryrefslogtreecommitdiffstats
path: root/include/network.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2015-01-26 18:27:03 -0800
committerfriendica <info@friendica.com>2015-01-26 18:27:03 -0800
commitac594183c6fdc6cf4d5a2a29ade7478a17336397 (patch)
treed38f73727da4d8697b00d2102ae10b501d1909ce /include/network.php
parente6bfe3f2c10e851ed5ba49886ec8d0a9a9de2296 (diff)
parent9f5bfca28dde23893156ad36682e20ca2fc0dd45 (diff)
downloadvolse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.gz
volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.tar.bz2
volse-hubzilla-ac594183c6fdc6cf4d5a2a29ade7478a17336397.zip
Merge branch 'master' into tres and add some work on the item_deleted flag refactor
Conflicts: include/attach.php include/onedirsync.php include/zot.php mod/locs.php
Diffstat (limited to 'include/network.php')
-rw-r--r--include/network.php35
1 files changed, 29 insertions, 6 deletions
diff --git a/include/network.php b/include/network.php
index 8082d0217..5f95cf0e0 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;
}