mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-26 06:39:56 +09:00
merge from 1.5.3 (~r10943)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@10951 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7aa4798373
commit
54e3a72065
334 changed files with 13011 additions and 5561 deletions
|
|
@ -155,6 +155,10 @@
|
|||
<value xml:lang="tr"><![CDATA[Hesap etkinleştirilmemiş.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Tài khoản đăng nhập không đúng.]]></value>
|
||||
</item>
|
||||
<item name="invalid_email_address">
|
||||
<value xml:lang="ko"><![CDATA[이메일 주소와 일치하는 회원이 없습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[You have entered an invalid email address. There is no member who has the email, entered.]]></value>
|
||||
</item>
|
||||
<item name="invalid_user_id">
|
||||
<value xml:lang="ko"><![CDATA[존재하지 않는 회원 아이디입니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[You have entered an invalid ID.]]></value>
|
||||
|
|
@ -929,6 +933,14 @@
|
|||
<value xml:lang="tr"><![CDATA[Hesap Bilgisi Bul]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Lấy lại thông tin]]></value>
|
||||
</item>
|
||||
<item name="cmd_find_member_account_with_email">
|
||||
<value xml:lang="ko"><![CDATA[이메일 주소로 계정 찾기]]></value>
|
||||
<value xml:lang="en"><![CDATA[Find Account with Email address]]></value>
|
||||
</item>
|
||||
<item name="cmd_find_member_account_with_email_question">
|
||||
<value xml:lang="ko"><![CDATA[질문/답변으로 계정 찾기]]></value>
|
||||
<value xml:lang="en"><![CDATA[Find Account with Q&A]]></value>
|
||||
</item>
|
||||
<item name="cmd_resend_auth_mail">
|
||||
<value xml:lang="ko"><![CDATA[인증 메일 재발송]]></value>
|
||||
<value xml:lang="en"><![CDATA[Request for Activation Mail]]></value>
|
||||
|
|
@ -2019,7 +2031,7 @@
|
|||
</item>
|
||||
<item name="about_find_member_account">
|
||||
<value xml:lang="ko"><![CDATA[아이디/ 비밀번호는 가입시 등록한 메일 주소로 알려드립니다.<br />가입할 때 등록하신 메일 주소를 입력하시고 "아이디/비밀번호 찾기" 버튼을 클릭해주세요.<br />]]></value>
|
||||
<value xml:lang="en"><![CDATA[Your account info will be sent to this email address.<br />Please input the email address you have entered during the registration, then press "Find Account Info" button.<br />]]></value>
|
||||
<value xml:lang="en"><![CDATA[lease input the email address you have entered during the registration and we will send your account info to this email address.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[ID/パスワードは登録時に登録されたメールにてお知らせします。<br />登録時に登録したメールアドレスを入力して「IDとパスワードのリマインダー」ボタンをクリックしてください。<br />]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[用户名/密码将发送到您注册时所输入的电子邮件当中。<br />输入注册时的电子邮件地址后,请点击“查找用户名/密码”按钮。<br />]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[帳號/密碼將發送到您註冊時,所輸入的電子郵件當中。<br />輸入註冊時的電子郵件地址後,請按「查詢帳號/密碼」按鈕。<br />]]></value>
|
||||
|
|
@ -2234,6 +2246,22 @@ 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="zh-TW"><![CDATA[可設定密碼更新週期,將會定期通知更換密碼。 (設為零則不使用)]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Eğer buna bir değer biçerseniz, şifrenizi belirli aralıklarla değiştirmeniz konusunda bildirim alacaksanız (eğer 0 olarak ayarlandıysa, devredışıdır)]]></value>
|
||||
</item>
|
||||
<item name="login_trial_limit1">
|
||||
<value xml:lang="ko"><![CDATA[로그인 시도 횟수 제한 횟수]]></value>
|
||||
<value xml:lang="en"><![CDATA[Sign in trial limit]]></value>
|
||||
</item>
|
||||
<item name="login_trial_limit2">
|
||||
<value xml:lang="ko"><![CDATA[로그인 시도 횟수 제한 시간]]></value>
|
||||
<value xml:lang="en"><![CDATA[Sign in trial limit]]></value>
|
||||
</item>
|
||||
<item name="about_login_trial_limit1">
|
||||
<value xml:lang="ko"><![CDATA[정해진 시간 안에 허용되는 로그인 횟수를 입력하십시오. 짧은 시간 동안 하나의 아이피(IP)에서 시도할 수 있는 로그인 횟수에 제한을 둡니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Set the number of trial limit. Limit the number of trial to sign in from a IP address.]]></value>
|
||||
</item>
|
||||
<item name="about_login_trial_limit2">
|
||||
<value xml:lang="ko"><![CDATA[지정된 횟수의 로그인을 허용하는 시간을 정하십시오. 짧은 시간 동안 하나의 아이피(IP)에서 시도할 수 있는 로그인 횟수에 제한을 둡니다. 시간은 가장 마지막 로그인 시도의 시각으로부터의 시간을 기준으로 측정합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Set the time limit to try the written times of sign in. Limit the number of trial to sign in during the span of time, from a IP address.]]></value>
|
||||
</item>
|
||||
<item name="msg_kr_address">
|
||||
<value xml:lang="ko"><![CDATA[읍, 면, 동 이름으로 검색하세요.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Search for the name of eup, myeon or dong of your address.]]></value>
|
||||
|
|
@ -2466,4 +2494,23 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới,
|
|||
<item name="msg_success_modify_email_address">
|
||||
<value xml:lang="ko"><![CDATA[이메일 주소가 정상적으로 변경되었습니다. 변경된 이메일 주소로 로그인 가능합니다.]]></value>
|
||||
</item>
|
||||
<item name="group">
|
||||
<value xml:lang="ko"><![CDATA[그룹]]></value>
|
||||
<value xml:lang="en"><![CDATA[Group]]></value>
|
||||
</item>
|
||||
<item name="retrieve_password">
|
||||
<value xml:lang="en"><![CDATA[Retrieve password]]></value>
|
||||
</item>
|
||||
<item name="excess_ip_access_count">
|
||||
<value xml:lang="ko"><![CDATA[로그인 가능 횟수를 초과하셨습니다. %s 간 로그인 하실 수 없습니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[There was too much sign in trial from your devices in a short time. You can not sign in for %s.]]></value>
|
||||
</item>
|
||||
<item name="login_fail_report">
|
||||
<value xml:lang="ko"><![CDATA[로그인 실패 기록 보고 입니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Sign in failure report.]]></value>
|
||||
</item>
|
||||
<item name="login_fail_report_contents">
|
||||
<value xml:lang="ko"><![CDATA[<h2>확인하지 않은 로그인 실패 기록이 있습니다.</h2><div>%1$s</div><p>* 이 알림은 한번만 보입니다.<br />* 이 메시지는 쪽지와 이메일로 발송됩니다.<br />* 이 메시지는 로그인이 성공한 순간, 로그인 성공 이전 실패 기록을 모아서 발송합니다.<br />발송 시각: %2$s</p>]]></value>
|
||||
<value xml:lang="en"><![CDATA[<h2>There is unfolded sign in failure report</h2><div>%1$s</div><p>* This notification is shown once.<br />* This message will be send to your email and message.<br />* This message contains sign in failure records, before a ID sign in success.<br />Sending: %2$s</p>]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
|
|
|
|||
|
|
@ -2,19 +2,21 @@
|
|||
/**
|
||||
* @class memberAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module of the admin controller class
|
||||
* member module of the admin controller class
|
||||
**/
|
||||
|
||||
class memberAdminController extends member {
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
* Initialization
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add a user (Administrator)
|
||||
* Add a user (Administrator)
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminInsert() {
|
||||
// if(Context::getRequestMethod() == "GET") return new Object(-1, "msg_invalid_request");
|
||||
|
|
@ -103,15 +105,14 @@
|
|||
if (is_uploaded_file($image_name['tmp_name'])){
|
||||
$oMemberController->insertImageName($args->member_srl, $image_name['tmp_name']);
|
||||
}
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete a user (Administrator)
|
||||
* Delete a user (Administrator)
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminDelete() {
|
||||
// Separate all the values into DB entries and others
|
||||
|
|
@ -125,6 +126,10 @@
|
|||
$this->setMessage("success_deleted");
|
||||
}
|
||||
|
||||
/**
|
||||
* Set config of member
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminInsertConfig(){
|
||||
$input_args = Context::gets(
|
||||
'enable_join',
|
||||
|
|
@ -133,6 +138,7 @@
|
|||
'webmaster_email',
|
||||
'limit_day',
|
||||
'change_password_date',
|
||||
'max_error_count','max_error_count_time',
|
||||
'agreement',
|
||||
'after_login_url',
|
||||
'after_logout_url',
|
||||
|
|
@ -186,7 +192,7 @@
|
|||
$signupItem->isDefaultForm = in_array($key, $items);
|
||||
|
||||
$signupItem->name = $key;
|
||||
if(in_array($key, $items)) $signupItem->title = $key;
|
||||
if(!in_array($key, $items)) $signupItem->title = $key;
|
||||
else $signupItem->title = $lang->{$key};
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->imageType = (strpos($key, 'image') !== false);
|
||||
|
|
@ -226,18 +232,30 @@
|
|||
$this->_createLoginRuleset($args->identifier);
|
||||
$this->_createFindAccountByQuestion($args->identifier);
|
||||
}
|
||||
|
||||
// check agreement value exist
|
||||
if($args->agreement)
|
||||
{
|
||||
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement.txt';
|
||||
$output = FileHandler::writeFile($agreement_file, $args->agreement);
|
||||
|
||||
unset($args->agreement);
|
||||
}
|
||||
$output = $oModuleController->updateModuleConfig('member', $args);
|
||||
|
||||
// default setting end
|
||||
$this->setMessage('success_updated');
|
||||
|
||||
if($output->toBool() && !in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminConfig');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create ruleset file of signup
|
||||
* @param object $signupForm (user define signup form)
|
||||
* @param string $agreement
|
||||
* @return void
|
||||
**/
|
||||
function _createSignupRuleset($signupForm, $agreement = null){
|
||||
$xml_file = './files/ruleset/insertMember.xml';
|
||||
$buff = '<?xml version="1.0" encoding="utf-8"?>' . PHP_EOL
|
||||
|
|
@ -285,6 +303,11 @@
|
|||
$validator->getJsPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create ruleset file of login
|
||||
* @param string $identifier (login identifier)
|
||||
* @return void
|
||||
**/
|
||||
function _createLoginRuleset($identifier){
|
||||
$xml_file = './files/ruleset/login.xml';
|
||||
$buff = '<?xml version="1.0" encoding="utf-8"?>'
|
||||
|
|
@ -307,6 +330,11 @@
|
|||
$validator->getJsPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create ruleset file of find account
|
||||
* @param string $identifier (login identifier)
|
||||
* @return void
|
||||
**/
|
||||
function _createFindAccountByQuestion($identifier){
|
||||
$xml_file = './files/ruleset/find_member_account_by_question.xml';
|
||||
$buff = '<?xml version="1.0" encoding="utf-8"?>'
|
||||
|
|
@ -333,7 +361,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add a user group
|
||||
* Add a user group
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminInsertGroup() {
|
||||
$args = Context::gets('title','description','is_default','image_mark');
|
||||
|
|
@ -344,15 +373,13 @@
|
|||
$this->add('page',Context::get('page'));
|
||||
$this->setMessage('success_registed');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Update user group information
|
||||
* Update user group information
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminUpdateGroup() {
|
||||
$group_srl = Context::get('group_srl');
|
||||
|
|
@ -366,15 +393,13 @@
|
|||
$this->add('page',Context::get('page'));
|
||||
$this->setMessage('success_updated');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Update user group information
|
||||
* Update user group information
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminDeleteGroup() {
|
||||
$group_srl = Context::get('group_srl');
|
||||
|
|
@ -386,15 +411,13 @@
|
|||
$this->add('page',Context::get('page'));
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add a join form
|
||||
* Add a join form
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminInsertJoinForm() {
|
||||
$args->member_join_form_srl = Context::get('member_join_form_srl');
|
||||
|
|
@ -451,13 +474,14 @@
|
|||
|
||||
$this->setMessage('success_registed');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminJoinFormList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminJoinFormList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a join form
|
||||
* @return void
|
||||
**/
|
||||
function procMemberAdminDeleteJoinForm(){
|
||||
$member_join_form_srl = Context::get('member_join_form_srl');
|
||||
$this->deleteJoinForm($member_join_form_srl);
|
||||
|
|
@ -476,7 +500,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Move up/down the member join form and modify it
|
||||
* Move up/down the member join form and modify it
|
||||
* @deprecated
|
||||
* @return void
|
||||
**/
|
||||
function procMemberAdminUpdateJoinForm() {
|
||||
$member_join_form_srl = Context::get('member_join_form_srl');
|
||||
|
|
@ -505,6 +531,7 @@
|
|||
|
||||
/**
|
||||
* selected member manager layer in dispAdminList
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminSelectedMemberManage(){
|
||||
$var = Context::getRequestVars();
|
||||
|
|
@ -572,15 +599,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the selected members
|
||||
* Delete the selected members
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function procMemberAdminDeleteMembers() {
|
||||
$target_member_srls = Context::get('target_member_srls');
|
||||
|
|
@ -600,7 +625,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Update a group of selected memebrs
|
||||
* Update a group of selected memebrs
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminUpdateMembersGroup() {
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
|
@ -657,7 +683,8 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add a denied ID
|
||||
* Add a denied ID
|
||||
* @return void
|
||||
**/
|
||||
function procMemberAdminInsertDeniedID() {
|
||||
$user_ids = Context::get('user_id');
|
||||
|
|
@ -672,15 +699,13 @@
|
|||
|
||||
$this->add('user_ids', implode(',',$success_ids));
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDeniedIDList');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminDeniedIDList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Update denied ID
|
||||
* Update denied ID
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAdminUpdateDeniedID() {
|
||||
$user_id = Context::get('user_id');
|
||||
|
|
@ -699,7 +724,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add an administrator
|
||||
* Add an administrator
|
||||
* @param object $args
|
||||
* @return object (info of added member)
|
||||
**/
|
||||
function insertAdmin($args) {
|
||||
// Assign an administrator
|
||||
|
|
@ -714,7 +741,10 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Change the group values of member
|
||||
* Change the group values of member
|
||||
* @param int $source_group_srl
|
||||
* @param int $target_group_srl
|
||||
* @return Object
|
||||
**/
|
||||
function changeGroup($source_group_srl, $target_group_srl) {
|
||||
$args->source_group_srl = $source_group_srl;
|
||||
|
|
@ -724,7 +754,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief find_account_answerInsert a group
|
||||
* find_account_answerInsert a group
|
||||
* @param object $args
|
||||
* @return Object
|
||||
**/
|
||||
function insertGroup($args) {
|
||||
if(!$args->site_srl) $args->site_srl = 0;
|
||||
|
|
@ -741,7 +773,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Modify Group Information
|
||||
* Modify Group Information
|
||||
* @param object $args
|
||||
* @return Object
|
||||
**/
|
||||
function updateGroup($args) {
|
||||
// Check the value of is_default.
|
||||
|
|
@ -758,6 +792,9 @@
|
|||
|
||||
/**
|
||||
* Delete a Group
|
||||
* @param int $group_srl
|
||||
* @param int $site_srl
|
||||
* @return Object
|
||||
**/
|
||||
function deleteGroup($group_srl, $site_srl = 0) {
|
||||
// Create a member model object
|
||||
|
|
@ -781,6 +818,7 @@
|
|||
|
||||
/**
|
||||
* Set group config
|
||||
* @return void
|
||||
**/
|
||||
function procMemberAdminGroupConfig() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
|
@ -812,13 +850,14 @@
|
|||
|
||||
$this->setMessage('success_updated');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set group order
|
||||
* @return void
|
||||
**/
|
||||
function procMemberAdminUpdateGroupOrder() {
|
||||
$vars = Context::getRequestVars();
|
||||
|
||||
|
|
@ -828,11 +867,14 @@
|
|||
executeQuery('member.updateMemberGroupListOrder', $args);
|
||||
}
|
||||
|
||||
header(sprintf('Location:%s', getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList')));
|
||||
$this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispMemberAdminGroupList'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Register denied ID
|
||||
* Register denied ID
|
||||
* @param string $user_id
|
||||
* @param string $description
|
||||
* @return Object
|
||||
**/
|
||||
function insertDeniedID($user_id, $description = '') {
|
||||
$args->user_id = $user_id;
|
||||
|
|
@ -843,7 +885,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete a denied ID
|
||||
* Delete a denied ID
|
||||
* @param string $user_id
|
||||
* @return Object
|
||||
**/
|
||||
function deleteDeniedID($user_id) {
|
||||
$args->user_id = $user_id;
|
||||
|
|
@ -851,7 +895,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete a join form
|
||||
* Delete a join form
|
||||
* @param int $member_join_form_srl
|
||||
* @return Object
|
||||
**/
|
||||
function deleteJoinForm($member_join_form_srl) {
|
||||
$args->member_join_form_srl = $member_join_form_srl;
|
||||
|
|
@ -860,7 +906,10 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Move up a join form
|
||||
* Move up a join form
|
||||
* @deprecated
|
||||
* @param int $member_join_form_srl
|
||||
* @return Object
|
||||
**/
|
||||
function moveJoinFormUp($member_join_form_srl) {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
@ -899,7 +948,10 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Move down a join form
|
||||
* Move down a join form
|
||||
* @deprecated
|
||||
* @param int $member_join_form_srl
|
||||
* @return Object
|
||||
**/
|
||||
function moveJoinFormDown($member_join_form_srl) {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
|
|||
|
|
@ -2,26 +2,40 @@
|
|||
/**
|
||||
* @class memberAdminModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief admin model class of member module
|
||||
* admin model class of member module
|
||||
**/
|
||||
|
||||
class memberAdminModel extends member {
|
||||
|
||||
/**
|
||||
* @brief Keep data internally which may be frequently called.
|
||||
* info of member
|
||||
* @var object
|
||||
**/
|
||||
var $member_info = NULL;
|
||||
|
||||
/**
|
||||
* info of member groups
|
||||
* @var array
|
||||
**/
|
||||
var $member_groups = NULL;
|
||||
|
||||
/**
|
||||
* info of sign up form
|
||||
* @var array
|
||||
**/
|
||||
var $join_form_list = NULL;
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
* Initialization
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get a member list
|
||||
* Get a member list
|
||||
*
|
||||
* @return object|array (object : when member count is 1, array : when member count is more than 1)
|
||||
**/
|
||||
function getMemberList() {
|
||||
// Search option
|
||||
|
|
@ -119,7 +133,12 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Get a memebr list for each site
|
||||
* Get a memebr list for each site
|
||||
*
|
||||
* @param int $site_srl
|
||||
* @param int $page
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function getSiteMemberList($site_srl, $page = 1) {
|
||||
$args->site_srl = $site_srl;
|
||||
|
|
@ -131,6 +150,11 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get member_srls lists about site admins
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function getSiteAdminMemberSrls(){
|
||||
$output = executeQueryArray('member.getSiteAdminMemberSrls');
|
||||
if (!$output->toBool() || !$output->data) return array();
|
||||
|
|
@ -144,7 +168,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Return colorset list of a skin in the member module
|
||||
* Return colorset list of a skin in the member module
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function getMemberAdminColorset() {
|
||||
$skin = Context::get('skin');
|
||||
|
|
@ -167,7 +193,11 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Return member count with date
|
||||
* Return member count with date
|
||||
*
|
||||
* @param string $date
|
||||
*
|
||||
* @return int
|
||||
**/
|
||||
function getMemberCountByDate($date = '') {
|
||||
if($date) $args->regDate = date('Ymd', strtotime($date));
|
||||
|
|
@ -179,7 +209,11 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Return site join member count with date
|
||||
* Return site join member count with date
|
||||
*
|
||||
* @param string $date
|
||||
*
|
||||
* @return int
|
||||
**/
|
||||
function getMemberGroupMemberCountByDate($date = '') {
|
||||
if($date) $args->regDate = date('Ymd', strtotime($date));
|
||||
|
|
@ -191,7 +225,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Return add join Form
|
||||
* Return add join Form
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function getMemberAdminInsertJoinForm() {
|
||||
$member_join_form_srl = Context::get('member_join_form_srl');
|
||||
|
|
@ -214,6 +250,13 @@
|
|||
|
||||
$this->add('tpl', str_replace("\n"," ",$tpl));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* check allowed target ip address when login for admin.
|
||||
*
|
||||
* @return boolean (true : allowed, false : refuse)
|
||||
**/
|
||||
function getMemberAdminIPCheck() {
|
||||
|
||||
$db_info = Context::getDBInfo();
|
||||
|
|
|
|||
|
|
@ -2,15 +2,29 @@
|
|||
/**
|
||||
* @class memberAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief member module's admin view class
|
||||
* member module's admin view class
|
||||
**/
|
||||
|
||||
class memberAdminView extends member {
|
||||
|
||||
var $group_list = NULL; ///< group list
|
||||
var $memberInfo = NULL; ///< selected member info
|
||||
/**
|
||||
* Group list
|
||||
*
|
||||
* @var array
|
||||
**/
|
||||
var $group_list = NULL;
|
||||
|
||||
/**
|
||||
* Selected member info
|
||||
*
|
||||
* @var array
|
||||
**/
|
||||
var $memberInfo = NULL;
|
||||
|
||||
/**
|
||||
* @brief initialization
|
||||
* initialization
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
@ -31,7 +45,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief display member list
|
||||
* display member list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminList() {
|
||||
$oMemberAdminModel = &getAdminModel('member');
|
||||
|
|
@ -81,7 +97,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief default configuration for member management
|
||||
* default configuration for member management
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminConfig() {
|
||||
global $lang; // retrieve configuration via module model instance
|
||||
|
|
@ -124,7 +142,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief display member information
|
||||
* display member information
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
@ -148,7 +168,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief display member insert form
|
||||
* display member insert form
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminInsert() {
|
||||
// retrieve extend form
|
||||
|
|
@ -189,6 +211,14 @@
|
|||
$this->setTemplateFile('insert_member');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get tags by the member info type
|
||||
*
|
||||
* @param object $memberInfo
|
||||
* @param boolean $isAdmin (true : admin, false : not admin)
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function _getMemberInputTag($memberInfo, $isAdmin = false){
|
||||
$oMemberModel = &getModel('member');
|
||||
$extend_form_list = $oMemberModel->getCombineJoinForm($memberInfo);
|
||||
|
|
@ -239,7 +269,7 @@
|
|||
}else{
|
||||
$inputTag = sprintf('<input type="hidden" name="__%s_exist" value="false" />', $formInfo->name);
|
||||
}
|
||||
$inputTag .= sprintf('<p class="a"><input type="file" name="%s" id="%s" value="" /> <span class="desc">%s : %dpx, %s : %dpx</span></p>'
|
||||
$inputTag .= sprintf('<p class="a"><input type="file" name="%s" id="%s" value="" /></p><p><span class="desc">%s : %dpx, %s : %dpx</span></p>'
|
||||
,$formInfo->name
|
||||
,$formInfo->name
|
||||
,$lang->{$formInfo->name.'_max_width'}
|
||||
|
|
@ -253,7 +283,7 @@
|
|||
,zdate($memberInfo['birthday'], 'Y-m-d', false)
|
||||
,$lang->cmd_delete);
|
||||
}elseif($formInfo->name == 'find_account_question'){
|
||||
$inputTag = '<select name="find_account_question" style="width:290px">%s</select><br />';
|
||||
$inputTag = '<select name="find_account_question" style="width:290px; display:block;">%s</select>';
|
||||
$optionTag = array();
|
||||
foreach($lang->find_account_question_items as $key=>$val){
|
||||
if($key == $memberInfo['find_account_question']) $selected = 'selected="selected"';
|
||||
|
|
@ -264,9 +294,9 @@
|
|||
,$val);
|
||||
}
|
||||
$inputTag = sprintf($inputTag, implode('', $optionTag));
|
||||
$inputTag .= '<input type="text" name="find_account_answer" value="'.$memberInfo['find_account_answer'].'" />';
|
||||
$inputTag .= '<input type="text" name="find_account_answer" title="'.Context::getLang('find_account_answer').'" value="'.$memberInfo['find_account_answer'].'" class="inputText long tall" />';
|
||||
}else{
|
||||
$inputTag = sprintf('<input type="text" name="%s" value="%s" />'
|
||||
$inputTag = sprintf('<input type="text" name="%s" value="%s" class="inputText long tall" />'
|
||||
,$formInfo->name
|
||||
,$memberInfo[$formInfo->name]);
|
||||
}
|
||||
|
|
@ -372,7 +402,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief display member delete form
|
||||
* display member delete form
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminDeleteForm() {
|
||||
if(!Context::get('member_srl')) return $this->dispMemberAdminList();
|
||||
|
|
@ -380,7 +412,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief display group list
|
||||
* display group list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminGroupList() {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
|
@ -401,7 +435,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Display a list of member join form
|
||||
* Display a list of member join form
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminJoinFormList() {
|
||||
// Create a member model object
|
||||
|
|
@ -416,7 +452,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Display an admin page for memebr join forms
|
||||
* Display an admin page for memebr join forms
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminInsertJoinForm() {
|
||||
// Get the value of join_form
|
||||
|
|
@ -437,7 +475,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Display denied ID list
|
||||
* Display denied ID list
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminDeniedIDList() {
|
||||
// Create a member model object
|
||||
|
|
@ -457,7 +497,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Update all the member groups
|
||||
* Update all the member groups
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminManageGroup() {
|
||||
// Get a list of the selected member
|
||||
|
|
@ -476,7 +518,9 @@ EOD;
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete all members
|
||||
* Delete members
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberAdminDeleteMembers() {
|
||||
// Get a list of the selected member
|
||||
|
|
|
|||
|
|
@ -2,14 +2,17 @@
|
|||
/**
|
||||
* @class memberAPI
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief API Processing of View Action in the member module
|
||||
* API Processing of View Action in the member module
|
||||
**/
|
||||
|
||||
class memberAPI extends member {
|
||||
|
||||
|
||||
/**
|
||||
* @brief Content List
|
||||
* Content List
|
||||
*
|
||||
* @param Object $oModule
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispSavedDocumentList(&$oModule) {
|
||||
$document_list = $this->arrangeContentList(Context::get('document_list'));
|
||||
|
|
@ -17,8 +20,13 @@
|
|||
$oModule->add('page_navigation',Context::get('page_navigation'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Arrange Contents
|
||||
*
|
||||
* @param array $content_list
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function arrangeContentList($content_list) {
|
||||
$output = array();
|
||||
if(count($content_list)) {
|
||||
|
|
@ -27,7 +35,13 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Arrange Contents
|
||||
*
|
||||
* @param array $content_list
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function arrangeContent($content) {
|
||||
$output = null;
|
||||
if($content){
|
||||
|
|
@ -35,6 +49,5 @@
|
|||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -2,14 +2,21 @@
|
|||
/**
|
||||
* @class member
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief high class of the member module
|
||||
* high class of the member module
|
||||
**/
|
||||
class member extends ModuleObject {
|
||||
|
||||
/**
|
||||
* Use sha1 encryption
|
||||
*
|
||||
* @var boolean
|
||||
**/
|
||||
var $useSha1 = false;
|
||||
|
||||
/**
|
||||
* @brief constructor
|
||||
* constructor
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function member() {
|
||||
if(!Context::isInstalled()) return;
|
||||
|
|
@ -21,6 +28,8 @@
|
|||
Context::addSSLAction('dispMemberModifyPassword');
|
||||
Context::addSSLAction('dispMemberSignUpForm');
|
||||
Context::addSSLAction('dispMemberModifyInfo');
|
||||
Context::addSSLAction('dispMemberLoginForm');
|
||||
Context::addSSLAction('dispMemberFindAccount');
|
||||
Context::addSSLAction('procMemberLogin');
|
||||
Context::addSSLAction('procMemberModifyPassword');
|
||||
Context::addSSLAction('procMemberInsert');
|
||||
|
|
@ -30,7 +39,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Implement if additional tasks are necessary when installing
|
||||
* Implement if additional tasks are necessary when installing
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// Register action forward (to use in administrator mode)
|
||||
|
|
@ -58,43 +69,46 @@
|
|||
|
||||
global $lang;
|
||||
$oMemberModel = &getModel('member');
|
||||
$identifier = 'email_address';
|
||||
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark');
|
||||
$mustRequireds = array('email_address', 'nick_name','password', 'find_account_question');
|
||||
$list_order = array();
|
||||
foreach($items as $key){
|
||||
unset($signupItem);
|
||||
$signupItem->isDefaultForm = true;
|
||||
$signupItem->name = $key;
|
||||
$signupItem->title = $key;
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->imageType = (strpos($key, 'image') !== false);
|
||||
$signupItem->required = $signupItem->mustRequired;
|
||||
$signupItem->isUse = $signupItem->mustRequired;
|
||||
$signupItem->isIdentifier = ($key == $identifier);
|
||||
if ($signupItem->imageType){
|
||||
$signupItem->max_width = $config->{$key.'_max_width'};
|
||||
$signupItem->max_height = $config->{$key.'_max_height'};
|
||||
// Create a member controller object
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberAdminController = &getAdminController('member');
|
||||
|
||||
if(!$args->signupForm || !is_array($args->signupForm))
|
||||
{
|
||||
$identifier = 'email_address';
|
||||
$items = array('user_id', 'password', 'user_name', 'nick_name', 'email_address', 'find_account_question', 'homepage', 'blog', 'birthday', 'signature', 'profile_image', 'image_name', 'image_mark');
|
||||
$mustRequireds = array('email_address', 'nick_name','password', 'find_account_question');
|
||||
$list_order = array();
|
||||
foreach($items as $key){
|
||||
unset($signupItem);
|
||||
$signupItem->isDefaultForm = true;
|
||||
$signupItem->name = $key;
|
||||
$signupItem->title = $key;
|
||||
$signupItem->mustRequired = in_array($key, $mustRequireds);
|
||||
$signupItem->imageType = (strpos($key, 'image') !== false);
|
||||
$signupItem->required = $signupItem->mustRequired;
|
||||
$signupItem->isUse = $signupItem->mustRequired;
|
||||
$signupItem->isIdentifier = ($key == $identifier);
|
||||
if ($signupItem->imageType){
|
||||
$signupItem->max_width = $config->{$key.'_max_width'};
|
||||
$signupItem->max_height = $config->{$key.'_max_height'};
|
||||
}
|
||||
if ($signupItem->isIdentifier)
|
||||
array_unshift($list_order, $signupItem);
|
||||
else
|
||||
$list_order[] = $signupItem;
|
||||
}
|
||||
if ($signupItem->isIdentifier)
|
||||
array_unshift($list_order, $signupItem);
|
||||
else
|
||||
$list_order[] = $signupItem;
|
||||
$args->signupForm = $list_order;
|
||||
$args->identifier = $identifier;
|
||||
|
||||
$oModuleController->insertModuleConfig('member',$args);
|
||||
|
||||
// Create Ruleset File
|
||||
FileHandler::makeDir('./files/ruleset');
|
||||
$oMemberAdminController->_createSignupRuleset($args->signupForm);
|
||||
$oMemberAdminController->_createLoginRuleset($args->identifier);
|
||||
$oMemberAdminController->_createFindAccountByQuestion($args->identifier);
|
||||
}
|
||||
$args->signupForm = $list_order;
|
||||
$args->identifier = $identifier;
|
||||
|
||||
$oModuleController->insertModuleConfig('member',$args);
|
||||
|
||||
// Create a member controller object
|
||||
$oMemberController = &getController('member');
|
||||
$oMemberAdminController = &getAdminController('member');
|
||||
|
||||
// Create Ruleset File
|
||||
FileHandler::makeDir('./files/ruleset');
|
||||
$oMemberAdminController->_createSignupRuleset($args->signupForm);
|
||||
$oMemberAdminController->_createLoginRuleset($args->identifier);
|
||||
$oMemberAdminController->_createFindAccountByQuestion($args->identifier);
|
||||
|
||||
$groups = $oMemberModel->getGroups();
|
||||
if(!count($groups)) {
|
||||
|
|
@ -150,7 +164,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief a method to check if successfully installed
|
||||
* a method to check if successfully installed
|
||||
*
|
||||
* @return boolean
|
||||
**/
|
||||
function checkUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
|
@ -182,11 +198,14 @@
|
|||
if(!$oDB->isColumnExists("member", "list_order")) return true;
|
||||
if(!$oDB->isIndexExists("member","idx_list_order")) return true;
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
// check signup form ordering info
|
||||
if (!$config->signupForm) return true;
|
||||
|
||||
// check agreement field exist
|
||||
if ($config->agreement) return true;
|
||||
|
||||
if (!is_readable('./files/ruleset/insertMember.xml')) return true;
|
||||
if (!is_readable('./files/ruleset/login.xml')) return true;
|
||||
if (!is_readable('./files/ruleset/find_member_account_by_question.xml')) return true;
|
||||
|
|
@ -195,7 +214,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Execute update
|
||||
* Execute update
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
$oDB = &DB::getInstance();
|
||||
|
|
@ -257,13 +278,24 @@
|
|||
$oDB->addIndex("member","idx_list_order", array("list_order"));
|
||||
}
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
$oModuleController = &getController('module');
|
||||
|
||||
// check agreement value exist
|
||||
if($config->agreement)
|
||||
{
|
||||
$agreement_file = _XE_PATH_.'files/member_extra_info/agreement.txt';
|
||||
$output = FileHandler::writeFile($agreement_file, $config->agreement);
|
||||
|
||||
unset($config->agreement);
|
||||
$output = $oModuleController->updateModuleConfig('member', $config);
|
||||
}
|
||||
|
||||
// check signup form ordering info
|
||||
if (!$config->signupForm || !is_array($config->signupForm)){
|
||||
global $lang;
|
||||
$oModuleController = &getController('module');
|
||||
$oMemberModel = &getModel('member');
|
||||
// Get join form list which is additionally set
|
||||
$extendItems = $oMemberModel->getJoinFormList();
|
||||
|
||||
|
|
@ -312,9 +344,9 @@
|
|||
}
|
||||
$config->signupForm = $list_order;
|
||||
$config->identifier = $identifier;
|
||||
unset($config->agreement);
|
||||
$output = $oModuleController->updateModuleConfig('member', $config);
|
||||
}
|
||||
|
||||
|
||||
FileHandler::makeDir('./files/ruleset');
|
||||
$oMemberAdminController = &getAdminController('member');
|
||||
|
|
@ -329,7 +361,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Re-generate the cache file
|
||||
* Re-generate the cache file
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function recompileCache() {
|
||||
set_include_path(_XE_PATH_."modules/member/php-openid-1.2.3");
|
||||
|
|
@ -337,5 +371,70 @@
|
|||
$store = new Auth_OpenID_XEStore();
|
||||
$store->reset();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Record login error and return the error, about IPaddress.
|
||||
**/
|
||||
function recordLoginError($error = 0, $message = 'success')
|
||||
{
|
||||
if($error == 0) return new Object($error, $message);
|
||||
|
||||
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
$output = executeQuery('member.getLoginCountByIp', $args);
|
||||
if($output->data && $output->data->count)
|
||||
{
|
||||
// Create a member model object
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$last_update = strtotime($output->data->last_update);
|
||||
$term = intval(time()-$last_update);
|
||||
//update, if IP address access in a short time, update count. If not, make count 1.
|
||||
if($term < $config->max_error_count_time)
|
||||
{
|
||||
$args->count = $output->data->count + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$args->count = 1;
|
||||
}
|
||||
unset($oMemberModel);
|
||||
unset($config);
|
||||
$output = executeQuery('member.updateLoginCountByIp', $args);
|
||||
}
|
||||
else
|
||||
{
|
||||
//insert
|
||||
$args->count = 1;
|
||||
$output = executeQuery('member.insertLoginCountByIp', $args);
|
||||
}
|
||||
return new Object($error, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Record login error and return the error, about MemberSrl.
|
||||
**/
|
||||
function recordMemberLoginError($error = 0, $message = 'success', $args = NULL)
|
||||
{
|
||||
if($error == 0 || !$args->member_srl) return new Object($error, $message);
|
||||
|
||||
$output = executeQuery('member.getLoginCountHistoryByMemberSrl', $args);
|
||||
if($output->data && $output->data->content)
|
||||
{
|
||||
//update
|
||||
$content = unserialize($output->data->content);
|
||||
$content[] = array($_SERVER['REMOTE_ADDR'],Context::getLang($message),time());
|
||||
$args->content = serialize($content);
|
||||
$output = executeQuery('member.updateLoginCountHistoryByMemberSrl', $args);
|
||||
}
|
||||
else
|
||||
{
|
||||
//insert
|
||||
$content[0] = array($_SERVER['REMOTE_ADDR'],Context::getLang($message),time());
|
||||
$args->content = serialize($content);
|
||||
$output = executeQuery('member.insertLoginCountHistoryByMemberSrl', $args);
|
||||
}
|
||||
return $this->recordLoginError($error, $message);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -2,20 +2,34 @@
|
|||
/**
|
||||
* @class memberController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief Controller class of member module
|
||||
* Controller class of member module
|
||||
**/
|
||||
|
||||
class memberController extends member {
|
||||
|
||||
/**
|
||||
* Info of selected member
|
||||
*
|
||||
* @var object
|
||||
**/
|
||||
var $memberInfo;
|
||||
|
||||
/**
|
||||
* @brief Initialization
|
||||
* Initialization
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Log-in by checking user_id and password
|
||||
* Log-in by checking user_id and password
|
||||
*
|
||||
* @param string $user_id
|
||||
* @param string $password
|
||||
* @param string $keep_signed
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberLogin($user_id = null, $password = null, $keep_signed = null) {
|
||||
if(!$user_id && !$password && Context::getRequestMethod() == 'GET')
|
||||
|
|
@ -55,23 +69,25 @@
|
|||
}
|
||||
}
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
|
||||
if(!$config->after_login_url) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
} else {
|
||||
$returnUrl = $config->after_login_url;
|
||||
}
|
||||
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
return;
|
||||
if(!$config->after_login_url)
|
||||
{
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
}
|
||||
|
||||
return $output;
|
||||
else
|
||||
{
|
||||
$returnUrl = $config->after_login_url;
|
||||
}
|
||||
return $this->setRedirectUrl($returnUrl, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Login by openid
|
||||
* Login by openid
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @param string $validator
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberOpenIDLogin($validator = "procMemberOpenIDValidate") {
|
||||
$oModuleModel = &getModel('module');
|
||||
|
|
@ -109,10 +125,19 @@
|
|||
$ApprovedURL = Context::getRequestUri(RELEASE_SSL) . "?module=member&act=" . $validator. "&goto=" . $goto;
|
||||
$redirect_url = $auth_request->redirectURL($trust_root, $ApprovedURL);
|
||||
$this->add("redirect_url", $redirect_url);
|
||||
if (Context::getRequestMethod() == 'POST')
|
||||
header("location:" . $redirect_url);
|
||||
|
||||
$this->setRedirectUrl($redirect_url);
|
||||
}
|
||||
|
||||
/**
|
||||
* Legacy open id
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @param string $openid_identity
|
||||
*
|
||||
* @return array
|
||||
**/
|
||||
function getLegacyUserIDsFromOpenID($openid_identity) {
|
||||
// Issue 17515512: workaround
|
||||
$result = array();
|
||||
|
|
@ -155,7 +180,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief openid authentication check
|
||||
* openid authentication check
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberOpenIDValidate() {
|
||||
set_include_path(_XE_PATH_."modules/member/php-openid-1.2.3");
|
||||
|
|
@ -256,14 +283,18 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Request member join by openID
|
||||
* Request member join by openID
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberAddOpenIDToMember() {
|
||||
return $this->procMemberOpenIDLogin("procMemberValidateAddOpenIDToMember");
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Validate openID processing
|
||||
* Validate openID processing
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberValidateAddOpenIDToMember() {
|
||||
set_include_path(_XE_PATH_."modules/member/php-openid-1.2.3");
|
||||
|
|
@ -315,7 +346,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Disconnect OpenID
|
||||
* Disconnect OpenID
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function procMemberDeleteOpenIDFromMember() {
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
|
@ -347,7 +380,9 @@
|
|||
|
||||
|
||||
/**
|
||||
* @brief Log-out
|
||||
* Log-out
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberLogout() {
|
||||
// Call a trigger before log-out (before)
|
||||
|
|
@ -371,7 +406,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scrap
|
||||
* Scrap document
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberScrapDocument() {
|
||||
// Check login information
|
||||
|
|
@ -404,7 +441,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete a scrap
|
||||
* Delete a scrap
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberDeleteScrap() {
|
||||
// Check login information
|
||||
|
|
@ -420,15 +459,18 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Save posts
|
||||
* @Deplicated - instead Document Controller - procDocumentTempSave method use
|
||||
* Save posts
|
||||
* @deprecated - instead Document Controller - procDocumentTempSave method use
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberSaveDocument() {
|
||||
return new Object(0, 'Deplicated method');
|
||||
return new Object(0, 'Deprecated method');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the post
|
||||
* Delete the post
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberDeleteSavedDocument() {
|
||||
// Check login information
|
||||
|
|
@ -443,7 +485,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Check values when member joining
|
||||
* Check values when member joining
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberCheckValue() {
|
||||
$name = Context::get('name');
|
||||
|
|
@ -478,7 +522,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Join Membership
|
||||
* Join Membership
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberInsert() {
|
||||
if (Context::getRequestMethod () == "GET") return new Object (-1, "msg_invalid_request");
|
||||
|
|
@ -497,7 +543,7 @@
|
|||
$getVars = array();
|
||||
if ($config->signupForm){
|
||||
foreach($config->signupForm as $formInfo){
|
||||
if($formInfo->isDefaultForm && $formInfo->isUse && ($formInfo->required || $formInfo->mustRequired)){
|
||||
if($formInfo->isDefaultForm && ($formInfo->isUse || $formInfo->required || $formInfo->mustRequired)){
|
||||
$getVars[] = $formInfo->name;
|
||||
}
|
||||
}
|
||||
|
|
@ -565,10 +611,18 @@
|
|||
|
||||
}
|
||||
// Log-in
|
||||
if ($config->enable_confirm != 'Y') $this->doLogin($args->user_id);
|
||||
//get redirect url from cookie and invalidate cookie
|
||||
$config->redirect_url = $_COOKIE["XE_REDIRECT_URL"];
|
||||
setcookie("XE_REDIRECT_URL", '', 1);
|
||||
if ($config->enable_confirm != 'Y')
|
||||
{
|
||||
if($config->identifier == 'email_address')
|
||||
{
|
||||
$this->doLogin($args->email_address);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->doLogin($args->user_id);
|
||||
}
|
||||
}
|
||||
|
||||
// Results
|
||||
$this->add('member_srl', $args->member_srl);
|
||||
if($config->redirect_url) $this->add('redirect_url', $config->redirect_url);
|
||||
|
|
@ -581,15 +635,30 @@
|
|||
$trigger_output = ModuleHandler::triggerCall('member.procMemberInsert', 'after', $config);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
||||
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', '');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
if($config->redirect_url)
|
||||
{
|
||||
$returnUrl = $config->redirect_url;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Context::get('success_return_url'))
|
||||
{
|
||||
$returnUrl = Context::get('success_return_url');
|
||||
}
|
||||
else if($_COOKIE['XE_REDIRECT_URL'])
|
||||
{
|
||||
$returnUrl = $_COOKIE['XE_REDIRECT_URL'];
|
||||
setcookie("XE_REDIRECT_URL", '', 1);
|
||||
}
|
||||
}
|
||||
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Edit member profile
|
||||
* Edit member profile
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberModifyInfo() {
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
|
@ -672,15 +741,15 @@
|
|||
// Return result
|
||||
$this->add('member_srl', $args->member_srl);
|
||||
$this->setMessage('success_updated');
|
||||
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', 'dispMemberInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Change the user password
|
||||
* Change the user password
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberModifyPassword() {
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
|
@ -709,15 +778,15 @@
|
|||
|
||||
$this->add('member_srl', $args->member_srl);
|
||||
$this->setMessage('success_updated');
|
||||
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', 'dispMemberInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Membership withdrawal
|
||||
* Membership withdrawal
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberLeave() {
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
|
@ -744,15 +813,15 @@
|
|||
$this->destroySessionInfo();
|
||||
// Return success message
|
||||
$this->setMessage('success_leaved');
|
||||
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', '');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief OpenID Withdrawal
|
||||
* OpenID Withdrawal
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberOpenIDLeave() {
|
||||
// Return an error if in the non-login state
|
||||
|
|
@ -772,7 +841,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add a profile image
|
||||
* Add a profile image
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberInsertProfileImage() {
|
||||
// Check if the file is successfully uploaded
|
||||
|
|
@ -792,13 +863,19 @@
|
|||
$this->insertProfileImage($member_srl, $file['tmp_name']);
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
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', 'dispMemberModifyInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a profile image
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param object $target_file
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function insertProfileImage($member_srl, $target_file) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
|
|
@ -823,7 +900,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add an image name
|
||||
* Add an image name
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberInsertImageName() {
|
||||
// Check if the file is successfully uploaded
|
||||
|
|
@ -843,13 +922,19 @@
|
|||
$this->insertImageName($member_srl, $file['tmp_name']);
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
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', 'dispMemberModifyInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a image name
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param object $target_file
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function insertImageName($member_srl, $target_file) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
|
|
@ -871,7 +956,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete profile image
|
||||
* Delete profile image
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberDeleteProfileImage() {
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
|
@ -894,7 +981,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete Image name
|
||||
* Delete Image name
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function procMemberDeleteImageName() {
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
|
@ -917,7 +1006,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add an image to mark
|
||||
* Add an image to mark
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberInsertImageMark() {
|
||||
// Check if the file is successfully uploaded
|
||||
|
|
@ -937,13 +1028,19 @@
|
|||
$this->insertImageMark($member_srl, $file['tmp_name']);
|
||||
// Page refresh
|
||||
//$this->setRefreshPage();
|
||||
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', 'dispMemberModifyInfo');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispMemberModifyInfo');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert a image mark
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param object $target_file
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function insertImageMark($member_srl, $target_file) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('member');
|
||||
|
|
@ -962,11 +1059,12 @@
|
|||
|
||||
if($width > $max_width || $height > $max_height || $type!=1) FileHandler::createImageFile($target_file, $target_filename, $max_width, $max_height, 'gif');
|
||||
else @copy($target_file, $target_filename);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete Image Mark
|
||||
* Delete Image Mark
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberDeleteImageMark() {
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
|
@ -982,7 +1080,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Find ID/Password
|
||||
* Find ID/Password
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberFindAccount() {
|
||||
$email_address = Context::get('email_address');
|
||||
|
|
@ -1056,12 +1156,18 @@
|
|||
$oMail->send();
|
||||
// Return message
|
||||
$msg = sprintf(Context::getLang('msg_auth_mail_sent'), $member_info->email_address);
|
||||
return new Object(0,$msg);
|
||||
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 new Object(0,$msg);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Generate a temp password by answering to the pre-determined question
|
||||
* Generate a temp password by answering to the pre-determined question
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberFindAccountByQuestion() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
@ -1105,16 +1211,15 @@
|
|||
|
||||
$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;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
$this->setRedirectUrl($returnUrl.'&user_id='.$user_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Execute finding ID/Passoword
|
||||
* Execute finding ID/Passoword
|
||||
* When clicking the link in the verification email, a method is called to change the old password and to authenticate it
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberAuthAccount() {
|
||||
// Test user_id and authkey
|
||||
|
|
@ -1148,8 +1253,10 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Execute finding ID/Passoword
|
||||
* Execute finding ID/Passoword
|
||||
* When clicking the link in the verification email, a method is called to change the old password and to authenticate it
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function procMemberUpdateAuthMail() {
|
||||
$member_srl = Context::get('member_srl');
|
||||
|
|
@ -1209,7 +1316,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Request to re-send the authentication mail
|
||||
* Request to re-send the authentication mail
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberResendAuthMail() {
|
||||
// Get an email_address
|
||||
|
|
@ -1264,15 +1373,15 @@
|
|||
|
||||
$msg = sprintf(Context::getLang('msg_confirm_mail_sent'), $args->email_address);
|
||||
$this->setMessage($msg);
|
||||
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', '');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Join a virtual site
|
||||
* Join a virtual site
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberSiteSignUp() {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
|
|
@ -1288,7 +1397,9 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Leave the virtual site
|
||||
* Leave the virtual site
|
||||
*
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function procMemberSiteLeave() {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
|
|
@ -1303,7 +1414,11 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Save the member configurations
|
||||
* Save the member configurations
|
||||
*
|
||||
* @param object $args
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function setMemberConfig($args) {
|
||||
if(!$args->skin) $args->skin = "default";
|
||||
|
|
@ -1333,7 +1448,12 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Save the signature as a file
|
||||
* Save the signature as a file
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param string $signature
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function putSignature($member_srl, $signature) {
|
||||
$signature = trim(removeHackTag($signature));
|
||||
|
|
@ -1351,7 +1471,11 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the signature file
|
||||
* Delete the signature file
|
||||
*
|
||||
* @param string $member_srl
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function delSignature($member_srl) {
|
||||
$filename = sprintf('files/member_extra_info/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl);
|
||||
|
|
@ -1359,7 +1483,13 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add group_srl to member_srl
|
||||
* Add group_srl to member_srl
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param int $group_srl
|
||||
* @param int $site_srl
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function addMemberToGroup($member_srl,$group_srl,$site_srl=0) {
|
||||
$args->member_srl = $member_srl;
|
||||
|
|
@ -1374,12 +1504,22 @@
|
|||
$output = executeQuery('member.addMemberToGroup',$args);
|
||||
$output2 = ModuleHandler::triggerCall('member.addMemberToGroup', 'after', $args);
|
||||
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport()){
|
||||
$cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Change a group of certain members
|
||||
* Change a group of certain members
|
||||
* Available only when a member has a single group
|
||||
*
|
||||
* @param object $args
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function replaceMemberGroup($args) {
|
||||
$obj->site_srl = $args->site_srl;
|
||||
|
|
@ -1404,12 +1544,21 @@
|
|||
$output = executeQuery('member.addMemberToGroup', $obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport()){
|
||||
$cache_key = 'object_member_groups:'.$member_srl.'_'.$site_srl;
|
||||
$oCacheHandler->delete($cache_key);
|
||||
}
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Auto-login
|
||||
* Auto-login
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function doAutologin() {
|
||||
// Get a key value of auto log-in
|
||||
|
|
@ -1435,7 +1584,6 @@
|
|||
|
||||
$do_auto_login = false;
|
||||
|
||||
|
||||
// Compare key values based on the information
|
||||
$key = md5($user_id . $password . $_SERVER['HTTP_USER_AGENT']);
|
||||
|
||||
|
|
@ -1479,46 +1627,109 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Log-in
|
||||
* Log-in
|
||||
*
|
||||
* @param string $user_id
|
||||
* @param string $password
|
||||
* @param boolean $keep_signed
|
||||
*
|
||||
* @return Object
|
||||
**/
|
||||
function doLogin($user_id, $password = '', $keep_signed = false) {
|
||||
$user_id = strtolower($user_id);
|
||||
// Call a trigger before log-in (before)
|
||||
$trigger_obj->user_id = $user_id;
|
||||
$trigger_obj->password = $password;
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'before', $trigger_obj);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
// Create a member model object
|
||||
$oMemberModel = &getModel('member');
|
||||
function doLogin($user_id, $password = '', $keep_signed = false) {
|
||||
$user_id = strtolower($user_id);
|
||||
if(!$user_id) return new Object(-1, 'null_user_id');
|
||||
// Call a trigger before log-in (before)
|
||||
$trigger_obj->user_id = $user_id;
|
||||
$trigger_obj->password = $password;
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'before', $trigger_obj);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
// Create a member model object
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
// check identifier
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
if ($config->identifier == 'email_address'){
|
||||
// Get user_id information
|
||||
$this->memberInfo = $oMemberModel->getMemberInfoByEmailAddress($user_id);
|
||||
// Set an invalid user if no value returned
|
||||
if(!$user_id || strtolower($this->memberInfo->email_address) != strtolower($user_id)) return new Object(-1, 'invalid_email_address');
|
||||
// check IP access count.
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
|
||||
$output = executeQuery('member.getLoginCountByIp', $args);
|
||||
$count = (int)$output->data->count;
|
||||
if($config->max_error_count < $count)
|
||||
{
|
||||
$last_update = strtotime($output->data->last_update);
|
||||
$term = intval(time()-$last_update);
|
||||
if($term < $config->max_error_count_time)
|
||||
{
|
||||
$term = $config->max_error_count_time - $term;
|
||||
if($term < 60) $term = intval($term).Context::getLang('unit_sec');
|
||||
elseif(60 <= $term && $term < 3600) $term = intval($term/60).Context::getLang('unit_min');
|
||||
elseif(3600 <= $term && $term < 86400) $term = intval($term/3600).Context::getLang('unit_hour');
|
||||
else $term = intval($term/86400).Context::getLang('unit_day');
|
||||
return new Object(-1, sprintf(Context::getLang('excess_ip_access_count'),$term));
|
||||
}
|
||||
else
|
||||
{
|
||||
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
|
||||
$output = executeQuery('member.deleteLoginCountByIp', $args);
|
||||
}
|
||||
}
|
||||
|
||||
}else{
|
||||
// Get user_id information
|
||||
$this->memberInfo = $oMemberModel->getMemberInfoByUserID($user_id);
|
||||
// Set an invalid user if no value returned
|
||||
if(!$user_id || strtolower($this->memberInfo->user_id) != strtolower($user_id)) return new Object(-1, 'invalid_user_id');
|
||||
}
|
||||
// Password Check
|
||||
if($password && !$oMemberModel->isValidPassword($this->memberInfo->password, $password, $this->memberInfo->member_srl)) return new Object(-1, 'invalid_password');
|
||||
// If denied == 'Y', notify
|
||||
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');
|
||||
return new Object(-1,'msg_user_denied');
|
||||
}
|
||||
// Notify if denied_date is less than the current time
|
||||
if($this->memberInfo->limit_date && substr($this->memberInfo->limit_date,0,8) >= date("Ymd")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($this->memberInfo->limit_date,"Y-m-d")));
|
||||
// check identifier
|
||||
if ($config->identifier == 'email_address'){
|
||||
// Get user_id information
|
||||
$this->memberInfo = $oMemberModel->getMemberInfoByEmailAddress($user_id);
|
||||
// Set an invalid user if no value returned
|
||||
if(!$user_id || strtolower($this->memberInfo->email_address) != strtolower($user_id)) return $this->recordLoginError(-1, 'invalid_email_address');
|
||||
|
||||
}else{
|
||||
// Get user_id information
|
||||
$this->memberInfo = $oMemberModel->getMemberInfoByUserID($user_id);
|
||||
// Set an invalid user if no value returned
|
||||
if(!$user_id || strtolower($this->memberInfo->user_id) != strtolower($user_id)) return $this->recordLoginError(-1, 'invalid_user_id');
|
||||
}
|
||||
// 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') {
|
||||
$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');
|
||||
return new Object(-1,'msg_user_denied');
|
||||
}
|
||||
// Notify if denied_date is less than the current time
|
||||
if($this->memberInfo->limit_date && substr($this->memberInfo->limit_date,0,8) >= date("Ymd")) return new Object(-1,sprintf(Context::getLang('msg_user_limited'),zdate($this->memberInfo->limit_date,"Y-m-d")));
|
||||
// Update the latest login time
|
||||
$args->member_srl = $this->memberInfo->member_srl;
|
||||
$output = executeQuery('member.updateLastLogin', $args);
|
||||
// check if there is login fail records.
|
||||
$output = executeQuery('member.getLoginCountHistoryByMemberSrl', $args);
|
||||
if($output->data && $output->data->content)
|
||||
{
|
||||
$title = Context::getLang('login_fail_report');
|
||||
$message = '<ul>';
|
||||
$content = unserialize($output->data->content);
|
||||
foreach($content as $val)
|
||||
{
|
||||
$message .= '<li>'.date('Y-m-d H:i:s P',$val[2]).'<br /> Access IP: '.$val[0].'<br /> Message: '.$val[1].'</li>';
|
||||
}
|
||||
$message .= '</ul>';
|
||||
$content = sprintf(Context::getLang('login_fail_report_contents'),$message,date('Y-m-d H:i:s P'));
|
||||
|
||||
//send message
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true);
|
||||
|
||||
if($this->memberInfo->email_address && $this->memberInfo->allow_mailing == 'Y')
|
||||
{
|
||||
$view_url = Context::getRequestUri();
|
||||
$title = sprintf("%s @ %s",$title,$view_url);
|
||||
$content = sprintf("%s<hr /><p>From: <a href=\"%s\" target=\"_blank\">%s</a><br />To: %s(%s)</p>",$content, $view_url, $view_url, $this->memberInfo->nick_name, $this->memberInfo->email_id);
|
||||
$oMail = new Mail();
|
||||
$oMail->setTitle($title);
|
||||
$oMail->setContent($content);
|
||||
$oMail->setSender($this->memberInfo->email_id.'('.$this->memberInfo->nick_name.')', $this->memberInfo->email_address);
|
||||
$oMail->setReceiptor($this->memberInfo->email_id.'('.$this->memberInfo->nick_name.')', $this->memberInfo->email_address);
|
||||
$oMail->send();
|
||||
}
|
||||
$output = executeQuery('member.deleteLoginCountHistoryByMemberSrl', $args);
|
||||
}
|
||||
// Call a trigger after successfully log-in (after)
|
||||
$trigger_output = ModuleHandler::triggerCall('member.doLogin', 'after', $this->memberInfo);
|
||||
if(!$trigger_output->toBool()) return $trigger_output;
|
||||
|
|
@ -1529,7 +1740,7 @@
|
|||
$autologin_args->member_srl = $this->memberInfo->member_srl;
|
||||
executeQuery('member.deleteAutologin', $autologin_args);
|
||||
$autologin_output = executeQuery('member.insertAutologin', $autologin_args);
|
||||
if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, time()+60*60*24*365, '/');
|
||||
if($autologin_output->toBool()) setCookie('xeak',$autologin_args->autologin_key, time()+31536000, '/');
|
||||
}
|
||||
if($this->memberInfo->is_admin == 'Y') {
|
||||
$oMemberAdminModel = &getAdminModel('member');
|
||||
|
|
@ -1544,7 +1755,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Update or create session information
|
||||
* Update or create session information
|
||||
**/
|
||||
function setSessionInfo() {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
|
@ -1584,10 +1795,6 @@
|
|||
}
|
||||
*/
|
||||
|
||||
// XSS defence
|
||||
$oSecurity = new Security($this->memberInfo);
|
||||
$oSecurity->encodeHTML('user_name', 'nick_name', 'address.');
|
||||
|
||||
// Information stored in the session login user
|
||||
Context::set('is_logged', true);
|
||||
Context::set('logged_info', $this->memberInfo);
|
||||
|
|
@ -1600,7 +1807,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Logged method for providing a personalized menu
|
||||
* Logged method for providing a personalized menu
|
||||
* Login information is used in the output widget, or personalized page
|
||||
**/
|
||||
function addMemberMenu($act, $str) {
|
||||
|
|
@ -1612,7 +1819,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Nickname and click Log In to add a pop-up menu that appears when the method
|
||||
* Nickname and click Log In to add a pop-up menu that appears when the method
|
||||
**/
|
||||
function addMemberPopupMenu($url, $str, $icon = '', $target = 'self') {
|
||||
$member_popup_menu_list = Context::get('member_popup_menu_list');
|
||||
|
|
@ -1628,7 +1835,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Add users to the member table
|
||||
* Add users to the member table
|
||||
**/
|
||||
function insertMember(&$args, $password_is_hashed = false) {
|
||||
// Call a trigger (before)
|
||||
|
|
@ -1797,7 +2004,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Modify member information
|
||||
* Modify member information
|
||||
**/
|
||||
function updateMember($args) {
|
||||
// Call a trigger (before)
|
||||
|
|
@ -1821,7 +2028,7 @@
|
|||
unset($args->denied);
|
||||
}
|
||||
|
||||
// check mamber identifier form
|
||||
// check member identifier form
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
|
||||
|
|
@ -1834,7 +2041,7 @@
|
|||
$args->email_address = $orgMemberInfo->email_address;
|
||||
}else{
|
||||
$member_srl = $oMemberModel->getMemberSrlByUserID($args->user_id);
|
||||
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_email_address');
|
||||
if($member_srl&&$args->member_srl!=$member_srl) return new Object(-1,'msg_exists_user_id');
|
||||
|
||||
$args->user_id = $orgMemberInfo->user_id;
|
||||
}
|
||||
|
|
@ -1913,7 +2120,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Modify member password
|
||||
* Modify member password
|
||||
**/
|
||||
function updateMemberPassword($args) {
|
||||
$output = executeQuery('member.updateChangePasswordDate', $args);
|
||||
|
|
@ -1944,7 +2151,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Delete User
|
||||
* Delete User
|
||||
**/
|
||||
function deleteMember($member_srl) {
|
||||
// Call a trigger (before)
|
||||
|
|
@ -2012,7 +2219,7 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Destroy all session information
|
||||
* Destroy all session information
|
||||
**/
|
||||
function destroySessionInfo() {
|
||||
if(!$_SESSION || !is_array($_SESSION)) return;
|
||||
|
|
@ -2112,11 +2319,8 @@
|
|||
$msg = sprintf(Context::getLang('msg_confirm_mail_sent'), $newEmail);
|
||||
$this->setMessage($msg);
|
||||
|
||||
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', '');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', '');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
function procMemberAuthEmailAddress(){
|
||||
|
|
|
|||
|
|
@ -31,9 +31,13 @@ class memberMobile extends member
|
|||
return;
|
||||
}
|
||||
|
||||
// Set a template file
|
||||
// get member module configuration.
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('identifier', $config->identifier);
|
||||
|
||||
Context::set('referer_url', $_SERVER['HTTP_REFERER']);
|
||||
// Set a template file
|
||||
Context::set('referer_url', htmlspecialchars($_SERVER['HTTP_REFERER']));
|
||||
$this->setTemplateFile('login_form');
|
||||
}
|
||||
|
||||
|
|
@ -95,6 +99,39 @@ class memberMobile extends member
|
|||
$this->setTemplateFile('member_info_mobile');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Find user ID and password
|
||||
**/
|
||||
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');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Generate a temporary password
|
||||
**/
|
||||
function dispMemberGetTempPassword() {
|
||||
if(Context::get('is_logged')) return $this->stop('already_logged');
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('identifier', $config->identifier);
|
||||
|
||||
$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 Edit member profile
|
||||
**/
|
||||
|
|
@ -149,6 +186,9 @@ class memberMobile extends member
|
|||
// A message appears if the user is not logged-in
|
||||
if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged');
|
||||
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('identifier', $config->identifier);
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
|
|
|
|||
|
|
@ -51,6 +51,9 @@
|
|||
|
||||
if (!$config->identifier) $config->identifier = 'user_id';
|
||||
|
||||
if (!$config->max_error_count) $config->max_error_count = 10;
|
||||
if (!$config->max_error_count_time) $config->max_error_count_time = 300;
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +86,8 @@
|
|||
$oMemberController->addMemberPopupMenu($url,'cmd_view_member_info',$icon_path,'self');
|
||||
}
|
||||
// When click other's nickname
|
||||
if($member_srl != $logged_info->member_srl) {
|
||||
if($member_srl != $logged_info->member_srl && $logged_info->member_srl)
|
||||
{
|
||||
// Send an email
|
||||
if($member_info->email_address) {
|
||||
$url = 'mailto:'.htmlspecialchars($member_info->email_address);
|
||||
|
|
@ -197,31 +201,33 @@
|
|||
/**
|
||||
* @brief Return member information with member_srl
|
||||
**/
|
||||
function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = array()) {
|
||||
if(!$member_srl) return;
|
||||
function getMemberInfoByMemberSrl($member_srl, $site_srl = 0, $columnList = array()) {
|
||||
if(!$member_srl) return;
|
||||
|
||||
//columnList size zero... get full member info
|
||||
if(!$GLOBALS['__member_info__'][$member_srl] || count($columnList) == 0) {
|
||||
//if(true) {
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport()){
|
||||
if(!$GLOBALS['__member_info__'][$member_srl] || count($columnList) == 0)
|
||||
{
|
||||
$oCacheHandler = &CacheHandler::getInstance('object');
|
||||
if($oCacheHandler->isSupport())
|
||||
{
|
||||
$cache_key = 'object:'.$member_srl;
|
||||
$output = $oCacheHandler->get($cache_key);
|
||||
$GLOBALS['__member_info__'][$member_srl] = $oCacheHandler->get($cache_key);
|
||||
}
|
||||
if(!$output){
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', $args, $columnList);
|
||||
if(!$output->data) return;
|
||||
//insert in cache
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key,$output);
|
||||
}
|
||||
|
||||
$this->arrangeMemberInfo($output->data, $site_srl);
|
||||
|
||||
}
|
||||
|
||||
return $GLOBALS['__member_info__'][$member_srl];
|
||||
}
|
||||
if(!$GLOBALS['__member_info__'][$member_srl])
|
||||
{
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('member.getMemberInfoByMemberSrl', $args, $columnList);
|
||||
if(!$output->data) return;
|
||||
$this->arrangeMemberInfo($output->data, $site_srl);
|
||||
|
||||
//insert in cache
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key, $GLOBALS['__member_info__'][$member_srl]);
|
||||
}
|
||||
}
|
||||
|
||||
return $GLOBALS['__member_info__'][$member_srl];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Add member info from extra_vars and other information
|
||||
|
|
|
|||
|
|
@ -65,6 +65,13 @@
|
|||
unset($member_info->email_id);
|
||||
unset($member_info->email_host);
|
||||
|
||||
if($logged_info->is_admin != 'Y' && ($member_info->member_srl != $logged_info->member_srl))
|
||||
{
|
||||
$start = strpos($member_info->email_address, '@')+1;
|
||||
$replaceStr = str_repeat('*', (strlen($member_info->email_address) - $start));
|
||||
$member_info->email_address = substr_replace($member_info->email_address, $replaceStr, $start);
|
||||
}
|
||||
|
||||
if(!$member_info->member_srl) return $this->dispMemberSignUpForm();
|
||||
|
||||
Context::set('memberInfo', get_object_vars($member_info));
|
||||
|
|
@ -82,11 +89,11 @@
|
|||
/**
|
||||
* @brief Display member join form
|
||||
**/
|
||||
function dispMemberSignUpForm() {
|
||||
//setcookie for redirect url in case of going to member sign up
|
||||
if (!isset($_COOKIE["XE_REDIRECT_URL"]))
|
||||
function dispMemberSignUpForm()
|
||||
{
|
||||
//setcookie for redirect url in case of going to member sign up
|
||||
setcookie("XE_REDIRECT_URL", $_SERVER['HTTP_REFERER']);
|
||||
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
// Get the member information if logged-in
|
||||
if($oMemberModel->isLogged()) return $this->stop('msg_already_logged');
|
||||
|
|
@ -108,6 +115,7 @@
|
|||
$identifierForm->name = $member_config->identifier;
|
||||
$identifierForm->value = $member_info->{$member_config->identifier};
|
||||
Context::set('identifierForm', $identifierForm);
|
||||
|
||||
// Set a template file
|
||||
$this->setTemplateFile('signup_form');
|
||||
}
|
||||
|
|
@ -247,8 +255,14 @@
|
|||
$this->setTemplateFile('redirect.html');
|
||||
return;
|
||||
}
|
||||
|
||||
// get member module configuration.
|
||||
$oMemberModel = &getModel('member');
|
||||
$config = $oMemberModel->getMemberConfig();
|
||||
Context::set('identifier', $config->identifier);
|
||||
|
||||
// Set a template file
|
||||
Context::set('referer_url', $_SERVER['HTTP_REFERER']);
|
||||
Context::set('referer_url', htmlspecialchars($_SERVER['HTTP_REFERER']));
|
||||
Context::set('act', 'procMemberLogin');
|
||||
$this->setTemplateFile('login_form');
|
||||
}
|
||||
|
|
|
|||
8
modules/member/queries/deleteLoginCountByIp.xml
Normal file
8
modules/member/queries/deleteLoginCountByIp.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteLoginCountByIp" action="delete">
|
||||
<tables>
|
||||
<table name="member_login_count" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="equal" column="ipaddress" var="ipaddress" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteLoginCountHistoryByMemberSrl" action="delete">
|
||||
<tables>
|
||||
<table name="member_count_history" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/member/queries/getLoginCountByIp.xml
Normal file
11
modules/member/queries/getLoginCountByIp.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getLoginCountByIp" action="select">
|
||||
<tables>
|
||||
<table name="member_login_count" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="ipaddress" var="ipaddress" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/member/queries/getLoginCountHistoryByMemberSrl.xml
Normal file
11
modules/member/queries/getLoginCountHistoryByMemberSrl.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getLoginCountHistoryByMemberSrl" action="select">
|
||||
<tables>
|
||||
<table name="member_count_history" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/member/queries/insertLoginCountByIp.xml
Normal file
11
modules/member/queries/insertLoginCountByIp.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="insertLoginCountByIp" action="insert">
|
||||
<tables>
|
||||
<table name="member_login_count" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="ipaddress" var="ipaddress" notnull="notnull" />
|
||||
<column name="count" var="count" notnull="notnull" />
|
||||
<column name="regdate" default="curdate()" />
|
||||
<column name="last_update" default="curdate()" />
|
||||
</columns>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
<query id="insertLoginCountHistoryByMemberSrl" action="insert">
|
||||
<tables>
|
||||
<table name="member_count_history" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="member_srl" var="member_srl" notnull="notnull" />
|
||||
<column name="content" var="content" notnull="notnull" />
|
||||
<column name="last_update" default="curdate()" />
|
||||
</columns>
|
||||
</query>
|
||||
12
modules/member/queries/updateLoginCountByIp.xml
Normal file
12
modules/member/queries/updateLoginCountByIp.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updateLoginCountByIp" action="update">
|
||||
<tables>
|
||||
<table name="member_login_count" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="count" var="count" notnull="notnull" />
|
||||
<column name="last_update" var="last_update" notnull="notnull" default="curdate()" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="ipaddress" var="ipaddress" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updateLoginCountHistoryByMemberSrl" action="update">
|
||||
<tables>
|
||||
<table name="member_count_history" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="content" var="content" notnull="notnull" />
|
||||
<column name="last_update" var="last_update" notnull="notnull" default="curdate()" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
8
modules/member/ruleset/findAccount.xml
Normal file
8
modules/member/ruleset/findAccount.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>
|
||||
|
|
@ -5,5 +5,7 @@
|
|||
<fields>
|
||||
<field name="webmaster_name" required="true" length="2:40" />
|
||||
<field name="webmaster_email" length="1:200" rule="email" />
|
||||
<field name="max_error_count" length="1:20" rule="number" />
|
||||
<field name="max_error_count_time" length="1:20" rule="number" />
|
||||
</fields>
|
||||
</ruleset>
|
||||
|
|
|
|||
5
modules/member/schemas/member_count_history.xml
Normal file
5
modules/member/schemas/member_count_history.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<table name="member_count_history">
|
||||
<column name="member_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
|
||||
<column name="content" type="bigtext" notnull="notnull" />
|
||||
<column name="last_update" type="date" index="idx_last_update" />
|
||||
</table>
|
||||
6
modules/member/schemas/member_login_count.xml
Normal file
6
modules/member/schemas/member_login_count.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<table name="member_login_count">
|
||||
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress" />
|
||||
<column name="count" type="number" size="11" notnull="notnull" />
|
||||
<column name="regdate" type="date" index="idx_regdate" />
|
||||
<column name="last_update" type="date" index="idx_last_update" />
|
||||
</table>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<include target="./common_header.html" />
|
||||
<load target="filter/find_member_account.xml" />
|
||||
<h1 class="h1">{$lang->cmd_find_member_account}</h1>
|
||||
<h2 class="h2">{$lang->cmd_find_member_account_with_email}</h2>
|
||||
<p>{$lang->about_find_member_account}</p>
|
||||
<form action="./" method="get" class="form" onsubmit="return procFilter(this, find_member_account)">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
</div>
|
||||
</form>
|
||||
<!--@if(count($lang->find_account_question_items)>1)-->
|
||||
<h1 class="h1">{$lang->cmd_find_member_account}</h1>
|
||||
<h2 class="h2">{$lang->cmd_find_member_account_with_email_question}</h2>
|
||||
<p>{$lang->about_find_account_question}</p>
|
||||
<form action="./" method="get" class="form" ruleset="@find_member_account_by_question">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
</div>
|
||||
<h1 class="h1">{$lang->cmd_login}</h1>
|
||||
<form ruleset="@login" action="./" method="post" id="fo_member_login" class="form">
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('act', '')}" />
|
||||
<input type="hidden" name="success_return_url" value="{$referer_url}" />
|
||||
<input type="hidden" name="act" value="procMemberLogin" />
|
||||
<ul>
|
||||
<li>
|
||||
<p class="q"><label for="uid">{$lang->user_id}</label></p>
|
||||
<p class="q"><label for="uid"><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label></p>
|
||||
<p class="a"><input type="text" name="user_id" id="uid" value="" /></p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@
|
|||
<li>
|
||||
<p class="q">{$lang->allow_mailing}</p>
|
||||
<p class="a">
|
||||
<input type="radio" name="allow_mailing" id="mailingYes" value="Y" checked="checked"|cond="$member_info->allow_mailing == 'Y'"> <label for="mailingYes">{$lang->cmd_yes}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingNo" value="N" checked="checked"|cond="$member_info->allow_mailing != 'Y'" > <label for="mailingNo">{$lang->cmd_no}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingYes" value="Y" checked="checked"|cond="$member_info->allow_mailing == 'Y'" /> <label for="mailingYes">{$lang->cmd_yes}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingNo" value="N" checked="checked"|cond="$member_info->allow_mailing != 'Y'" /> <label for="mailingNo">{$lang->cmd_no}</label>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -31,6 +31,11 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0}
|
|||
.ff label+input[type=text],
|
||||
.ff label+input[type=password],
|
||||
.ff label+textarea{padding:5px}
|
||||
/* Help */
|
||||
.hp{background:#eee;border-top:1px solid #ddd;padding:12px 10px !important;margin:10px 0px !important;}
|
||||
.hp li{margin:0;display:inline;border-left:1px solid #ccc;padding:0 4px 0 8px;}
|
||||
.hp li:first-child{border:0;}
|
||||
.hp a{color:#333;text-decoration:none}
|
||||
/* Button Area */
|
||||
.bna{text-align:center;padding:0 10px;margin:10px 0}
|
||||
.bna:after{content:"";display:block;clear:both}
|
||||
|
|
@ -40,3 +45,4 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0}
|
|||
.bn[href]{height:26px}
|
||||
.bn.dark{border-color:#666;background:#777 -webkit-gradient(linear,0% 0%,0% 100%,from(#7e7c78),to(#5c5b58));background:#777 -moz-linear-gradient(top,#7e7c78,#5c5b58);background-color:#777;color:#fff;box-shadow:0 0 1px #fff inset;-moz-box-shadow:0 0 1px #fff inset;-webkit-box-shadow:0 0 1px #fff inset}
|
||||
.bn.white{border-color:#b5b5b5;background:#1b1b1b -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#f6f6f6),color-stop(0.5,#f0f0f0),color-stop(0.5,#e4e4e4));background:#1b1b1b -moz-linear-gradient(top,#fff,#e4e4e4);background-color:#fff;color:#000}
|
||||
.message{border:1px solid #ddd;background:#f8f8f8;margin:1em 0;padding:0 1em;border-radius:5px;line-height:1.4;font-size:12px}.message p{margin:1em 0!important}.message em{font-style:normal;color:#e00}.message.info,.message.error,.message.update{padding-left:55px}.message.info{border-color:#e0e8ec;background:#edf9ff url(../../../../common/img/msg.Info.png) no-repeat 1em .5em}.message.error{border-color:#efdcdc;background:#ffecec url(../../../../common/img/msg.error.png) no-repeat 1em .5em}.message.update{border-color:#eae9dc;background:#fffdef url(../../../../common/img/msg.update.png) no-repeat 1em .5em}
|
||||
|
|
@ -51,3 +51,4 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0}
|
|||
.bn[href]{height:26px}
|
||||
.bn.dark{border-color:#666;background:#777 -webkit-gradient(linear,0% 0%,0% 100%,from(#7e7c78),to(#5c5b58));background:#777 -moz-linear-gradient(top,#7e7c78,#5c5b58);background-color:#777;color:#fff;box-shadow:0 0 1px #fff inset;-moz-box-shadow:0 0 1px #fff inset;-webkit-box-shadow:0 0 1px #fff inset}
|
||||
.bn.white{border-color:#b5b5b5;background:#1b1b1b -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#f6f6f6),color-stop(0.5,#f0f0f0),color-stop(0.5,#e4e4e4));background:#1b1b1b -moz-linear-gradient(top,#fff,#e4e4e4);background-color:#fff;color:#000}
|
||||
.message{border:1px solid #ddd;background:#f8f8f8;margin:1em 0;padding:0 1em;border-radius:5px;line-height:1.4;font-size:12px}.message p{margin:1em 0!important}.message em{font-style:normal;color:#e00}.message.info,.message.error,.message.update{padding-left:55px}.message.info{border-color:#e0e8ec;background:#edf9ff url(../../../../common/img/msg.Info.png) no-repeat 1em .5em}.message.error{border-color:#efdcdc;background:#ffecec url(../../../../common/img/msg.error.png) no-repeat 1em .5em}.message.update{border-color:#eae9dc;background:#fffdef url(../../../../common/img/msg.update.png) no-repeat 1em .5em}
|
||||
59
modules/member/tpl/find_member_account.html
Normal file
59
modules/member/tpl/find_member_account.html
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="./../../../common/js/xe.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="css/msignup.css" usecdn="true" />
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<div class="hx h2"><h2>{$lang->cmd_find_member_account_with_email}</h2></div>
|
||||
<form action="./" ruleset="findAccount" method="post" class="ff">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberFindAccount" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('act', 'dispMemberFindAccount')}" />
|
||||
<ul>
|
||||
<li>
|
||||
<label for="email_address1">{$lang->email_address}</label>
|
||||
<input id="email_address1" type="text" name="email_address" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="bna">
|
||||
<input type="submit" class="bn dark" value="{$lang->cmd_send_mail}" />
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<!--@if(count($lang->find_account_question_items)>1)-->
|
||||
<div class="hx h2"><h2>{$lang->cmd_find_member_account_with_email_question}</h2></div>
|
||||
<p style="margin:3px 10px;color:#666">{$lang->about_find_account_question}</p>
|
||||
<form action="./" method="post" class="ff" ruleset="@find_member_account_by_question">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="act" value="procMemberFindAccountByQuestion" />
|
||||
<input type="hidden" name="success_return_url" value="{getUrl('', 'act', 'dispMemberGetTempPassword')}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<ul>
|
||||
<li cond="$identifier == 'user_id'">
|
||||
<label for="user_id2">{$lang->user_id}</label>
|
||||
<input type="text" name="user_id" id="user_id2" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="email_address2">{$lang->email_address}</label>
|
||||
<input type="text" name="email_address" id="email_address2" />
|
||||
</li>
|
||||
<li>
|
||||
<label for="question">{$lang->find_account_question}</label>
|
||||
<select id="question" name="find_account_question" style="width:290px;display:block;">
|
||||
<!--@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>
|
||||
<input type="text" name="find_account_answer" value="" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="bna">
|
||||
<input type="submit" class="bn dark" value="{$lang->cmd_get_temp_password}" />
|
||||
</div>
|
||||
</form>
|
||||
<!--@end-->
|
||||
7
modules/member/tpl/find_temp_password.html
Normal file
7
modules/member/tpl/find_temp_password.html
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<load target="css/msignup.css" usecdn="true" />
|
||||
<div>
|
||||
<div class="hx h2"><h2>{$lang->cmd_find_member_account}</h2></div>
|
||||
<p>{$lang->about_temp_password}</p>
|
||||
<p><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end-->: {$user_id}</p>
|
||||
<p>{$lang->temp_password}: {$temp_password}</p>
|
||||
</div>
|
||||
|
|
@ -1,5 +1,9 @@
|
|||
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="css/mlogin.css" usecdn="true" />
|
||||
<div class="bd">
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<div class="hx h2">
|
||||
<h2>{$lang->cmd_login}</h2>
|
||||
</div>
|
||||
|
|
@ -8,12 +12,33 @@
|
|||
<input type="hidden" name="act" value="procMemberLogin" />
|
||||
<input type="hidden" name="redirect_url" value="{getUrl('act','')}" />
|
||||
<ul>
|
||||
<li><label for="id">{$lang->user_id}</label><input name="user_id" type="text" id="id" value="" /></li>
|
||||
<li><label for="id"><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label><input name="user_id" type="text" id="id" value="" /></li>
|
||||
<li><label for="pw">{$lang->password}</label><input name="password" type="password" id="pw" value="" /></li>
|
||||
</ul>
|
||||
<div class="message info" id="keep_msg" style="display:none;">
|
||||
<p>{$lang->about_keep_warning}</p>
|
||||
</div>
|
||||
<div class="bna">
|
||||
<div class="fl"><input name="keep_signed" type="checkbox" value="Y" id="autoLogin" /> <label for="autoLogin">{$lang->keep_signed}</label></div>
|
||||
<div class="fr"><button type="submit" class="bn dark">{$lang->cmd_login}</button></div>
|
||||
</div>
|
||||
<ul class="hp">
|
||||
<li><a href="{getUrl('','act','dispMemberFindAccount')}"><span>{$lang->cmd_find_member_account}</span></a></li>
|
||||
<li><a href="{getUrl('','act','dispMemberSignUpForm')}"><span>{$lang->cmd_signup}</span></a></li>
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(function($){
|
||||
var keep_msg = $('#keep_msg');
|
||||
keep_msg.hide();
|
||||
$('#autoLogin').change(function(){
|
||||
if($(this).is(':checked')){
|
||||
keep_msg.slideDown(200);
|
||||
} else {
|
||||
keep_msg.slideUp(200);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
@ -51,6 +51,14 @@
|
|||
<p class="q"><label for="change_password_date">{$lang->change_password_date}</label></p>
|
||||
<p class="a"><input type="text" id="change_password_date" name="change_password_date" value="{$config->change_password_date}" style="width:30px" /><span class="desc">{$lang->unit_day}({$lang->about_change_password_date})</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="max_error_count">{$lang->login_trial_limit1}</label></p>
|
||||
<p class="a"><input type="text" id="max_error_count" name="max_error_count" value="{$config->max_error_count}" style="width:30px" /><span class="desc">{$lang->about_login_trial_limit1}</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="max_error_count_time">{$lang->login_trial_limit2}</label></p>
|
||||
<input type="text" id="max_error_count_time" name="max_error_count_time" value="{$config->max_error_count_time}" style="width:30px" /><span class="desc">{$lang->unit_sec}({$lang->about_login_trial_limit2})</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="q"><label for="agreement">{$lang->agreement}</label></p>
|
||||
<p class="a">{$editor}</p>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,38 @@
|
|||
{@ Context::loadFile(array("./common/js/jquery.js", 'head', '', -100000), true) }
|
||||
{@ Context::loadFile(array("./common/js/js_app.js", 'head', '', -100000), true) }
|
||||
{@ Context::loadFile(array("./common/js/common.js", 'head', '', -100000), true) }
|
||||
{@ Context::loadFile(array("./common/js/xml_handler.js", 'head', '', -100000), true) }
|
||||
{@ Context::loadFile(array("./common/js/xml_js_filter.js", 'head', '', -100000), true) }
|
||||
|
||||
<load target="css/msignup.css" usecdn="true" />
|
||||
<!--%import("../skins/default/filter/modify_password.xml")-->
|
||||
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="./../../../common/js/xe.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="../skins/default/js/member.js" usecdn="true" />
|
||||
<div class="bd">
|
||||
<h2 class="h2">{$member_title = $lang->cmd_modify_member_password}</h2>
|
||||
<form id="fo_insert_member" action="./" method="get" onsubmit="return procFilter(this, modify_password)">
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<fieldset class="sn">
|
||||
<ul>
|
||||
<li><label for="uid" class="db fb al">{$lang->user_id}</label><div id="uid">{htmlspecialchars($member_info->user_id)}</div></li>
|
||||
<li><label for="cpw" class="db fb al">{$lang->current_password}</label><input type="password" name="current_password" id="cpw" class="itx" /></li>
|
||||
<li><div><label for="npw1" class="db fb al">{$lang->password1}</label><input type="password" name="password1" id="npw1" class="itx" /></div>
|
||||
<div><label for="npw1" class="db fb al">{$lang->password2}</label><input type="password" name="password2" id="npw2" class="itx" /></div>
|
||||
<p style="color:#666">{$lang->about_password}</p></li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
<div class="cm">
|
||||
<input type="submit" value="{$lang->cmd_registration}" class="bn"/><a href="{getUrl('act','dispMemberInfo','member_srl','')}" class="bn"><span>{$lang->cmd_back}</span></a>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<h2 class="h2">{$member_title = $lang->cmd_modify_member_password}</h2>
|
||||
<form id="fo_insert_member" action="./" method="post" class="ff" ruleset="modifyPassword">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberModifyPassword" />
|
||||
<input type="hidden" name="mid" value="{$mid}" />
|
||||
<input type="hidden" name="document_srl" value="{$document_srl}" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<fieldset class="sn">
|
||||
<ul>
|
||||
<li>
|
||||
<label for="uid" class="db fb al"><!--@if($identifier == 'user_id')-->{$lang->user_id}<!--@else-->{$lang->email_address}<!--@end--></label>
|
||||
<div id="uid"><!--@if($identifier == 'user_id')-->{htmlspecialchars($member_info->user_id)}<!--@else-->{htmlspecialchars($member_info->email_address)}<!--@end--></div>
|
||||
</li>
|
||||
<li>
|
||||
<label for="cpw" class="db fb al">{$lang->current_password}</label>
|
||||
<input type="password" name="current_password" id="cpw" class="itx" />
|
||||
</li>
|
||||
<li>
|
||||
<div><label for="npw1" class="db fb al">{$lang->password1}</label><input type="password" name="password1" id="npw1" class="itx" /></div>
|
||||
<div><label for="npw1" class="db fb al">{$lang->password2}</label><input type="password" name="password2" id="npw2" class="itx" /></div>
|
||||
<p style="color:#666">{$lang->about_password}</p>
|
||||
</li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
<div class="cm">
|
||||
<input type="submit" value="{$lang->cmd_registration}" class="bn dark" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
<load target="./../../../common/js/jquery.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="./../../../common/js/xe.min.js" usecdn="true" index="-1000000" />
|
||||
<load target="css/msignup.css" usecdn="true" />
|
||||
<load target="js/signup_check.js" usecdn="true" />
|
||||
<!--%load_js_plugin("ui")-->
|
||||
|
|
@ -9,7 +11,7 @@
|
|||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<form ruleset="@insertMember" id="fo_insert_member" class="ff" action="./" method="post" enctype="multipart/form-data">
|
||||
<form ruleset="@insertMember" id="fo_insert_member" class="ff" action="./" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberInsert" />
|
||||
<!--@if(!$is_logged && $member_config->agreement)-->
|
||||
|
|
@ -33,23 +35,24 @@
|
|||
<input type="password" name="password" id="password" value=""/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="password2">{$lang->password2} <em style="color:red">*</em></label>
|
||||
<label for="password2">{$lang->password3} <em style="color:red">*</em></label>
|
||||
<input type="password" name="password2" id="password2" value=""/>
|
||||
</li>
|
||||
<li loop="$formTags=>$formTag">
|
||||
<label>{$formTag->title}</label>
|
||||
<block cond="$formTag->name != 'signature'">{$formTag->inputTag}</block>
|
||||
<block cond="$formTag->name =='signature'">{$editor}</block>
|
||||
</li>
|
||||
<block loop="$formTags=>$formTag" cond="$formTag->name != 'signature'">
|
||||
<li>
|
||||
<label>{$formTag->title}</label>
|
||||
{$formTag->inputTag}
|
||||
</li>
|
||||
</block>
|
||||
<li>
|
||||
<label>{$lang->allow_mailing}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingYes" value="Y" checked="checked"|cond="$member_info->allow_mailing == 'Y'"> <label for="mailingYes">{$lang->cmd_yes}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingNo" value="N" checked="checked"|cond="$member_info->allow_mailing != 'Y'" > <label for="mailingNo">{$lang->cmd_no}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingYes" value="Y" checked="checked"|cond="$member_info->allow_mailing == 'Y'" /> <label for="mailingYes">{$lang->cmd_yes}</label>
|
||||
<input type="radio" name="allow_mailing" id="mailingNo" value="N" checked="checked"|cond="$member_info->allow_mailing != 'Y'" /> <label for="mailingNo">{$lang->cmd_no}</label>
|
||||
</li>
|
||||
<li>
|
||||
<label>{$lang->allow_message}</label>
|
||||
<block loop="$lang->allow_message_type=>$key,$val">
|
||||
<input type="radio" name="allow_message" value="{$key}" checked="checked"|cond="$member_info->allow_message == $key" id="allow_{$key}" /> <label for="allow_{$key}">{$val}</label>
|
||||
<input type="radio" name="allow_message" value="{$key}" checked="checked"|cond="$member_info->allow_message == $key || (!$member_info && $key == 'Y')" id="allow_{$key}" /> <label for="allow_{$key}">{$val}</label>
|
||||
</block>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue