mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
#19144425 회원가입시 비밀번호 찾기를 위한 질의/응답 추가, #19111136 회원가입약관 nl2br 제거, #19144180 비밀번호 갱신 알림 기능 추가, #19141507 아이디 패스워드 찾기시 SSL 적용
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7693 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
1fa2e99408
commit
14389fdc13
28 changed files with 470 additions and 12 deletions
|
|
@ -15,6 +15,7 @@
|
|||
<action name="dispMemberScrappedDocument" type="view" standalone="true" />
|
||||
<action name="dispMemberSavedDocument" type="view" standalone="true" />
|
||||
<action name="dispMemberFindAccount" type="view" standalone="true" />
|
||||
<action name="dispMemberGetTempPassword" type="view" standalone="true" />
|
||||
<action name="dispMemberResendAuthMail" type="view" standalone="true" />
|
||||
<action name="dispSavedDocumentList" type="view" standalone="true" />
|
||||
|
||||
|
|
@ -61,6 +62,7 @@
|
|||
<action name="procMemberDeleteSavedDocument" type="controller" standalone="true" />
|
||||
|
||||
<action name="procMemberFindAccount" type="controller" standalone="true" />
|
||||
<action name="procMemberFindAccountByQuestion" type="controller" standalone="true" />
|
||||
<action name="procMemberAuthAccount" type="controller" standalone="true" />
|
||||
<action name="procMemberUpdateAuthMail" type="controller" standalone="true" />
|
||||
<action name="procMemberResendAuthMail" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = 'The account is not activated.';
|
||||
$lang->invalid_user_id= "You have entered an invalid ID";
|
||||
$lang->invalid_password = 'You have entered an invalid password';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = 'Join Mailing';
|
||||
$lang->denied = 'Prohibited';
|
||||
$lang->is_admin = 'Superadmin Permission';
|
||||
|
|
@ -209,4 +210,25 @@
|
|||
|
||||
$lang->about_resend_auth_mail = 'You can request for activation mail if you have not activated before';
|
||||
$lang->no_article = 'There exists no article';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = 'No está certificado';
|
||||
$lang->invalid_user_id= "Este ID no existe";
|
||||
$lang->invalid_password = 'Contraseña incorrecta';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = 'Registro del envío de mail';
|
||||
$lang->denied = 'Prohibido';
|
||||
$lang->is_admin = 'Atribución del administrador superior';
|
||||
|
|
@ -207,4 +208,25 @@
|
|||
|
||||
$lang->about_resend_auth_mail = 'You can request for authentication mail if you have failed before.';
|
||||
$lang->no_article = 'There exists no article';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = 'Le compte n\'est pas encore certifié.';
|
||||
$lang->invalid_user_id= "C'est un compte qui n'existe pas.";
|
||||
$lang->invalid_password = 'C\'est un mot de passe invalide';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = 'Inscrire au Mailing';
|
||||
$lang->denied = 'Arrêté à utiliser';
|
||||
$lang->is_admin = 'Permission Superadministrative';
|
||||
|
|
@ -211,4 +212,25 @@
|
|||
|
||||
$lang->about_resend_auth_mail = 'You can request for authentication mail if you have failed before.';
|
||||
$lang->no_article = 'There exists no article';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = '認証出来ませんでした。';
|
||||
$lang->invalid_user_id= '存在しないユーザIDです。';
|
||||
$lang->invalid_password = '無効なパスワードです。';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = 'メーリングリストに登録';
|
||||
$lang->denied = '使用中止';
|
||||
$lang->is_admin = '最高管理権限';
|
||||
|
|
@ -210,4 +211,26 @@
|
|||
|
||||
$lang->about_resend_auth_mail = '認証メールが届いてなかった場合、再送信の申請が可能です。<br />※申請の前に、当サイトからメールの受信が出来るように設定して下さい。';
|
||||
$lang->no_article = 'There exists no article';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = '인증이 되지 않았습니다.';
|
||||
$lang->invalid_user_id= '존재하지 않는 사용자 아이디입니다.';
|
||||
$lang->invalid_password = '잘못된 비밀번호입니다.';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = '메일링 가입';
|
||||
$lang->denied = '사용중지';
|
||||
$lang->is_admin = '최고관리 권한';
|
||||
|
|
@ -210,4 +211,24 @@
|
|||
|
||||
$lang->about_resend_auth_mail = '인증 메일을 받지 못하신 경우 다시 받으실 수 있습니다.';
|
||||
$lang->no_article = '글이 없습니다.';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = 'Вы не авторизированы';
|
||||
$lang->invalid_user_id= "Указанный ID не существует";
|
||||
$lang->invalid_password = 'Неверный пароль';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = 'Получать рассылки';
|
||||
$lang->denied = 'Отменить пользование';
|
||||
$lang->is_admin = 'Суперадминистративные права';
|
||||
|
|
@ -210,4 +211,25 @@
|
|||
|
||||
$lang->about_resend_auth_mail = 'Вы можете получить снова письмо для авторизации, если еще не получили.';
|
||||
$lang->no_article = 'Записей нет';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
$lang->invalid_user_id= "Bạn đã nhập sai tên sử dụng";
|
||||
$lang->allow_mailing = 'Đồng ý nhận Email';
|
||||
$lang->invalid_password = 'Mật khẩu không đúng';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->denied = 'Bị từ chối';
|
||||
$lang->is_admin = 'Toàn quyền Administrator';
|
||||
$lang->group = 'Phân nhóm';
|
||||
|
|
@ -210,4 +211,25 @@
|
|||
$lang->add_openid = 'Thêm OpenID';
|
||||
|
||||
$lang->about_resend_auth_mail = '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í.';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = '还没有认证!';
|
||||
$lang->invalid_user_id= '该用户名不存在,请检查您的输入是否有误!';
|
||||
$lang->invalid_password = '您的密码不正确!';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = '接收邮件';
|
||||
$lang->denied = '禁止使用';
|
||||
$lang->is_admin = '最高管理权限';
|
||||
|
|
@ -208,4 +209,25 @@
|
|||
$lang->about_member = "可以添加/修改/删除会员及管理用户组或注册表单的会员管理模块。\n此模块不仅可以生成缺省用户组以外的其他用户组来管理会员,并且通过注册表单的管理获得除会员基本信息以外的扩展信息。";
|
||||
|
||||
$lang->about_resend_auth_mail = '没有收到认证邮件时,可以在此重新发送认证邮件。';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
$lang->invalid_authorization = '還沒有認證!';
|
||||
$lang->invalid_user_id= '該帳號不存在,請檢查您的輸入是否有誤!';
|
||||
$lang->invalid_password = '您的密碼不正確!';
|
||||
$lang->invalid_new_password = '이전 비밀번호와 같습니다.';
|
||||
$lang->allow_mailing = '接收郵件';
|
||||
$lang->denied = '禁止使用';
|
||||
$lang->is_admin = '最高管理權限';
|
||||
|
|
@ -210,4 +211,25 @@
|
|||
|
||||
$lang->about_resend_auth_mail = '如果沒有收到認證郵件可以再重寄一次。';
|
||||
$lang->no_article = '主題不存在';
|
||||
|
||||
$lang->find_account_question = '비밀번호 찾기 질문/답변';
|
||||
$lang->about_find_account_question = '가입시 아이디와 이메일, 질문/답변으로 임시 비밀번호를 발급 받을 수 있습니다.';
|
||||
/*
|
||||
$lang->find_account_question_items = array(''
|
||||
,'다른 이메일 주소는?'
|
||||
,'나의 보물 1호는?'
|
||||
,'나의 출신 초등학교는?'
|
||||
,'나의 출신 고향은?'
|
||||
,'나의 이상형은?'
|
||||
,'어머니 성함은?'
|
||||
,'아버지 성함은?'
|
||||
,'가장 좋아하는 색깔은?'
|
||||
,'가장 좋아하는 음식은?'
|
||||
);
|
||||
*/
|
||||
$lang->temp_password = '임시 비밀번호';
|
||||
$lang->cmd_get_temp_password = '임시 비밀번호 발급';
|
||||
$lang->about_get_temp_password = '로그인 후 비밀번호 변경해 주세요.';
|
||||
$lang->msg_question_not_exists = '등록한 비밀번호 찾기 질문/답변이 없습니다.';
|
||||
$lang->msg_answer_not_matches = '비밀번호 찾기 질문/답변 또는 정보가 올바르지 않습니다.';
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@
|
|||
'image_name', 'image_name_max_width', 'image_name_max_height',
|
||||
'image_mark', 'image_mark_max_width', 'image_mark_max_height',
|
||||
'group_image_mark', 'group_image_mark_max_width', 'group_image_mark_max_height',
|
||||
'signature','signature_max_height'
|
||||
'signature','signature_max_height','change_password_date'
|
||||
);
|
||||
|
||||
if(!$args->skin) $args->skin = "default";
|
||||
|
|
@ -111,6 +111,7 @@
|
|||
if($args->signature!='Y') $args->signature = 'N';
|
||||
if(!trim(strip_tags($args->agreement))) $args->agreement = null;
|
||||
$args->limit_day = (int)$args->limit_day;
|
||||
if(!$args->change_password_date) $args->change_password_date = 0;
|
||||
|
||||
$oMemberController = &getController('member');
|
||||
$output = $oMemberController->setMemberConfig($args);
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
Context::addSSLAction('procMemberModifyPassword');
|
||||
Context::addSSLAction('procMemberInsert');
|
||||
Context::addSSLAction('procMemberModifyInfo');
|
||||
Context::addSSLAction('procMemberFindAccount');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -145,6 +146,13 @@
|
|||
// image_mark 추가 (2009. 02. 14)
|
||||
if(!$oDB->isColumnExists("member_group", "image_mark")) return true;
|
||||
|
||||
// password 유효기간을 위한 추가
|
||||
if(!$oDB->isColumnExists("member", "change_password_date")) return true;
|
||||
|
||||
// 비밀번호 찾기 질문/답변을 위한 추가
|
||||
if(!$oDB->isColumnExists("member", "find_account_question")) return true;
|
||||
if(!$oDB->isColumnExists("member", "find_account_answer")) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -184,6 +192,20 @@
|
|||
$oDB->addColumn("member_group", "image_mark", "text");
|
||||
}
|
||||
|
||||
// password 유효기간을 위한 추가
|
||||
if(!$oDB->isColumnExists("member", "change_password_date")) {
|
||||
$oDB->addColumn("member", "change_password_date", "date");
|
||||
executeQuery('member.updateAllChangePasswordDate');
|
||||
}
|
||||
|
||||
// 비밀번호 찾기 질문/답변을 위한 추가
|
||||
if(!$oDB->isColumnExists("member", "find_account_question")) {
|
||||
$oDB->addColumn("member", "find_account_question", "number", 11);
|
||||
}
|
||||
if(!$oDB->isColumnExists("member", "find_account_answer")) {
|
||||
$oDB->addColumn("member", "find_account_answer", "varchar", 250);
|
||||
}
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,18 @@
|
|||
$config = $oModuleModel->getModuleConfig('member');
|
||||
if($config->after_login_url) $this->setRedirectUrl($config->after_login_url);
|
||||
|
||||
// 설정된 change_password_date 확인
|
||||
$limit_date = $config->change_password_date;
|
||||
|
||||
// change_password_date가 설정되어 있으면 확인
|
||||
if($limit_date > 0) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_info = $oMemberModel->getMemberInfoByUserID($user_id);
|
||||
if($member_info->change_password_date < date('YmdHis', strtotime('-'.$limit_date.' day')) ){
|
||||
$this->setRedirectUrl(getNotEncodedUrl('','vid',Context::get('vid'),'mid',Context::get('mid'),'act','dispMemberModifyPassword'));
|
||||
}
|
||||
}
|
||||
|
||||
$redirect_url = Context::get('redirect_url');
|
||||
if($output->toBool() && Context::getRequestMethod() == "POST" && $redirect_url)
|
||||
{
|
||||
|
|
@ -526,7 +538,7 @@
|
|||
if($config->agreement && Context::get('accept_agreement')!='Y') return $this->stop('msg_accept_agreement');
|
||||
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing');
|
||||
$args = Context::gets('user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','find_account_question','find_account_answer');
|
||||
$args->member_srl = getNextSequence();
|
||||
|
||||
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
|
||||
|
|
@ -585,7 +597,7 @@
|
|||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('user_name','nick_name','homepage','blog','birthday','email_address','allow_mailing');
|
||||
$args = Context::gets('user_name','nick_name','homepage','blog','birthday','email_address','allow_mailing','find_account_question','find_account_answer');
|
||||
|
||||
// 로그인 정보
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
|
@ -654,6 +666,9 @@
|
|||
// 현재 비밀번호가 맞는지 확인
|
||||
if(!$oMemberModel->isValidPassword($member_info->password, $current_password)) return new Object(-1, 'invalid_password');
|
||||
|
||||
// 이전 비밀번호와 같은지 확인
|
||||
if($current_password == $password) return new Object(-1, 'invalid_new_password');
|
||||
|
||||
// member_srl의 값에 따라 insert/update
|
||||
$args->member_srl = $member_srl;
|
||||
$args->password = $password;
|
||||
|
|
@ -1005,6 +1020,45 @@
|
|||
return new Object(0,$msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 질문/답변을 통한 임시 비밀번호 생성
|
||||
**/
|
||||
function procMemberFindAccountByQuestion() {
|
||||
$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');
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 메일 주소에 해당하는 회원이 있는지 검사
|
||||
$member_srl = $oMemberModel->getMemberSrlByEmailAddress($email_address);
|
||||
if(!$member_srl) return new Object(-1, 'msg_email_not_exists');
|
||||
|
||||
// 회원의 정보를 가져옴
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
|
||||
// 질문 응답이 없으면
|
||||
if(!$member_info->find_account_question || !$member_info->find_account_answer) return new Object(-1, 'msg_question_not_exists');
|
||||
|
||||
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');
|
||||
|
||||
// 임시비밀번호로 변경 및 비밀번호 변경시간을 1로 설정
|
||||
$args->member_srl = $member_srl;
|
||||
list($usec, $sec) = explode(" ", microtime());
|
||||
$args->temp_password = substr(md5($user_id . $member_info->find_account_answer. $usec . $sec),0,20);
|
||||
$args->change_password_date = '1';
|
||||
$this->updateMemberPassword($args);
|
||||
|
||||
$_SESSION['xe_temp_password_'.$user_id] = $args->temp_password;
|
||||
|
||||
$this->add('user_id',$user_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 아이디/비밀번호 찾기 기능 실행
|
||||
* 메일에 등록된 링크를 선택시 호출되는 method로 비밀번호를 바꾸고 인증을 시켜버림
|
||||
|
|
@ -1333,12 +1387,36 @@
|
|||
return;
|
||||
}
|
||||
|
||||
$do_auto_login = false;
|
||||
|
||||
// 정보를 바탕으로 키값 비교
|
||||
$key = md5($user_id.$password.$_SERVER['REMOTE_ADDR']);
|
||||
|
||||
if($key == $args->autologin_key) {
|
||||
$output = $this->doLogin($user_id);
|
||||
} else {
|
||||
|
||||
// 설정된 change_password_date 확인
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
$limit_date = $member_config->change_password_date;
|
||||
|
||||
// change_password_date가 설정되어 있으면 확인
|
||||
if($limit_date > 0) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_info = $oMemberModel->getMemberInfoByUserID($user_id);
|
||||
|
||||
if($member_info->change_password_date >= date('YmdHis', strtotime('-'.$limit_date.' day')) ){
|
||||
$do_auto_login = true;
|
||||
}
|
||||
|
||||
} else {
|
||||
$do_auto_login = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($do_auto_login) {
|
||||
$output = $this->doLogin($user_id);
|
||||
} else {
|
||||
executeQuery('member.deleteAutologin', $args);
|
||||
setCookie('xeak',null,time()+60*60*24*365, '/');
|
||||
}
|
||||
|
|
@ -1752,6 +1830,7 @@
|
|||
* @brief member 비밀번호 수정
|
||||
**/
|
||||
function updateMemberPassword($args) {
|
||||
$output = executeQuery('member.updateChangePasswordDate', $args);
|
||||
$args->password = md5($args->password);
|
||||
return executeQuery('member.updateMemberPassword', $args);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -328,6 +328,23 @@
|
|||
$this->setTemplateFile('find_member_account');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 임시 비밀번호 발급
|
||||
**/
|
||||
function dispMemberGetTempPassword() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$user_id = Context::get('user_id');
|
||||
$temp_password = $_SESSION['xe_temp_password_'.$user_id];
|
||||
unset($_SESSION['xe_temp_password_'.$user_id]);
|
||||
|
||||
if(!$user_id||!$temp_password) return new Object(-1,'msg_invaild_request');
|
||||
|
||||
Context::set('temp_password', $temp_password);
|
||||
|
||||
$this->setTemplateFile('find_temp_password');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 인증 메일 재발송 페이지
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
<column name="email_host" var="email_host" notnull="notnull" />
|
||||
<column name="user_name" var="user_name" notnull="notnull" minlength="1" maxlength="40" />
|
||||
<column name="nick_name" var="nick_name" notnull="notnull" minlength="1" maxlength="40" />
|
||||
<column name="find_account_question" var="find_account_question" />
|
||||
<column name="find_account_answer" var="find_account_answer" />
|
||||
<column name="homepage" var="homepage" />
|
||||
<column name="blog" var="blog" />
|
||||
<column name="birthday" var="birthday" />
|
||||
|
|
|
|||
8
modules/member/queries/updateAllChangePasswordDate.xml
Normal file
8
modules/member/queries/updateAllChangePasswordDate.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="updateAllChangePasswordDate" action="update">
|
||||
<tables>
|
||||
<table name="member" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="change_password_date" var="change_password_date" notnull="notnull" default="curdate()" />
|
||||
</columns>
|
||||
</query>
|
||||
11
modules/member/queries/updateChangePasswordDate.xml
Normal file
11
modules/member/queries/updateChangePasswordDate.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="updateChangePasswordDate" action="update">
|
||||
<tables>
|
||||
<table name="member" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="change_password_date" var="change_password_date" notnull="notnull" default="curdate()" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -9,6 +9,8 @@
|
|||
<column name="email_host" var="email_host" notnull="notnull" />
|
||||
<column name="user_name" var="user_name" notnull="notnull" minlength="2" maxlength="40" />
|
||||
<column name="nick_name" var="nick_name" notnull="notnull" minlength="2" maxlength="40" />
|
||||
<column name="find_account_question" var="find_account_question" />
|
||||
<column name="find_account_answer" var="find_account_answer" />
|
||||
<column name="homepage" var="homepage" default="" />
|
||||
<column name="blog" var="blog" default="" />
|
||||
<column name="birthday" var="birthday" />
|
||||
|
|
@ -20,7 +22,4 @@
|
|||
<column name="description" var="description" />
|
||||
<column name="extra_vars" var="extra_vars" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" filter="number" />
|
||||
</conditions>
|
||||
</query>
|
||||
</query>
|
||||
|
|
@ -7,6 +7,8 @@
|
|||
<column name="email_host" type="varchar" size="160" index="idx_email_host" />
|
||||
<column name="user_name" type="varchar" size="40" notnull="notnull" />
|
||||
<column name="nick_name" type="varchar" size="40" notnull="notnull" unique="unique_nick_name" />
|
||||
<column name="find_account_question" type="number" size="11" />
|
||||
<column name="find_account_answer" type="varchar" size="250" />
|
||||
<column name="homepage" type="varchar" size="250" />
|
||||
<column name="blog" type="varchar" size="250" />
|
||||
<column name="birthday" type="char" size="8" />
|
||||
|
|
@ -16,6 +18,7 @@
|
|||
<column name="limit_date" type="date" />
|
||||
<column name="regdate" type="date" index="idx_regdate" />
|
||||
<column name="last_login" type="date" index="idx_last_login" />
|
||||
<column name="change_password_date" type="date" />
|
||||
<column name="is_admin" type="char" size="1" default="N" index="idx_is_admin" />
|
||||
<column name="description" type="text" />
|
||||
<column name="extra_vars" type="text" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
<filter name="find_member_account_by_question" module="member" act="procMemberFindAccountByQuestion">
|
||||
<form>
|
||||
<node target="user_id" required="true" />
|
||||
<node target="email_address" required="true" minlength="2" maxlength="255" filter="email" />
|
||||
<node target="find_account_question" required="true" />
|
||||
<node target="find_account_answer" required="true" maxlength="250" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response callback_func="completeFindMemberAccountByQuestion">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="user_id" />
|
||||
</response>
|
||||
</filter>
|
||||
|
|
@ -3,12 +3,16 @@
|
|||
<node target="user_name" required="true" minlength="2" maxlength="40" />
|
||||
<node target="nick_name" required="true" minlength="2" maxlength="40" />
|
||||
<node target="email_address" required="true" minlength="1" maxlength="200" filter="email" />
|
||||
<node target="find_account_question" required="true" />
|
||||
<node target="find_account_answer" required="true" maxlength="250" />
|
||||
</form>
|
||||
<parameter>
|
||||
<param name="accept_agreement" target="accept_agreement" />
|
||||
<param name="user_name" target="user_name" />
|
||||
<param name="nick_name" target="nick_name" />
|
||||
<param name="homepage" target="homepage" />
|
||||
<param name="nick_name" target="nick_name" />
|
||||
<param name="find_account_question" target="find_account_question" />
|
||||
<param name="find_account_answer" target="find_account_answer" />
|
||||
<param name="blog" target="blog" />
|
||||
<param name="birthday" target="birthday" />
|
||||
<param name="allow_mailing" target="allow_mailing" />
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@
|
|||
<node target="user_name" required="true" minlength="2" maxlength="40" />
|
||||
<node target="nick_name" required="true" minlength="2" maxlength="40" />
|
||||
<node target="email_address" required="true" minlength="1" maxlength="200" filter="email" />
|
||||
<node target="find_account_question" required="true" />
|
||||
<node target="find_account_answer" required="true" maxlength="250" />
|
||||
</form>
|
||||
<parameter>
|
||||
<param name="accept_agreement" target="accept_agreement" />
|
||||
|
|
@ -14,6 +16,8 @@
|
|||
<param name="password" target="password1" />
|
||||
<param name="user_name" target="user_name" />
|
||||
<param name="nick_name" target="nick_name" />
|
||||
<param name="find_account_question" target="find_account_question" />
|
||||
<param name="find_account_answer" target="find_account_answer" />
|
||||
<param name="homepage" target="homepage" />
|
||||
<param name="blog" target="blog" />
|
||||
<param name="birthday" target="birthday" />
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
<!--#include("./common_header.html")-->
|
||||
<!--%import("filter/find_member_account.xml")-->
|
||||
<!--%import("filter/find_member_account_by_question.xml")-->
|
||||
|
||||
<h3>{$member_title = $lang->cmd_find_member_account}</h3>
|
||||
<h3>{$lang->cmd_find_member_account}</h3>
|
||||
|
||||
<p class="summary">{$lang->about_find_member_account}</p>
|
||||
|
||||
|
|
@ -20,4 +21,46 @@
|
|||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
|
||||
<!--@if(count($lang->find_account_question_items)>1)-->
|
||||
<h3>{$lang->cmd_find_member_account}</h3>
|
||||
|
||||
<p class="summary">{$lang->about_find_account_question}</p>
|
||||
|
||||
<form action="./" method="get" onsubmit="return procFilter(this, find_member_account_by_question)">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
|
||||
<table cellspacing="0" class="rowTable" title="{$lang->email_address}">
|
||||
<tr>
|
||||
<th><div><label for="cpw">{$lang->user_id}</label></div></th>
|
||||
<td class="wide"><input type="text" name="user_id" class="inputTypeText" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><div><label for="cpw">{$lang->email_address}</label></div></th>
|
||||
<td class="wide"><input type="text" name="email_address" class="inputTypeText w400" /></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th><div><label for="cpw">{$lang->find_account_question}</label></div></th>
|
||||
<td>
|
||||
<select name="find_account_question">
|
||||
<!--@for($i=1,$c=count($lang->find_account_question_items);$i<$c;$i++)-->
|
||||
<option value="{$i}">{$lang->find_account_question_items[$i]}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<br />
|
||||
<input type="text" name="find_account_answer" value="" class="inputTypeText w300"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="button" colspan="2"><span class="button black strong"><input type="submit" value="{$lang->cmd_get_temp_password}" accesskey="s" /></span></th>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<!--@end-->
|
||||
|
||||
<!--#include("./common_footer.html")-->
|
||||
|
|
|
|||
8
modules/member/skins/default/find_temp_password.html
Normal file
8
modules/member/skins/default/find_temp_password.html
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<!--#include("./common_header.html")-->
|
||||
|
||||
<h3>{$lang->cmd_find_member_account}</h3>
|
||||
<p class="summary">{$lang->about_find_member_account}</p>
|
||||
|
||||
{$temp_password}
|
||||
|
||||
<!--#include("./common_footer.html")-->
|
||||
|
|
@ -133,6 +133,15 @@ function completeFindMemberAccount(ret_obj, response_tags) {
|
|||
alert(ret_obj['message']);
|
||||
}
|
||||
|
||||
/* 임시 비밀번호 생성 */
|
||||
function completeFindMemberAccountByQuestion(ret_obj, response_tags) {
|
||||
if(ret_obj['error'] != 0){
|
||||
alert(ret_obj['message']);
|
||||
}else{
|
||||
location.href = current_url.setQuery('act','dispMemberGetTempPassword').setQuery('user_id',ret_obj['user_id']);
|
||||
}
|
||||
}
|
||||
|
||||
/* 저장글 삭제 */
|
||||
function doDeleteSavedDocument(document_srl, confirm_message) {
|
||||
if(!confirm(confirm_message)) return false;
|
||||
|
|
|
|||
|
|
@ -51,6 +51,19 @@
|
|||
<th><div>{$lang->email_address} <span class="require">*</span></div></th>
|
||||
<td><input type="text" name="email_address" value="{htmlspecialchars($member_info->email_address)}" /><p>{$lang->about_email_address}</p></td>
|
||||
</tr>
|
||||
<!--@if($member_info->find_account_question)-->
|
||||
<tr>
|
||||
<th><div>{$lang->find_account_question} <span class="require">*</span></div></th>
|
||||
<td>
|
||||
<select name="find_account_question">
|
||||
<!--@for($i=1,$c=count($lang->find_account_question_items);$i<$c;$i++)-->
|
||||
<option value="{$i}" <!--@if($member_info->find_account_question==$i)-->selected="selected" <!--@end-->>{$lang->find_account_question_items[$i]}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<br /><input type="text" name="find_account_answer" value="{$member_info->find_account_answer}" class="inputTypeText w300"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
|
||||
<!--@if($member_config->profile_image == 'Y')-->
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
<!--@if(!$is_logged && $member_config->agreement)-->
|
||||
<div class="agreementBox">
|
||||
{nl2br($member_config->agreement)}
|
||||
{$member_config->agreement}
|
||||
</div>
|
||||
<div class="agreementButton">
|
||||
<input type="checkbox" name="accept_agreement" value="Y" id="accept_agree" />
|
||||
|
|
@ -56,6 +56,20 @@
|
|||
<input type="text" name="email_address" value="" class="inputTypeText"/><p>{$lang->about_email_address}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@if(count($lang->find_account_question_items)>1)-->
|
||||
<tr>
|
||||
<th><div>{$lang->find_account_question} <span class="require">*</span></div></th>
|
||||
<td>
|
||||
<select name="find_account_question">
|
||||
<!--@for($i=1,$c=count($lang->find_account_question_items);$i<$c;$i++)-->
|
||||
<option value="{$i}">{$lang->find_account_question_items[$i]}</option>
|
||||
<!--@end-->
|
||||
</select>
|
||||
<br />
|
||||
<input type="text" name="find_account_answer" value="" class="inputTypeText w300"/>
|
||||
</td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
<tr>
|
||||
<th><div>{$lang->homepage}</div></th>
|
||||
<td>
|
||||
|
|
|
|||
|
|
@ -43,6 +43,13 @@
|
|||
{$lang->about_enable_confirm}
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>change password date</div></th>
|
||||
<td>
|
||||
<input type="text" name="change_password_date" value="{$config->change_password_date}" size="2" class="inputTypeText" />{$lang->unit_day}
|
||||
<p>{$lang->about_change_password_date}</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<th scope="row"><div>{$lang->limit_day}</div></th>
|
||||
<td>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue