added a checked password page when information of member before modify.

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.3.2@11099 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2012-08-27 08:11:43 +00:00
parent 103fe3a2c0
commit 4f984d4f91
6 changed files with 130 additions and 8 deletions

View file

@ -42,6 +42,7 @@
<action name="procMemberCheckValue" type="controller" standalone="true" />
<action name="procMemberInsert" type="controller" standalone="true" ruleset="@insertMember" />
<action name="procMemberModifyEmailAddress" type="controller" ruleset="modifyEmailAddress" />
<action name="procMemberModifyInfoBefore" type="controller" ruleset="recheckedPassword" />
<action name="procMemberModifyInfo" type="controller" standalone="true" ruleset="@insertMember" />
<action name="procMemberModifyPassword" type="controller" standalone="true" ruleset="modifyPassword" />
<action name="procMemberLeave" type="controller" standalone="true" ruleset="leaveMember" />

View file

@ -1308,6 +1308,10 @@
<value xml:lang="tr"><![CDATA[Üye Ekle]]></value>
<value xml:lang="vi"><![CDATA[Thêm thành viên]]></value>
</item>
<item name="msg_rechecked_password">
<value xml:lang="ko"><![CDATA[비밀번호 재확인]]></value>
<value xml:lang="en"><![CDATA[Re-checked password]]></value>
</item>
<item name="msg_update_member">
<value xml:lang="ko"><![CDATA[회원 정보 수정]]></value>
<value xml:lang="en"><![CDATA[Modify User Info]]></value>
@ -1570,6 +1574,9 @@
<value xml:lang="tr"><![CDATA[Bu kimlik, %s Tarihinden sonra kullanılabilir]]></value>
<value xml:lang="vi"><![CDATA[Bạn được phép sử dụng đến ngày %s]]></value>
</item>
<item name="about_rechecked_password">
<value xml:lang="ko"><![CDATA[회원의 정보를 안전하게 보호하기 위해 비밀번호를 다시 한번 확인 합니다.]]></value>
</item>
<item name="about_user_id">
<value xml:lang="ko"><![CDATA[회원 ID는 3~20자 사이의 영문+숫자로 이루어져야 하며 영문으로 시작해야 합니다.]]></value>
<value xml:lang="en"><![CDATA[User ID should be 3~20 characters long, consist of alphanumeric and start with a letter.]]></value>

View file

@ -360,6 +360,48 @@
$this->setRedirectUrl($returnUrl);
}
function procMemberModifyInfoBefore()
{
if(!$_SESSION['rechecked_password_step'])
{
return $this->stop('msg_invalid_request');
}
if(!Context::get('is_logged'))
{
return $this->stop('msg_not_logged');
}
$password = Context::get('password');
if(!$password)
{
return $this->stop('msg_invalid_request');
}
$oMemberModel = &getModel('member');
if(!$this->memberInfo->password)
{
$columnList = array('member_srl', 'password');
$memberInfo = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList);
$this->memberInfo->password = $memberInfo->password;
}
// Verify the cuttent password
if(!$oMemberModel->isValidPassword($this->memberInfo->password, $password))
{
return new Object(-1, 'invalid_password');
}
$_SESSION['rechecked_password'] = TRUE;
$_SESSION['rechecked_password_step'] = FALSE;
$redirectUrl = getUrl('', 'act', 'dispMemberModifyInfo');
$this->setRedirectUrl($redirectUrl);
}
/**
* Edit member profile
*
@ -403,9 +445,7 @@
// Add extra vars after excluding necessary information from all the requested arguments
$extra_vars = delObjectVars($all_args, $args);
$args->extra_vars = serialize($extra_vars);
// Create a member model object
$oMemberModel = &getModel('member');
// remove whitespace
$checkInfos = array('user_id', 'nick_name', 'email_address');
$replaceStr = array("\r\n", "\r", "\n", " ", "\t", "\xC2\xAD");

View file

@ -146,12 +146,11 @@
{
$item->title = $extendFormInfo[$formInfo->member_join_form_srl]->column_title;
$orgValue = $extendFormInfo[$formInfo->member_join_form_srl]->value;
if($formInfo->type=='tel')
if($formInfo->type=='tel' && is_array($orgValue))
{
$item->value = implode('-', $orgValue);
}
elseif($formInfo->type=='kr_zip')
elseif($formInfo->type=='kr_zip' && is_array($orgValue))
{
$item->value = implode(' ', $orgValue);
}
@ -211,11 +210,54 @@
$this->setTemplateFile('signup_form');
}
function dispMemberModifyInfoBefore()
{
$logged_info = Context::get('logged_info');
$oMemberModel = &getModel('member');
if(!$oMemberModel->isLogged() || empty($logged_info))
{
return $this->stop('msg_not_logged');
}
$_SESSION['rechecked_password'] = FALSE;
$_SESSION['rechecked_password_step'] = TRUE;
$templateFile = $this->getTemplatePath().'rechecked_password.html';
if(!is_readable($templateFile))
{
$templatePath = sprintf('%sskins/default', $this->module_path);
$this->setTemplatePath($templatePath);
}
if ($this->member_config->identifier == 'email_address')
{
Context::set('identifierTitle', Context::getLang('email_address'));
Context::set('identifierValue', $logged_info->email_address);
}
else
{
Context::set('identifierTitle', Context::getLang('user_id'));
Context::set('identifierValue', $logged_info->user_id);
}
$this->setTemplateFile('rechecked_password');
}
/**
* @brief Modify member information
**/
function dispMemberModifyInfo() {
$member_config = $this->member_config;
function dispMemberModifyInfo()
{
if(!$_SESSION['rechecked_password'])
{
$this->dispMemberModifyInfoBefore();
return;
}
$_SESSION['rechecked_password'] = FALSE;
$member_config = $this->member_config;
$oMemberModel = &getModel('member');
// A message appears if the user is not logged-in

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ruleset version="1.5.0">
<customrules>
</customrules>
<fields>
<field name="password" required="true" />
</fields>
</ruleset>

View file

@ -0,0 +1,24 @@
<include target="./common_header.html" />
<h1 class="h1">{$lang->msg_rechecked_password}</h1>
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
<p>{$XE_VALIDATOR_MESSAGE}</p>
</div>
<form class="form" action="./index.php" method="post" ruleset="recheckedPassword">
<input type="hidden" name="act" value="procMemberModifyInfoBefore" />
<input type="hidden" name="module" value="member" />
<ul>
<li>
<p class="q">{$identifierTitle}</p>
<p class="a">{$identifierValue}</p>
</li>
<li>
<p class="q">{$lang->password}</p>
<p class="a"><input type="password" name="password" /></p>
<p class="desc">{$lang->about_rechecked_password}</p>
</li>
</ul>
<div class="btnArea">
<span class="btn"><input type="submit" value="{$lang->cmd_confirm}" /></span>
<span class="btn"><a href="{getUrl('act','dispMemberInfo','member_srl','')}">{$lang->cmd_cancel}</a></span>
</div>
</form>