]> git.mxchange.org Git - friendica.git/commitdiff
Add allowed_domain generic function
authorHypolite Petovan <mrpetovan@gmail.com>
Thu, 4 Jan 2018 16:57:41 +0000 (11:57 -0500)
committerHypolite Petovan <mrpetovan@gmail.com>
Thu, 4 Jan 2018 16:57:41 +0000 (11:57 -0500)
include/network.php

index 16c8185e1abb48b0fec1ada966fe06a0e9ffce35..2f8b24b8b653d65e2bb9fbce3c0e1de07286148d 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;
 }