diff --git a/core/app/core/src/lib/views/login/components/login/login.component.ts b/core/app/core/src/lib/views/login/components/login/login.component.ts index f691b807c..89aa10f4d 100644 --- a/core/app/core/src/lib/views/login/components/login/login.component.ts +++ b/core/app/core/src/lib/views/login/components/login/login.component.ts @@ -37,6 +37,7 @@ import {LanguageStore, LanguageStringMap} from '../../../../store/language/langu import {MessageService} from '../../../../services/message/message.service'; import {Process} from '../../../../services/process/process.service'; import {StringMap} from 'common'; +import {HttpErrorResponse} from '@angular/common/http'; import {AppStateStore} from "../../../../store/app-state/app-state.store"; @@ -197,10 +198,33 @@ export class LoginUiComponent implements OnInit { return; } - onLoginError(): void { + onLoginError(httpError: HttpErrorResponse): void { this.loading = false; this.message.log('Login failed'); - this.message.addDangerMessage('Login credentials incorrect, please try again.'); + + const defaultMessage = 'Login credentials incorrect, please try again.'; + const defaultTooManyFailedMessage = 'Too many failed login attempts, please try again later.'; + let message = this.languageStore.getFieldLabel('LOGIN_INCORRECT'); + + const errorMessage = httpError?.error?.error ?? ''; + + if (errorMessage === 'Too many failed login attempts, please try again in 1 minute.') { + message = this.getTooManyFailedMessage(defaultTooManyFailedMessage); + } + + if (!message) { + message = defaultMessage + } + this.message.addDangerMessage(message); + } + + protected getTooManyFailedMessage(defaultTooManyFailedMessage: string): string { + let tooManyFailedMessage = this.languageStore.getFieldLabel('LOGIN_TOO_MANY_FAILED'); + + if (!tooManyFailedMessage) { + tooManyFailedMessage = defaultTooManyFailedMessage; + } + return tooManyFailedMessage; } protected setCurrentLanguage(): void {