mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-25 22:29:55 +09:00
issue 641 update email and resend auth mail.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.3.1@10970 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
f4aa1350bf
commit
78e0330b21
6 changed files with 193 additions and 49 deletions
|
|
@ -65,6 +65,7 @@
|
|||
<action name="procMemberAuthEmailAddress" type="controller" />
|
||||
<action name="procMemberUpdateAuthMail" type="controller" standalone="true" />
|
||||
<action name="procMemberResendAuthMail" type="controller" standalone="true" ruleset="resendAuthMail" />
|
||||
<action name="procMemberResetAuthMail" type="controller" ruleset="resetAuthMail" />
|
||||
|
||||
<action name="procMemberAdminInsert" type="controller" standalone="true" ruleset="insertAdminMember" />
|
||||
<action name="procMemberAdminDelete" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -805,6 +805,10 @@
|
|||
<value xml:lang="vi"><![CDATA[Thông tin bổ xung]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="cmd_modify_new_auth_email_address">
|
||||
<value xml:lang="ko"><![CDATA[신규 메일 주소로 변경 후 인증 메일 발송]]></value>
|
||||
<value xml:lang="en"><![CDATA[New email address]]></value>
|
||||
</item>
|
||||
<item name="cmd_login">
|
||||
<value xml:lang="ko"><![CDATA[로그인]]></value>
|
||||
<value xml:lang="en"><![CDATA[Sign In]]></value>
|
||||
|
|
@ -935,7 +939,7 @@
|
|||
<value xml:lang="vi"><![CDATA[Xác nhận lại Email]]></value>
|
||||
</item>
|
||||
<item name="cmd_send_auth_new_emaill_address">
|
||||
<value xml:lang="ko"><![CDATA[신규 이메일로 인증 메일 발송]]></value>
|
||||
<value xml:lang="ko"><![CDATA[신규 메일 주소로 인증 메일 발송]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[發送新的電子認證郵件]]></value>
|
||||
<value xml:lang="en"><![CDATA[Request for activation mail to new email]]></value>
|
||||
</item>
|
||||
|
|
@ -2025,6 +2029,9 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới,
|
|||
<value xml:lang="tr"><![CDATA[Eğer varsayılan SSL portundan farklı bir port kullanıyorsanız, lütfen giriniz]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Xin hãy nhập cổng kết nối mặc định cho SSL.]]></value>
|
||||
</item>
|
||||
<item name="about_reset_auth_mail">
|
||||
<value xml:lang="ko"><![CDATA[현재등록된 이메일 주소는 %s입니다. 이메일 주소를 변경하시고자 하는 경우 새로운 이메일 주소로 회원정보 갱신 후 인증메일을 재발 송할 수 있습니다.]]></value>
|
||||
</item>
|
||||
<item name="about_resend_auth_mail">
|
||||
<value xml:lang="ko"><![CDATA[인증 메일을 받지 못하신 경우 다시 받으실 수 있습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[You can request for the activation email if you have not activated yet.]]></value>
|
||||
|
|
@ -2037,6 +2044,9 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới,
|
|||
<value xml:lang="tr"><![CDATA[Eğer daha önce etkinleştirmediyseniz, etkinleştirme maili talebinde bulunabilirsiniz]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Nhận lại mã kích hoạt nếu bạn đã không nhận được Email kích hoạt khi đăng kí.]]></value>
|
||||
</item>
|
||||
<item name="about_reset_auth_mail_submit">
|
||||
<value xml:lang="ko"><![CDATA[이메일을 로그인 계정으로 사용할 경우 신규 메일주소로 로그인해야 합니다.]]></value>
|
||||
</item>
|
||||
<item name="no_article">
|
||||
<value xml:lang="ko"><![CDATA[글이 없습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[No articles]]></value>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@
|
|||
// Check if change_password_date is set
|
||||
if ($limit_date > 0) {
|
||||
$oMemberModel = &getModel('member');
|
||||
//$member_info = $oMemberModel->getMemberInfoByUserID($user_id, $columnList);
|
||||
if ($this->memberInfo->change_password_date < date ('YmdHis', strtotime ('-' . $limit_date . ' day'))) {
|
||||
$this->setRedirectUrl(getNotEncodedUrl('','vid',Context::get('vid'),'mid',Context::get('mid'),'act','dispMemberModifyPassword'));
|
||||
return;
|
||||
|
|
@ -1037,6 +1036,7 @@
|
|||
$auth_url = getFullUrl('','module','member','act','procMemberAuthAccount','member_srl',$memberInfo->member_srl, 'auth_key',$auth_info->auth_key);
|
||||
Context::set('auth_url', $auth_url);
|
||||
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail');
|
||||
// Get information of the Webmaster
|
||||
|
|
@ -1057,6 +1057,118 @@
|
|||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
function procMemberResetAuthMail()
|
||||
{
|
||||
$existingEmail = Context::get('existingEmail');
|
||||
$newEmail = Context::get('email_address');
|
||||
|
||||
if(!$newEmail || !$existingEmail)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($newEmail);
|
||||
if($member_srl)
|
||||
{
|
||||
return new Object(-1,'msg_exists_email_address');
|
||||
}
|
||||
|
||||
$memberInfo = $oMemberModel->getMemberInfoByEmailAddress($existingEmail);
|
||||
if(!$memberInfo)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
||||
// remove all key by member_srl
|
||||
$args->member_srl = $memberInfo->member_srl;
|
||||
$output = executeQuery('member.deleteAuthMail', $args);
|
||||
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
// update member info
|
||||
$args->email_address = $newEmail;
|
||||
list($args->email_id, $args->email_host) = explode('@', $newEmail);
|
||||
|
||||
$output = executeQuery('member.updateMemberEmailAddress', $args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $this->stop($output->getMessage());
|
||||
}
|
||||
|
||||
// generate new auth key
|
||||
$auth_args->user_id = $memberInfo->user_id;
|
||||
$auth_args->member_srl = $memberInfo->member_srl;
|
||||
$auth_args->new_password = $memberInfo->password;
|
||||
$auth_args->auth_key = md5( rand(0,999999 ) );
|
||||
$auth_args->is_register = 'Y';
|
||||
|
||||
$output = executeQuery('member.insertAuthMail', $auth_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$memberInfo->email_address = $newEmail;
|
||||
|
||||
// resend auth mail.
|
||||
$this->_sendAuthMail($auth_args, $memberInfo);
|
||||
|
||||
$msg = sprintf(Context::getLang('msg_confirm_mail_sent'), $memberInfo->email_address);
|
||||
$this->setMessage($msg);
|
||||
|
||||
$returnUrl = getUrl('');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
|
||||
}
|
||||
|
||||
function _sendAuthMail($auth_args, $member_info)
|
||||
{
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_config = $oMemberModel->getMemberConfig();
|
||||
// Get content of the email to send a member
|
||||
Context::set('auth_args', $auth_args);
|
||||
|
||||
$memberInfo = array();
|
||||
|
||||
global $lang;
|
||||
if (is_array($member_config->signupForm)){
|
||||
$exceptForm=array('password', 'find_account_question');
|
||||
foreach($member_config->signupForm as $form){
|
||||
if(!in_array($form->name, $exceptForm) && $form->isDefaultForm && ($form->required || $form->mustRequired)){
|
||||
$memberInfo[$lang->{$form->name}] = $member_info->{$form->name};
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$memberInfo[$lang->user_id] = $member_info->user_id;
|
||||
$memberInfo[$lang->user_name] = $member_info->user_name;
|
||||
$memberInfo[$lang->nick_name] = $member_info->nick_name;
|
||||
$memberInfo[$lang->email_address] = $member_info->email_address;
|
||||
}
|
||||
Context::set('memberInfo', $memberInfo);
|
||||
|
||||
if(!$member_config->skin) $member_config->skin = "default";
|
||||
if(!$member_config->colorset) $member_config->colorset = "white";
|
||||
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
|
||||
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
|
||||
|
||||
$auth_url = getFullUrl('','module','member','act','procMemberAuthAccount','member_srl',$member_info->member_srl, 'auth_key',$auth_args->auth_key);
|
||||
Context::set('auth_url', $auth_url);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail');
|
||||
// Send a mail
|
||||
$oMail = new Mail();
|
||||
$oMail->setTitle( Context::getLang('msg_confirm_account_title') );
|
||||
$oMail->setContent($content);
|
||||
$oMail->setSender( $member_config->webmaster_name?$member_config->webmaster_name:'webmaster', $member_config->webmaster_email);
|
||||
$oMail->setReceiptor( $member_info->user_name, $member_info->email_address );
|
||||
$oMail->send();
|
||||
}
|
||||
|
||||
/**
|
||||
* Join a virtual site
|
||||
*
|
||||
|
|
@ -1366,10 +1478,16 @@
|
|||
// Password Check
|
||||
if($password && !$oMemberModel->isValidPassword($this->memberInfo->password, $password, $this->memberInfo->member_srl)) return $this->recordMemberLoginError(-1, 'invalid_password',$this->memberInfo);
|
||||
// If denied == 'Y', notify
|
||||
if($this->memberInfo->denied == 'Y') {
|
||||
if($this->memberInfo->denied == 'Y')
|
||||
{
|
||||
$args->member_srl = $this->memberInfo->member_srl;
|
||||
$output = executeQuery('member.chkAuthMail', $args);
|
||||
if ($output->toBool() && $output->data->count != '0') return new Object(-1,'msg_user_not_confirmed');
|
||||
if ($output->toBool() && $output->data->count != '0')
|
||||
{
|
||||
$_SESSION['auth_member_srl'] = $this->memberInfo->member_srl;
|
||||
$redirectUrl = getUrl('', 'act', 'dispMemberResendAuthMail');
|
||||
return $this->setRedirectUrl($redirectUrl, new Object(-1,'msg_user_not_confirmed'));
|
||||
}
|
||||
return new Object(-1,'msg_user_denied');
|
||||
}
|
||||
// Notify if denied_date is less than the current time
|
||||
|
|
@ -1621,48 +1739,7 @@
|
|||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
// Get content of the email to send a member
|
||||
Context::set('auth_args', $auth_args);
|
||||
|
||||
global $lang;
|
||||
if (is_array($member_config->signupForm)){
|
||||
$exceptForm=array('password', 'find_account_question');
|
||||
foreach($member_config->signupForm as $form){
|
||||
if(!in_array($form->name, $exceptForm) && $form->isDefaultForm && ($form->required || $form->mustRequired)){
|
||||
$memberInfo[$lang->{$form->name}] = $args->{$form->name};
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$memberInfo[$lang->user_id] = $args->user_id;
|
||||
$memberInfo[$lang->user_name] = $args->user_name;
|
||||
$memberInfo[$lang->nick_name] = $args->nick_name;
|
||||
$memberInfo[$lang->email_address] = $args->email_address;
|
||||
}
|
||||
Context::set('memberInfo', $memberInfo);
|
||||
|
||||
if(!$member_config->skin) $member_config->skin = "default";
|
||||
if(!$member_config->colorset) $member_config->colorset = "white";
|
||||
|
||||
Context::set('member_config', $member_config);
|
||||
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $member_config->skin);
|
||||
if(!is_dir($tpl_path)) $tpl_path = sprintf('%sskins/%s', $this->module_path, 'default');
|
||||
|
||||
$auth_url = getFullUrl('','module','member','act','procMemberAuthAccount','member_srl',$args->member_srl, 'auth_key',$auth_args->auth_key);
|
||||
Context::set('auth_url', $auth_url);
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$content = $oTemplate->compile($tpl_path, 'confirm_member_account_mail');
|
||||
// Get information of the Webmaster
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
// Send a mail
|
||||
$oMail = new Mail();
|
||||
$oMail->setTitle( Context::getLang('msg_confirm_account_title') );
|
||||
$oMail->setContent($content);
|
||||
$oMail->setSender( $member_config->webmaster_name?$member_config->webmaster_name:'webmaster', $member_config->webmaster_email);
|
||||
$oMail->setReceiptor( $args->user_name, $args->email_address );
|
||||
$oMail->send();
|
||||
$this->_sendAuthMail($auth_args, $args);
|
||||
}
|
||||
// Call a trigger (after)
|
||||
if($output->toBool()) {
|
||||
|
|
|
|||
|
|
@ -382,10 +382,28 @@
|
|||
/**
|
||||
* @brief Page of re-sending an authentication mail
|
||||
**/
|
||||
function dispMemberResendAuthMail() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
function dispMemberResendAuthMail()
|
||||
{
|
||||
$authMemberSrl = $_SESSION['auth_member_srl'];
|
||||
unset($_SESSION['auth_member_srl']);
|
||||
|
||||
$this->setTemplateFile('resend_auth_mail');
|
||||
if(Context::get('is_logged'))
|
||||
{
|
||||
return $this->stop('already_logged');
|
||||
}
|
||||
|
||||
if($authMemberSrl)
|
||||
{
|
||||
$oMemberModel = &getModel('member');
|
||||
$memberInfo = $oMemberModel->getMemberInfoByMemberSrl($authMemberSrl);
|
||||
|
||||
Context::set('memberInfo', $memberInfo);
|
||||
$this->setTemplateFile('reset_mail');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->setTemplateFile('resend_auth_mail');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
8
modules/member/ruleset/resetAuthMail.xml
Normal file
8
modules/member/ruleset/resetAuthMail.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ruleset version="1.5.0">
|
||||
<customrules>
|
||||
</customrules>
|
||||
<fields>
|
||||
<field name="email_address" required="true" length="1:200" rule="email" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
30
modules/member/skins/default/reset_mail.html
Normal file
30
modules/member/skins/default/reset_mail.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<include target="./common_header.html" />
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<div class="form">
|
||||
<h1 class="h1">{$lang->cmd_resend_auth_mail}</h1>
|
||||
<p>{sprintf($lang->about_reset_auth_mail, $memberInfo->email_address)}</p>
|
||||
<ul>
|
||||
<li>
|
||||
<form action="./" method="post">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberResendAuthMail" />
|
||||
<input type="hidden" name="email_address" value="{$memberInfo->email_address}" />
|
||||
<p class="q"><label for="resend_button">{$lang->cmd_resend_auth_mail}</label></p>
|
||||
<p class="a"><input type="text" readonly="readonly" disabled="disabled" value="{$memberInfo->email_address}"/> <span class="btn"><input type="submit" id="resend_button" name="" value="{$lang->cmd_resend_auth_mail}" /></span></p>
|
||||
</form>
|
||||
</li>
|
||||
<li>
|
||||
<form ruleset="resetAuthMail" action="./" method="post">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberResetAuthMail" />
|
||||
<input type="hidden" name="existingEmail" value="{$memberInfo->email_address}" />
|
||||
<p class="q"><label for="email_address">{$lang->cmd_modify_new_auth_email_address}</label></p>
|
||||
<p class="a"><input type="text" id="email_address" name="email_address" value="" /> <span class="btn"><input type="submit" value="{$lang->cmd_send_auth_new_emaill_address}" /></p>
|
||||
<p>{$lang->about_reset_auth_mail_submit}</p>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<include target="./common_footer.html" />
|
||||
Loading…
Add table
Add a link
Reference in a new issue