diff options
author | Mike Macgirvin <mike@macgirvin.com> | 2010-09-23 15:36:21 -0700 |
---|---|---|
committer | Mike Macgirvin <mike@macgirvin.com> | 2010-09-23 15:36:21 -0700 |
commit | 4c2fbc81a043eabb984bf2da56081102dda64b70 (patch) | |
tree | eddbd7dac0ec9c2aacc502a995595d91e381317b | |
parent | aedae07af63ff72b288b165e3263275285dc3c71 (diff) | |
download | volse-hubzilla-4c2fbc81a043eabb984bf2da56081102dda64b70.tar.gz volse-hubzilla-4c2fbc81a043eabb984bf2da56081102dda64b70.tar.bz2 volse-hubzilla-4c2fbc81a043eabb984bf2da56081102dda64b70.zip |
for corp and edu sites, allow registration only to certain email addrs
-rw-r--r-- | boot.php | 30 | ||||
-rw-r--r-- | mod/register.php | 6 |
2 files changed, 36 insertions, 0 deletions
@@ -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.') ; |