]> git.mxchange.org Git - friendica.git/blobdiff - include/network.php
Merge pull request #4183 from MrPetovan/bug/4173-fix-oembed-iframe-url
[friendica.git] / include / network.php
index 3e5e15d282f39206f9a60ecbecf0d0006466a32f..561c7aa9489a6305009f250bf23f6e38d525e6e3 100644 (file)
@@ -613,24 +613,37 @@ function allowed_email($email)
                return false;
        }
 
-       $str_allowed = Config::get('system', 'allowed_email');
-       if (! $str_allowed) {
-               return true;
-       }
+       $str_allowed = Config::get('system', 'allowed_email', '');
+       $allowed = explode(',', $str_allowed);
 
-       $found = false;
+       return allowed_domain($domain, $allowed);
+}
 
-       $fnmatch = function_exists('fnmatch');
-       $allowed = explode(',', $str_allowed);
+/**
+ * Checks for the existence of a domain in a domain list
+ *
+ * If strict is not set, an empty domain list counts as found
+ *
+ * @brief Checks for the existence of a domain in a domain list
+ * @param string $domain
+ * @param array $domain_list
+ * @param bool   $strict
+ * @return boolean
+ */
+function allowed_domain($domain, array $domain_list, $strict = false)
+{
+       $found = false;
 
-       if (count($allowed)) {
-               foreach ($allowed as $a) {
-                       $pat = strtolower(trim($a));
-                       if (($fnmatch && fnmatch($pat, $domain)) || ($pat == $domain)) {
+       if (count($domain_list)) {
+               foreach ($domain_list as $item) {
+                       $pat = strtolower(trim($item));
+                       if (fnmatch($pat, $domain) || ($pat == $domain)) {
                                $found = true;
                                break;
                        }
                }
+       } elseif(!$strict) {
+               $found = true;
        }
        return $found;
 }