#1343 Email hosts of members can be allowed or not.

Email hosts white list or black list can be managed through hostnames.

From
8fd5aeea2c
https://github.com/xpressengine/xe-core/issues/1343
This commit is contained in:
MinSoo Kim 2015-03-24 20:32:13 +09:00
parent 2260b30132
commit 7583bfd56f
12 changed files with 383 additions and 18 deletions

View file

@ -234,6 +234,23 @@ class memberController extends member
break;
case 'email_address' :
// Check managed Email Host
if($oMemberModel->isDeniedEmailHost($value))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = Context::getLang('managed_email_host');
$email_hosts = $oMemberModel->getManagedEmailHosts();
foreach ($email_hosts as $host)
{
$hosts[] = $host->email_host;
}
$message = sprintf($managed_email_host[$emailhost_check],implode(', ',$hosts),'id@'.implode(', id@',$hosts));
return new Object(0,$message);
}
// Check if duplicated
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($value);
if($member_srl && $logged_info->member_srl != $member_srl ) return new Object(0,'msg_exists_email_address');
@ -2015,6 +2032,22 @@ class memberController extends member
$member_srl = $oMemberModel->getMemberSrlByNickName($args->nick_name);
if($member_srl) return new Object(-1,'msg_exists_nick_name');
// Check managed Email Host
if($oMemberModel->isDeniedEmailHost($args->email_address))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = Context::getLang('managed_email_host');
$email_hosts = $oMemberModel->getManagedEmailHosts();
foreach ($email_hosts as $host)
{
$hosts[] = $host->email_host;
}
$message = sprintf($managed_email_host[$emailhost_check],implode(', ',$hosts),'id@'.implode(', id@',$hosts));
return new Object(-1, $message);
}
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address);
if($member_srl) return new Object(-1,'msg_exists_email_address');
@ -2151,6 +2184,22 @@ class memberController extends member
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
$orgMemberInfo = $output->data;
// Check managed Email Host
if($oMemberModel->isDeniedEmailHost($args->email_address))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = Context::getLang('managed_email_host');
$email_hosts = $oMemberModel->getManagedEmailHosts();
foreach ($email_hosts as $host)
{
$hosts[] = $host->email_host;
}
$message = sprintf($managed_email_host[$emailhost_check],implode(', ',$hosts),'id@'.implode(', id@',$hosts));
return new Object(-1, $message);
}
if($config->identifier == 'email_address')
{
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($args->email_address);
@ -2448,6 +2497,23 @@ class memberController extends member
if(!$newEmail) return $this->stop('msg_invalid_request');
$oMemberModel = getModel('member');
// Check managed Email Host
if($oMemberModel->isDeniedEmailHost($newEmail))
{
$config = $oMemberModel->getMemberConfig();
$emailhost_check = $config->emailhost_check;
$managed_email_host = Context::getLang('managed_email_host');
$email_hosts = $oMemberModel->getManagedEmailHosts();
foreach ($email_hosts as $host)
{
$hosts[] = $host->email_host;
}
$message = sprintf($managed_email_host[$emailhost_check],implode(', ',$hosts),'id@'.implode(', id@',$hosts));
return new Object(-1, $message);
}
// Check if the e-mail address is already registered
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail);
if($member_srl) return new Object(-1,'msg_exists_email_address');