This commit is contained in:
Guillermo Giuliana 2021-11-24 00:38:38 -03:00
parent 14b195b7ca
commit dfe4e06942
3 changed files with 25 additions and 5 deletions

View File

@ -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" />
</div>
{this.props.session.loginAttempts > MAX_FREE_LOGIN_ATTEMPTS ? this.renderLoginCaptcha() : null}
<div className="admin-login-page__login-form-container__login-form__submit-button">
<SubmitButton>{i18n('LOG_IN')}</SubmitButton>
</div>
@ -87,6 +91,14 @@ class AdminLoginPage extends React.Component {
);
}
renderLoginCaptcha() {
return(
<div>
<Captcha ref="captcha" />
</div>
)
}
renderPasswordRecovery() {
return (
<div className="admin-login-page__recovery-form-container">

View File

@ -79,13 +79,10 @@ class MainHomePageLoginWidget extends React.Component {
);
}
renderLoginCaptcha(){
renderLoginCaptcha() {
return(
<div>
<Captcha ref="captcha" />
<Button className="login-widget__forgot-password" type="link" >
{i18n('FORGOT_PASSWORD')}
</Button>
</div>
)
}

View File

@ -1,5 +1,7 @@
<?php
use RedBeanPHP\Facade as RedBean;
use Respect\Validation\Validator as DataValidator;
DataValidator::with('CustomValidations', true);
/**
* @api {post} /user/login Login
@ -41,10 +43,19 @@ class LoginController extends Controller {
private $rememberExpiration;
public function validations() {
return [
$validations = [
'permission' => 'any',
'requestData' => []
];
$validations['requestData']['captcha'] = [
'validation' => DataValidator::oneOf(DataValidator::captcha(),DataValidator::nullType()),
'error' => ERRORS::INVALID_CAPTCHA
];
return $validations;
}
public function handler() {