mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 11:44:10 +09:00
#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:
parent
2260b30132
commit
7583bfd56f
12 changed files with 383 additions and 18 deletions
|
|
@ -84,6 +84,7 @@
|
|||
<action name="procMemberAdminDeleteMembers" type="controller" />
|
||||
<action name="procMemberAdminInsertJoinForm" type="controller" ruleset="insertJoinForm" />
|
||||
<action name="procMemberAdminUpdateJoinForm" type="controller" />
|
||||
<action name="procMemberAdminUpdateManagedEmailHosts" type="controller" />
|
||||
<action name="procMemberAdminDeleteJoinForm" type="controller" />
|
||||
<action name="procMemberAdminUpdateDeniedNickName" type="controller" />
|
||||
<action name="procMemberAdminInsertDeniedID" type="controller" ruleset="insertDeniedId" />
|
||||
|
|
|
|||
|
|
@ -143,6 +143,22 @@
|
|||
<value xml:lang="jp"><![CDATA[使用が禁止されたニックネームです。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[被禁止的昵称。]]></value>
|
||||
</item>
|
||||
<item name="managed_email_host" type="array">
|
||||
<item name="allowed">
|
||||
<value xml:lang="ko"><![CDATA[%s 사이트 이메일 계정만 사용할 수 있습니다. (%s)]]></value>
|
||||
<value xml:lang="en"><![CDATA[Only %s e-mail accounts are allowed. (%s)]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Only %s e-mail accounts are allowed. (%s)]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Only %s e-mail accounts are allowed. (%s)]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Only %s e-mail accounts are allowed. (%s)]]></value>
|
||||
</item>
|
||||
<item name="prohibited">
|
||||
<value xml:lang="ko"><![CDATA[%s 사이트 이메일 계정은 사용할 수 없습니다. (%s)]]></value>
|
||||
<value xml:lang="en"><![CDATA[E-mail accounts at %s are not allowed. (%s)]]></value>
|
||||
<value xml:lang="jp"><![CDATA[E-mail accounts at %s are not allowed. (%s)]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[E-mail accounts at %s are not allowed. (%s)]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[E-mail accounts at %s are not allowed. (%s)]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="null_user_id">
|
||||
<value xml:lang="ko"><![CDATA[회원 아이디를 입력해주세요.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please enter your ID.]]></value>
|
||||
|
|
@ -514,7 +530,6 @@
|
|||
<value xml:lang="en"><![CDATA[Description for Temporary Limit Date]]></value>
|
||||
<value xml:lang="jp"><![CDATA[一時的な期限日の説明]]></value>
|
||||
</item>
|
||||
|
||||
<item name="limit_date">
|
||||
<value xml:lang="ko"><![CDATA[제한일]]></value>
|
||||
<value xml:lang="en"><![CDATA[Limit Date]]></value>
|
||||
|
|
@ -1094,6 +1109,18 @@
|
|||
<value xml:lang="tr"><![CDATA[Yasaklanmış Kimlikler]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Tên sử dụng cấm đăng kí]]></value>
|
||||
</item>
|
||||
<item name="cmd_manage_email_host">
|
||||
<value xml:lang="ko"><![CDATA[이메일 제공자 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="jp"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="fr"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="ru"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="es"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="tr"><![CDATA[E-mail provider check]]></value>
|
||||
<value xml:lang="vi"><![CDATA[E-mail provider check]]></value>
|
||||
</item>
|
||||
<item name="cmd_manage_nick_name">
|
||||
<value xml:lang="ko"><![CDATA[금지 닉네임 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[Prohibited NickNames]]></value>
|
||||
|
|
@ -1962,6 +1989,13 @@
|
|||
<value xml:lang="tr"><![CDATA[Kayıt formunu gösterebilmeniz için, öğeleri etkinleştirdiğinizden emin olun]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Nếu chọn, thông tin này sẽ được hiển thị trong bảng đăng kí.]]></value>
|
||||
</item>
|
||||
<item name="about_emailhost_check">
|
||||
<value xml:lang="ko"><![CDATA[입력한 호스트네임이 없으면, 이 기능을 사용하지 않습니다. 가입자의 이메일 주소 제공자를 설정할 수 있습니다.<br />특정 이메일 제공자(hostname, 예: naver.com, gmail.com)만 허용하거나, 특정 이메일 제공자의 사용을 제한할 수 있습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Empty value will allow almost all email account providers.<br />You can set new member's e-mail address providers. You can allow or prohibit some e-mail hosts(eg.: naver.com, gmail.com).]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Empty value will allow almost all email account providers.<br />You can set new member's e-mail address providers. You can allow or prohibit some e-mail hosts(eg.: naver.com, gmail.com).]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Empty value will allow almost all email account providers.<br />You can set new member's e-mail address providers. You can allow or prohibit some e-mail hosts(eg.: naver.com, gmail.com).]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Empty value will allow almost all email account providers.<br />You can set new member's e-mail address providers. You can allow or prohibit some e-mail hosts(eg.: naver.com, gmail.com).]]></value>
|
||||
</item>
|
||||
<item name="about_form_description">
|
||||
<value xml:lang="ko"><![CDATA[설명란에 입력을 하면 가입시 표시가 됩니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[If you enter description in this form, it will be displayed on join form.]]></value>
|
||||
|
|
@ -2469,6 +2503,20 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[向此會員發送通知信]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[给此会员发送短消息]]></value>
|
||||
</item>
|
||||
<item name="cmd_allowed">
|
||||
<value xml:lang="ko"><![CDATA[허가]]></value>
|
||||
<value xml:lang="en"><![CDATA[Allowed]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Allowed]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Allowed]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Allowed]]></value>
|
||||
</item>
|
||||
<item name="cmd_prohibited">
|
||||
<value xml:lang="ko"><![CDATA[제한]]></value>
|
||||
<value xml:lang="en"><![CDATA[Prohibited]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Prohibited]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Prohibited]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Prohibited]]></value>
|
||||
</item>
|
||||
<item name="cmd_required">
|
||||
<value xml:lang="ko"><![CDATA[필수]]></value>
|
||||
<value xml:lang="en"><![CDATA[Required]]></value>
|
||||
|
|
@ -2525,6 +2573,13 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[換行區隔]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[用换行区分]]></value>
|
||||
</item>
|
||||
<item name="count_manage_email_host">
|
||||
<value xml:lang="ko"><![CDATA[다음 <span class="_managededEmailHostCount">%s</span>개의 이메일 주소 제공자를 <span id="managededEmailHostType">%s</span> 합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[There are <span class="_managededEmailHostCount">%s</span> <span id="managededEmailHostType">%s</span> e-mail address providers below.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[There are <span class="_managededEmailHostCount">%s</span> <span id="managededEmailHostType">%s</span> e-mail address providers below.]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[There are <span class="_managededEmailHostCount">%s</span> <span id="managededEmailHostType">%s</span> e-mail address providers below.]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[There are <span class="_managededEmailHostCount">%s</span> <span id="managededEmailHostType">%s</span> e-mail address providers below.]]></value>
|
||||
</item>
|
||||
<item name="count_manage_id">
|
||||
<value xml:lang="ko"><![CDATA[<span class="_deniedIDCount">%s</span>개의 금지 아이디가 있습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[There are <span class="_deniedIDCount">%s</span> prohibited ID.]]></value>
|
||||
|
|
@ -2629,6 +2684,13 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[電子郵件]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[电子邮件]]></value>
|
||||
</item>
|
||||
<item name="add_managed_emailhost">
|
||||
<value xml:lang="ko"><![CDATA[이메일 제공자 추가]]></value>
|
||||
<value xml:lang="en"><![CDATA[Add E-mail Host]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Add E-mail Host]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Add E-mail Host]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Add E-mail Host]]></value>
|
||||
</item>
|
||||
<item name="add_prohibited_id">
|
||||
<value xml:lang="ko"><![CDATA[금지 아이디 추가]]></value>
|
||||
<value xml:lang="en"><![CDATA[Add prohibited id]]></value>
|
||||
|
|
@ -2662,6 +2724,13 @@
|
|||
<value xml:lang="jp"><![CDATA[追加するニックネームを入力してください。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[请输入禁止昵称]]></value>
|
||||
</item>
|
||||
<item name="msg_null_managed_emailhost">
|
||||
<value xml:lang="ko"><![CDATA[추가할 금지 이메일 주소 제공자를 입력해주세요. (예: naver.com)]]></value>
|
||||
<value xml:lang="en"><![CDATA[Please enter email address providers to manage. (eg.: gmail.com)]]></value>
|
||||
<value xml:lang="jp"><![CDATA[Please enter email address providers to manage. (eg.: gmail.com)]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[Please enter email address providers to manage. (eg.: gmail.com)]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[Please enter email address providers to manage. (eg.: gmail.com)]]></value>
|
||||
</item>
|
||||
<item name="identifier">
|
||||
<value xml:lang="ko"><![CDATA[로그인 계정]]></value>
|
||||
<value xml:lang="en"><![CDATA[Login Account]]></value>
|
||||
|
|
|
|||
|
|
@ -208,6 +208,7 @@ class memberAdminController extends member
|
|||
$args = Context::gets(
|
||||
'limit_day',
|
||||
'limit_day_description',
|
||||
'emailhost_check',
|
||||
'agreement',
|
||||
'redirect_url',
|
||||
'profile_image', 'profile_image_max_width', 'profile_image_max_height',
|
||||
|
|
@ -221,6 +222,7 @@ class memberAdminController extends member
|
|||
$all_args = Context::getRequestVars();
|
||||
|
||||
$args->limit_day = (int)$args->limit_day;
|
||||
if($args->emailhost_check != 'allowed' && $args->emailhost_check != 'prohibited') $args->emailhost_check == 'allowed';
|
||||
if(!trim(strip_tags($args->agreement)))
|
||||
{
|
||||
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement_' . Context::get('lang_type') . '.txt';
|
||||
|
|
@ -1016,6 +1018,44 @@ class memberAdminController extends member
|
|||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add allowed or denied email hostnames
|
||||
* @return void
|
||||
*/
|
||||
function procMemberAdminUpdateManagedEmailHosts()
|
||||
{
|
||||
$email_hosts = Context::get('email_hosts');
|
||||
|
||||
$mode = Context::get('mode');
|
||||
$mode = $mode ? $mode : 'insert';
|
||||
|
||||
if($mode == 'delete')
|
||||
{
|
||||
$output = $this->deleteManagedEmailHost($email_hosts);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
$msg_code = 'success_deleted';
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
else
|
||||
{
|
||||
$email_hosts = preg_replace('/([^a-z0-9\.\-\_\n]*)/i','',$email_hosts);
|
||||
$email_hosts = array_unique(explode("\n",$email_hosts."\n"));
|
||||
$success_email_hosts = array();
|
||||
foreach($email_hosts as $val)
|
||||
{
|
||||
$val = trim($val);
|
||||
if(!$val) continue;
|
||||
$output = $this->insertManagedEmailHost($val, '');
|
||||
if($output->toBool()) $success_email_hosts[] = $val;
|
||||
}
|
||||
|
||||
$this->add('email_hosts', implode("\n",$success_email_hosts));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a denied nick name
|
||||
* @return void
|
||||
|
|
@ -1321,6 +1361,21 @@ class memberAdminController extends member
|
|||
return executeQuery('member.insertDeniedNickName', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register managed Email Hostname
|
||||
* @param string $email_host
|
||||
* @param string $description
|
||||
* @return Object
|
||||
*/
|
||||
function insertManagedEmailHost($email_host, $description = '')
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->email_host = trim(strtolower($email_host));
|
||||
$args->description = $description;
|
||||
|
||||
return executeQuery('member.insertManagedEmailHost', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete a denied id
|
||||
* @param string $user_id
|
||||
|
|
@ -1349,6 +1404,17 @@ class memberAdminController extends member
|
|||
return executeQuery('member.deleteDeniedNickName', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* delete a denied nick name
|
||||
* @param string $email_host
|
||||
* @return object
|
||||
*/
|
||||
function deleteManagedEmailHost($email_host)
|
||||
{
|
||||
$args->email_host = $email_host;
|
||||
return executeQuery('member.deleteManagedEmailHost', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a join form
|
||||
* @param int $member_join_form_srl
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@ class memberAdminView extends member
|
|||
{
|
||||
/**
|
||||
* Group list
|
||||
*
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $group_list = NULL;
|
||||
|
||||
/**
|
||||
* Selected member info
|
||||
*
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
var $memberInfo = NULL;
|
||||
|
|
@ -33,7 +33,7 @@ class memberAdminView extends member
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
function init()
|
||||
function init()
|
||||
{
|
||||
$oMemberModel = getModel('member');
|
||||
$this->memberConfig = $oMemberModel->getMemberConfig();
|
||||
|
|
@ -43,7 +43,7 @@ class memberAdminView extends member
|
|||
|
||||
// if member_srl exists, set memberInfo
|
||||
$member_srl = Context::get('member_srl');
|
||||
if($member_srl)
|
||||
if($member_srl)
|
||||
{
|
||||
$this->memberInfo = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
if(!$this->memberInfo)
|
||||
|
|
@ -193,7 +193,13 @@ class memberAdminView extends member
|
|||
// get denied NickName List
|
||||
$deniedNickNames = $oMemberModel->getDeniedNickNames();
|
||||
Context::set('deniedNickNames', $deniedNickNames);
|
||||
$oSecurity->encodeHTML('deniedNickNames..nick_name');
|
||||
$oSecurity->encodeHTML('deniedNickNames..nick_name');
|
||||
|
||||
//get managed Email Hosts
|
||||
$managedEmailHost = $oMemberModel->getManagedEmailHosts();
|
||||
Context::set('managedEmailHost', $managedEmailHost);
|
||||
$oSecurity->encodeHTML('managedEmailHost..email_host');
|
||||
|
||||
$this->setTemplateFile('signup_config');
|
||||
}
|
||||
|
||||
|
|
@ -231,7 +237,7 @@ class memberAdminView extends member
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
function dispMemberAdminConfigOLD()
|
||||
function dispMemberAdminConfigOLD()
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$oMemberModel = getModel('member');
|
||||
|
|
@ -378,7 +384,7 @@ class memberAdminView extends member
|
|||
}
|
||||
|
||||
/**
|
||||
* Get tags by the member info type
|
||||
* Get tags by the member info type
|
||||
*
|
||||
* @param object $memberInfo
|
||||
* @param boolean $isAdmin (true : admin, false : not admin)
|
||||
|
|
@ -631,7 +637,7 @@ class memberAdminView extends member
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
function dispMemberAdminGroupList()
|
||||
function dispMemberAdminGroupList()
|
||||
{
|
||||
$oModuleModel = getModel('module');
|
||||
$output = $oModuleModel->getModuleFileBoxList();
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
||||
|
|
|
|||
|
|
@ -66,6 +66,8 @@ class memberModel extends member
|
|||
|
||||
if(!$config->identifier) $config->identifier = 'user_id';
|
||||
|
||||
if(!$config->emailhost_check) $config->emailhost_check = 'allowed';
|
||||
|
||||
if(!$config->max_error_count) $config->max_error_count = 10;
|
||||
if(!$config->max_error_count_time) $config->max_error_count_time = 300;
|
||||
|
||||
|
|
@ -321,7 +323,7 @@ class memberModel extends member
|
|||
$args = new stdClass();
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', $args, $columnList);
|
||||
if(!$output->data)
|
||||
if(!$output->data)
|
||||
{
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key, new stdClass);
|
||||
return;
|
||||
|
|
@ -840,6 +842,20 @@ class memberModel extends member
|
|||
return $output->data;
|
||||
}
|
||||
|
||||
function getManagedEmailHosts()
|
||||
{
|
||||
static $output;
|
||||
if(isset($output->data)) return $output->data;
|
||||
$output = executeQueryArray('member.getManagedEmailHosts');
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$output->data = array();
|
||||
return array();
|
||||
}
|
||||
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Verify if ID is denied
|
||||
*/
|
||||
|
|
@ -867,6 +883,49 @@ class memberModel extends member
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Verify if email_host from email_address is denied
|
||||
*/
|
||||
function isDeniedEmailHost($email_address)
|
||||
{
|
||||
$email_address = trim($email_address);
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$emailhost_check = $config->emailhost_check;
|
||||
$managedHosts = $oMemberModel->getManagedEmailHosts();
|
||||
if(count($managedHosts) < 1) return FALSE;
|
||||
|
||||
static $return;
|
||||
if(!isset($return[$email_address]))
|
||||
{
|
||||
$email = explode('@',$email_address);
|
||||
$email_hostname = $email[1];
|
||||
if(!$email_hostname) return TRUE;
|
||||
|
||||
foreach($managedHosts as $managedHost)
|
||||
{
|
||||
if($managedHost->email_host && strtolower($managedHost->email_host) == strtolower($email_hostname))
|
||||
{
|
||||
$return[$email_address] = TRUE;
|
||||
}
|
||||
}
|
||||
if(!$return[$email_address])
|
||||
{
|
||||
$return[$email_address] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if($emailhost_check == 'prohibited')
|
||||
{
|
||||
return $return[$email_address];
|
||||
}
|
||||
else
|
||||
{
|
||||
return (!$return[$email_address]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get information of the profile image
|
||||
*/
|
||||
|
|
@ -1096,7 +1155,7 @@ class memberModel extends member
|
|||
|
||||
case 'low':
|
||||
if($length < 4) return false;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
|||
8
modules/member/queries/deleteManagedEmailHost.xml
Normal file
8
modules/member/queries/deleteManagedEmailHost.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteManagedEmailHost" action="delete">
|
||||
<tables>
|
||||
<table name="member_managed_email_hosts" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="equal" column="email_host" var="email_host" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
8
modules/member/queries/getManagedEmailHosts.xml
Normal file
8
modules/member/queries/getManagedEmailHosts.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="getManagedEmailHosts" action="select">
|
||||
<tables>
|
||||
<table name="member_managed_email_hosts" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="email_host" />
|
||||
</columns>
|
||||
</query>
|
||||
10
modules/member/queries/insertManagedEmailHost.xml
Normal file
10
modules/member/queries/insertManagedEmailHost.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<query id="insertManagedEmailHost" action="insert">
|
||||
<tables>
|
||||
<table name="member_managed_email_hosts" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="email_host" var="email_host" notnull="notnull" />
|
||||
<column name="regdate" default="curdate()" />
|
||||
<column name="description" var="description" default="" />
|
||||
</columns>
|
||||
</query>
|
||||
5
modules/member/schemas/member_managed_email_hosts.xml
Normal file
5
modules/member/schemas/member_managed_email_hosts.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<table name="member_managed_email_hosts">
|
||||
<column name="email_host" type="varchar" size="250" notnull="notnull" primary_key="primary_key" />
|
||||
<column name="regdate" type="date" />
|
||||
<column name="description" type="text" />
|
||||
</table>
|
||||
|
|
@ -17,7 +17,7 @@ function doUpdateDeniedID(user_id, mode, message) {
|
|||
}
|
||||
|
||||
/* prohibited nick name functions */
|
||||
function doUpdateDeniedNickName(nick_name, mode, message)
|
||||
function doUpdateDeniedNickName(nick_name, mode, message)
|
||||
{
|
||||
if(typeof(message)!='undefined' && !confirm(message)) return;
|
||||
|
||||
|
|
@ -35,8 +35,27 @@ function doUpdateDeniedNickName(nick_name, mode, message)
|
|||
);
|
||||
}
|
||||
|
||||
/* managed E-mail Address functions */
|
||||
function doUpdateManagedEmailHost(email_host, mode, message)
|
||||
{
|
||||
if(typeof(message)!='undefined' && !confirm(message)) return;
|
||||
|
||||
exec_xml(
|
||||
'member',
|
||||
'procMemberAdminUpdateManagedEmailHosts',
|
||||
{email_hosts:email_host, mode:mode, email_hosts_count:jQuery('#managedEmailHost li').length},
|
||||
function(){
|
||||
if (mode == 'delete'){
|
||||
jQuery('#managed_'+email_host.replace(/\./g,'\_\_')).remove();
|
||||
jQuery('._managededEmailHostCount').html(jQuery('#managedEmailHost li').length);
|
||||
}
|
||||
},
|
||||
['error','message','tpl']
|
||||
);
|
||||
}
|
||||
|
||||
jQuery(function($){
|
||||
// hide form if enable_join is setted "No"
|
||||
// hide form if enable_join is setted "No"
|
||||
var suForm = $('table.__join_form'); // 회원가입 양식
|
||||
|
||||
function changeTable($i)
|
||||
|
|
@ -96,7 +115,7 @@ jQuery(function($){
|
|||
if (!confirm(xe.lang.msg_delete_extend_form)) return;
|
||||
|
||||
var memberFormSrl = $(event.target).parent().attr('id');
|
||||
var targetTR = $(event.target).closest('tr');
|
||||
var targetTR = $(event.target).closest('tr');
|
||||
|
||||
exec_xml(
|
||||
'member',
|
||||
|
|
@ -111,7 +130,7 @@ jQuery(function($){
|
|||
|
||||
$('button._addDeniedID').click(function(){
|
||||
var ids = $('#prohibited_id').val();
|
||||
if(ids == ''){
|
||||
if(ids == ''){
|
||||
alert(xe.lang.msg_null_prohibited_id);
|
||||
$('#prohibited_id').focus();
|
||||
return;
|
||||
|
|
@ -136,11 +155,40 @@ jQuery(function($){
|
|||
|
||||
jQuery.exec_json('member.procMemberAdminInsertDeniedID', {'user_id': ids}, on_complete);
|
||||
|
||||
});
|
||||
$('button._addManagedEmailHost').click(function(){
|
||||
var hosts = $('#manage_email_host').val();
|
||||
if(hosts == ''){
|
||||
alert(xe.lang.msg_null_managed_emailhost);
|
||||
$('#manage_email_host').focus();
|
||||
return;
|
||||
}
|
||||
|
||||
var tag;
|
||||
function on_complete(data)
|
||||
{
|
||||
$('#manage_email_host').val('');
|
||||
|
||||
var hosts = $.trim(data.email_hosts);
|
||||
if(hosts == '') return;
|
||||
var uids = hosts.split("\n");
|
||||
for (var i=0; i<uids.length; i++)
|
||||
{
|
||||
uids[i] = $.trim(uids[i]);
|
||||
tag = '<li id="managed_'+uids[i].replace(/\./g,'\_\_')+'">'+uids[i]+' <button type="button" class="x_icon-remove" onclick="doUpdateManagedEmailHost(\''+uids[i]+'\',\'delete\',\''+xe.lang.confirm_delete+'\');return false;">'+xe.lang.cmd_delete+'</button></li>';
|
||||
$('#managedEmailHost').append($(tag));
|
||||
}
|
||||
|
||||
$('._managededEmailHostCount').html($('#managedEmailHost li').length);
|
||||
}
|
||||
|
||||
$.exec_json('member.procMemberAdminUpdateManagedEmailHosts', {'email_hosts': hosts}, on_complete);
|
||||
|
||||
});
|
||||
|
||||
$('button._addDeniedNickName').click(function(){
|
||||
var ids = $('#prohibited_nick_name').val();
|
||||
if(ids == ''){
|
||||
if(ids == ''){
|
||||
alert(xe.lang.msg_null_prohibited_nick_name);
|
||||
$('#prohibited_nick_name').focus();
|
||||
return;
|
||||
|
|
@ -195,7 +243,7 @@ jQuery(function($){
|
|||
$notCheckedTR.find('th').html('<div class="wrap"><button type="button" class="dragBtn">Move to</button><span class="_title" >'+$notCheckedTR.find('th ._title').html()+'</span></div>');
|
||||
$notCheckedTR.removeClass('sticky');
|
||||
|
||||
// add sticky class
|
||||
// add sticky class
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
xe.lang.cmd_delete = '{$lang->cmd_delete}';
|
||||
xe.lang.msg_null_prohibited_id = '{$lang->msg_null_prohibited_id}';
|
||||
xe.lang.msg_null_prohibited_nick_name = '{$lang->msg_null_prohibited_nick_name}';
|
||||
xe.lang.msg_null_managed_emailhost = '{$lang->msg_null_managed_emailhost}';
|
||||
xe.lang.msg_exists_user_id= '{$lang->msg_exists_user_id}';
|
||||
</script>
|
||||
<form action="./" class="x_form-horizontal" method="post">
|
||||
|
|
@ -23,6 +24,24 @@
|
|||
<input type="text" name="limit_day_description" value="{$config->limit_day_description}" placeholder="{$lang->limit_day_description}" style="width:90%" class="lang_code" />
|
||||
</div>
|
||||
</div>
|
||||
<!--// Managed Email Host Control -->
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="manage_email_host">{$lang->cmd_manage_email_host}[<a href="#helpHost" data-toggle>?</a>]</label>
|
||||
<div class="x_controls">
|
||||
<div class="layer x_alert x_alert-info" id="helpHost">
|
||||
<p>{$lang->about_emailhost_check}</p>
|
||||
</div>
|
||||
<input type="radio" id="emailhost_check_allowed" name="emailhost_check" value="allowed" checked="checked"|cond="$config->emailhost_check =='allowed'" /><label for="emailhost_check_allowed" class="x_inline"> {$lang->cmd_allowed}</label>
|
||||
<input type="radio" id="emailhost_check_prohibited" name="emailhost_check" value="prohibited" checked="checked"|cond="$config->emailhost_check =='prohibited'" /><label for="emailhost_check_prohibited" class="x_inline"> {$lang->cmd_prohibited}</label>
|
||||
<p>{@ if($config->emailhost_check =='prohibited') $emailhost_check = $lang->cmd_prohibited; else $emailhost_check = $lang->cmd_allowed;}{sprintf($lang->count_manage_email_host, count($managedEmailHost), $emailhost_check)}</p>
|
||||
<ul class="textList" id="managedEmailHost" style="margin-left:0">
|
||||
<li loop="$managedEmailHost=>$emailInfo" id="managed_{str_replace('.','__',$emailInfo->email_host)}">{$emailInfo->email_host} <button type="button" class="x_icon-remove" onclick="doUpdateManagedEmailHost('{$emailInfo->email_host}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</button></li>
|
||||
</ul>
|
||||
<textarea rows="2" cols="42" id="manage_email_host" title="{$lang->add_managed_emailhost}" style="vertical-align:top"></textarea>
|
||||
<button type="button" class="_addManagedEmailHost x_btn">{$lang->add}</button>
|
||||
<p class="x_help-inline">{$lang->multi_line_input}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="prohibited_nick_name">{$lang->cmd_manage_nick_name}</label>
|
||||
<div class="x_controls">
|
||||
|
|
@ -30,7 +49,7 @@
|
|||
<ul class="textList" id="deniedNickNameList" style="margin-left:0">
|
||||
<li loop="$deniedNickNames=>$nicknameInfo" id="denied_{$nicknameInfo->nick_name}">{$nicknameInfo->nick_name} <button type="button" class="x_icon-remove" onclick="doUpdateDeniedNickName('{$nicknameInfo->nick_name}','delete','{$lang->confirm_delete}');return false;">{$lang->delete}</button></li>
|
||||
</ul>
|
||||
<textarea rows="2" cols="42" id="prohibited_nick_name" title="{$lang->add_prohibited_id}" style="vertical-align:top"></textarea>
|
||||
<textarea rows="2" cols="42" id="prohibited_nick_name" title="{$lang->add_prohibited_nickname}" style="vertical-align:top"></textarea>
|
||||
<button type="button" class="_addDeniedNickName x_btn">{$lang->add}</button>
|
||||
<p class="x_help-inline">{$lang->multi_line_input}</p>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue