diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index 81f53f3fc..1e5f592b8 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -2003,6 +2003,9 @@ Kayıt esnasında kullandığınız e-posta adresini giriniz ve "Hesap Bilgisini Bul" tuşuna basınız.
]]>
Xin vui lòng nhập Email mà bạn đã đăng kí và bấm "Lấy lại thông tin" để nhận được thông tin đăng nhập!.
]]>
+ + 로그인 후 반드시 비밀번호를 변경하시기 바랍니다.
]]>
+
diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index 25e0af862..730e0a623 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -214,6 +214,7 @@ // create Ruleset $this->_createSignupRuleset($signupForm); $this->_createLoginRuleset($args->identifier); + $this->_createFindAccountByQuestion($args->identifier); } $output = $oModuleController->updateModuleConfig('member', $args); // default setting end @@ -270,11 +271,36 @@ $fields[] = ''; $xml_buff = sprintf($buff, implode('', $fields)); - FileHandler::writeFile($xml_file, $xml_buff); + filehandler::writefile($xml_file, $xml_buff); - $validator = new Validator($xml_file); - $validator->setCacheDir('files/cache'); - $validator->getJsPath(); + $validator = new validator($xml_file); + $validator->setcachedir('files/cache'); + $validator->getjspath(); + } + + function _createFindAccountByQuestion($identifier){ + $xml_file = './files/ruleset/find_member_account_by_question.xml'; + $buff = '' + .'' + .'' + .'' + .'%s' + .''; + + $fields = array(); + if ($identifier == 'user_id') + $fields[] = ''; + + $fields[] = ''; + $fields[] = ''; + $fields[] = ''; + + $xml_buff = sprintf($buff, implode('', $fields)); + filehandler::writefile($xml_file, $xml_buff); + + $validator = new validator($xml_file); + $validator->setcachedir('files/cache'); + $validator->getjspath(); } /** diff --git a/modules/member/member.admin.view.php b/modules/member/member.admin.view.php index 590d75069..69e570a10 100644 --- a/modules/member/member.admin.view.php +++ b/modules/member/member.admin.view.php @@ -180,7 +180,6 @@ $member_config = $oMemberModel->getMemberConfig(); global $lang; - if (!$member_config->identifier) $member_config->identifier = 'user_id'; $identifierForm->title = $lang->{$member_config->identifier}; $identifierForm->name = $member_config->identifier; $identifierForm->value = $memberInfo->{$member_config->identifier}; diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 26b894bbf..05f461b51 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -493,6 +493,8 @@ } $args->member_srl = getNextSequence(); $args->list_order = -1 * $args->member_srl; + $args->find_account_answer = Context::get('find_account_answer'); + if($args->password1) $args->password = $args->password1; // Remove some unnecessary variables from all the vars @@ -970,9 +972,24 @@ if(!$output->toBool()) return $output; // Get content of the email to send a member Context::set('auth_args', $args); - Context::set('member_info', $member_info); $member_config = $oModuleModel->getModuleConfig('member'); + 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] = $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"; @@ -1006,14 +1023,16 @@ * @brief Generate a temp password by answering to the pre-determined question **/ function procMemberFindAccountByQuestion() { + $oMemberModel = &getModel('member'); + $config = $oMemberModel->getMemberConfig(); + $email_address = Context::get('email_address'); $user_id = Context::get('user_id'); $find_account_question = trim(Context::get('find_account_question')); $find_account_answer = trim(Context::get('find_account_answer')); - if(!$user_id || !$email_address || !$find_account_question || !$find_account_answer) return new Object(-1, 'msg_invalid_request'); + if(($config->identifier == 'user_id' && !$user_id) || !$email_address || !$find_account_question || !$find_account_answer) return new Object(-1, 'msg_invalid_request'); - $oMemberModel = &getModel('member'); $oModuleModel = &getModel('module'); // Check if a member having the same email address exists $member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address); @@ -1027,6 +1046,10 @@ if(trim($member_info->find_account_question) != $find_account_question || trim($member_info->find_account_answer) != $find_account_answer) return new Object(-1, 'msg_answer_not_matches'); + if ($config->identifier == 'email_address'){ + $user_id = $email_address; + } + // Update to a temporary password and set change_password_date to 1 $args->member_srl = $member_srl; list($usec, $sec) = explode(" ", microtime()); @@ -1040,6 +1063,12 @@ $_SESSION['xe_temp_password_'.$user_id] = $temp_password; $this->add('user_id',$user_id); + + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', ''); + $this->setRedirectUrl($returnUrl.'&user_id='.$user_id); + return; + } } /** @@ -1723,7 +1752,6 @@ // check mamber identifier form $config = $oMemberModel->getMemberConfig(); - if (!$config->identifier) $config->identifier = 'user_id'; $output = executeQuery('member.getMemberInfoByMemberSrl', $args); $orgMemberInfo = $output->data; diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 1b83e79f9..580c532bb 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -40,6 +40,8 @@ if(!$config->editor_skin || $config->editor_skin == 'default') $config->editor_skin = "xpresseditor"; if(!$config->group_image_mark) $config->group_image_mark = "N"; + if (!$config->identifier) $config->identifier = 'user_id'; + return $config; } diff --git a/modules/member/member.view.php b/modules/member/member.view.php index 8286d74d8..e655d2c61 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -148,7 +148,6 @@ Context::set('member_config', $member_config); global $lang; - if(!$member_config->identifier) $member_config->identifier = 'user_id'; $identifierForm->title = $lang->{$member_config->identifier}; $identifierForm->name = $member_config->identifier; $identifierForm->value = $member_info->{$member_config->identifier}; @@ -320,6 +319,11 @@ function dispMemberFindAccount() { if(Context::get('is_logged')) return $this->stop('already_logged'); + $oMemberModel = &getModel('member'); + $config = $oMemberModel->getMemberConfig(); + + Context::set('identifier', $config->identifier); + $this->setTemplateFile('find_member_account'); } diff --git a/modules/member/skins/default/find_member_account.html b/modules/member/skins/default/find_member_account.html index 53805d521..3cf68d481 100644 --- a/modules/member/skins/default/find_member_account.html +++ b/modules/member/skins/default/find_member_account.html @@ -1,6 +1,5 @@ -

{$lang->cmd_find_member_account}

{$lang->about_find_member_account}

@@ -20,12 +19,14 @@

{$lang->cmd_find_member_account}

{$lang->about_find_account_question}

- + + +
    -
  • +
  • diff --git a/modules/member/skins/default/find_member_account_mail.html b/modules/member/skins/default/find_member_account_mail.html index ca9bed876..26c4a3bec 100644 --- a/modules/member/skins/default/find_member_account_mail.html +++ b/modules/member/skins/default/find_member_account_mail.html @@ -2,10 +2,7 @@
    • Site : {getUrl()}
    • -
    • {$lang->user_id} : {$member_info->user_id}
    • -
    • {$lang->user_name} : {$member_info->user_name}
    • -
    • {$lang->nick_name} : {$member_info->nick_name}
    • -
    • {$lang->email_address} : {$member_info->email_address}
    • +
    • {$name} : {$value}
    • {$lang->password} : {$auth_args->new_password}

    diff --git a/modules/member/skins/default/find_temp_password.html b/modules/member/skins/default/find_temp_password.html index bbc26ea12..efb2ac77a 100644 --- a/modules/member/skins/default/find_temp_password.html +++ b/modules/member/skins/default/find_temp_password.html @@ -1,5 +1,6 @@

    {$lang->cmd_find_member_account}

    -

    {$lang->about_find_member_account}

    -

    {$temp_password}

    +

    {$lang->about_temp_password}

    +

    {$lang->user_id} : {$user_id}

    +

    {$lang->temp_password} : {$temp_password}