aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--boot.php30
-rw-r--r--mod/register.php6
2 files changed, 36 insertions, 0 deletions
diff --git a/boot.php b/boot.php
index 05ec44462..83828a0df 100644
--- a/boot.php
+++ b/boot.php
@@ -848,6 +848,36 @@ function allowed_url($url) {
return $found;
}}
+if(! function_exists('allowed_email')) {
+function allowed_email($email) {
+
+
+ $domain = strtolower(substr($email,strpos($email,'@') + 1));
+ if(! $domain)
+ return false;
+
+ $str_allowed = get_config('system','allowed_email');
+ if(! $str_allowed)
+ return true;
+
+ $found = false;
+
+ $fnmatch = function_exists('fnmatch');
+ $allowed = explode(',',$str_allowed);
+
+ if(count($allowed)) {
+ foreach($allowed as $a) {
+ $pat = strtolower(trim($a));
+ if(($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) {
+ $found = true;
+ break;
+ }
+ }
+ }
+ return $found;
+}}
+
+
if(! function_exists('format_like')) {
function format_like($cnt,$arr,$type,$id) {
if($cnt == 1)
diff --git a/mod/register.php b/mod/register.php
index e65ba7c9b..b15ca4fb2 100644
--- a/mod/register.php
+++ b/mod/register.php
@@ -65,6 +65,12 @@ function register_post(&$a) {
dbesc($email)
);
+ if(!eregi('[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z]{2,6}',$email))
+ $err .= t(' Not valid email.');
+
+ if(! allowed_email($email))
+ $err .= t(' Your email domain is not among those allowed on this site.');
+
if($r !== false && count($r))
$err .= t(' Your email address is already registered on this system.') ;