diff --git a/modules/member/lang/lang.xml b/modules/member/lang/lang.xml index 1c3807cfa..68fb003ce 100644 --- a/modules/member/lang/lang.xml +++ b/modules/member/lang/lang.xml @@ -2491,18 +2491,23 @@ Bạn có thể quản lý thành viên bằng cách tạo những nhóm mới, + + + + + - 확인하지 않은 로그인 실패 기록이 있습니다.
%1$s

* 이 알림은 한번만 보입니다.
* 이 메시지는 쪽지와 이메일로 발송됩니다.
* 이 메시지는 로그인이 성공한 순간, 로그인 성공 이전 실패 기록을 모아서 발송합니다.
발송 시각: %2$s

]]>
- There is unfolded sign in failure report
%1$s

* This notification is shown once.
* This message will be send to your email and message.
* This message contains sign in failure records, before a ID sign in success.
Sending: %2$s

]]>
+ 로그인 실패 기록을 알려드립니다.
%1$s

* 비밀번호를 틀리는 등의 일이 없었는데 이 메시지를 보신다면, 계정 관리에 유의해주시기 바랍니다.
* 이 메시지는 로그인이 성공한 순간 누적 로그인 실패 기록이 많을 경우, 로그인 성공 이전 실패 기록을 모아서 발송합니다.
발송 시각: %2$s

]]>
+ There is recorded sign in failures.
%1$s

* This notification is shown once.
* This message contains sign in failure records, before a ID sign in success.
Sending: %2$s

]]>
diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 537750851..8c3d9c4de 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -355,19 +355,20 @@ function recordLoginError($error = 0, $message = 'success') { if($error == 0) return new Object($error, $message); + + // Create a member model object + $oMemberModel = &getModel('member'); + $config = $oMemberModel->getMemberConfig(); + // Check if there is recoding table. $oDB = &DB::getInstance(); - if(!$oDB->isTableExists('member_login_count')) return new Object($error, $message); - + if(!$oDB->isTableExists('member_login_count') || $config->enable_login_fail_report == 'N') 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. @@ -398,10 +399,14 @@ function recordMemberLoginError($error = 0, $message = 'success', $args = NULL) { if($error == 0 || !$args->member_srl) return new Object($error, $message); + + // Create a member model object + $oMemberModel = &getModel('member'); + $config = $oMemberModel->getMemberConfig(); + // Check if there is recoding table. $oDB = &DB::getInstance(); - if(!$oDB->isTableExists('member_count_history')) return new Object($error, $message); - + if(!$oDB->isTableExists('member_count_history') || $config->enable_login_fail_report == 'N') return new Object($error, $message); $output = executeQuery('member.getLoginCountHistoryByMemberSrl', $args); if($output->data && $output->data->content) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 364c04ec9..0a9c81474 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -1555,37 +1555,45 @@ // 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 = ''; - $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') + // Check if there is recoding table. + $oDB = &DB::getInstance(); + if($oDB->isTableExists('member_count_history') && $config->enable_login_fail_report != 'N') + { + // check if there is login fail records. + $output = executeQuery('member.getLoginCountHistoryByMemberSrl', $args); + if($output->data && $output->data->content) { - $view_url = Context::getRequestUri(); - $title = sprintf("%s @ %s",$title,$view_url); - $content = sprintf("%s

From: %s
To: %s(%s)

",$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(); + $title = Context::getLang('login_fail_report'); + $message = ''; + $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(); + $content = sprintf("%s

From: %s
To: %s(%s)

",$content, $view_url, $view_url, $this->memberInfo->nick_name, $this->memberInfo->email_id); + $oMail = new Mail(); + $oMail->setTitle($title); + $oMail->setContent($content); + $oMail->setSender($config->webmaster_name?$config->webmaster_name:'webmaster', $config->webmaster_email); + $oMail->setReceiptor($this->memberInfo->email_id.'('.$this->memberInfo->nick_name.')', $this->memberInfo->email_address); + $oMail->send(); + } + $output = executeQuery('member.deleteLoginCountHistoryByMemberSrl', $args); + } } - $output = executeQuery('member.deleteLoginCountHistoryByMemberSrl', $args); } // Call a trigger after successfully log-in (after) $trigger_output = ModuleHandler::triggerCall('member.doLogin', 'after', $this->memberInfo); diff --git a/modules/member/tpl/member_config.html b/modules/member/tpl/member_config.html index cd3e0a243..845a875c9 100644 --- a/modules/member/tpl/member_config.html +++ b/modules/member/tpl/member_config.html @@ -63,6 +63,13 @@ {$lang->unit_day}({$lang->about_change_password_date}) +
+

{$lang->enable_login_fail_report}

+
+ + +
+