diff --git a/client/src/app/admin/admin-login-page.js b/client/src/app/admin/admin-login-page.js
index 835b4e18..50321ee0 100644
--- a/client/src/app/admin/admin-login-page.js
+++ b/client/src/app/admin/admin-login-page.js
@@ -16,6 +16,9 @@ import Message from 'core-components/message';
import Widget from 'core-components/widget';
import WidgetTransition from 'core-components/widget-transition';
+import Captcha from 'app/main/captcha';
+
+const MAX_FREE_LOGIN_ATTEMPTS = 3;
class AdminLoginPage extends React.Component {
state = {
@@ -72,6 +75,7 @@ class AdminLoginPage extends React.Component {
className="admin-login-page__login-form-container__login-form__fields__remember"
field="checkbox" />
+ {this.props.session.loginAttempts > MAX_FREE_LOGIN_ATTEMPTS ? this.renderLoginCaptcha() : null}
diff --git a/client/src/app/main/main-home/main-home-page-login-widget.js b/client/src/app/main/main-home/main-home-page-login-widget.js
index 5354ff74..7b8be00e 100644
--- a/client/src/app/main/main-home/main-home-page-login-widget.js
+++ b/client/src/app/main/main-home/main-home-page-login-widget.js
@@ -79,13 +79,10 @@ class MainHomePageLoginWidget extends React.Component {
);
}
- renderLoginCaptcha(){
+ renderLoginCaptcha() {
return(
-
)
}
diff --git a/server/controllers/user/login.php b/server/controllers/user/login.php
index 4d49716c..78ce0e91 100755
--- a/server/controllers/user/login.php
+++ b/server/controllers/user/login.php
@@ -1,5 +1,7 @@
'any',
'requestData' => []
];
+
+ $validations['requestData']['captcha'] = [
+
+ 'validation' => DataValidator::oneOf(DataValidator::captcha(),DataValidator::nullType()),
+ 'error' => ERRORS::INVALID_CAPTCHA
+ ];
+
+ return $validations;
+
}
public function handler() {