diff --git a/parameciofast/modules/fastadmin/app.py b/parameciofast/modules/fastadmin/app.py index a53e31b..4f76878 100644 --- a/parameciofast/modules/fastadmin/app.py +++ b/parameciofast/modules/fastadmin/app.py @@ -22,6 +22,12 @@ login_tries=5 if hasattr(config, 'login_tries'): login_tries=config.login_tries + +seconds_login=300 + +if hasattr(config, 'seconds_login'): + seconds_login=config.seconds_login + #useradmin.create_forms() @@ -76,7 +82,7 @@ class UserAdmin(BaseModel): remember_login: bool | None = None class ResponseDataLogin(ResponseData): - login_tries: bool + no_login: bool @admin_app.post('/login') def check_login_admin(user: UserAdmin, request: Request) -> ResponseDataLogin: @@ -106,7 +112,7 @@ def check_login_admin(user: UserAdmin, request: Request) -> ResponseDataLogin: db.close() - return {'error': error, 'message': message, 'login_tries': no_login} + return {'error': error, 'message': message, 'no_login': no_login} class UserSignup(BaseModel): username: str = Field(description="The username of new user", min_length=4, pattern=r"\w+") @@ -183,15 +189,15 @@ def check_login_tries(request, db): you_cannot_login=0 - arr_try=logintries.set_conditions('WHERE ip=%s', [ip]).select_a_row_where() - now_str=now() date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str) - date_check=format_local_strtime('YYYY-MM-DD HH:mm:ss', timestamp_to_datetime(obtain_timestamp(now_str)-300)) + date_check=format_local_strtime('YYYY-MM-DD HH:mm:ss', timestamp_to_datetime(obtain_timestamp(now_str)-seconds_login)) logintries.query('delete from logintries where last_login<%s', [date_check]) + arr_try=logintries.set_conditions('WHERE ip=%s', [ip]).select_a_row_where() + if arr_try: if arr_try['num_tries'] -
- ${tlang('You need a valid username and password')} +
+ ${tlang('Error: username or password invalid')}
@@ -131,6 +131,19 @@ $('#username_form').get(0).setCustomValidity("${tlang('Error: username or password invalid')}"); $('#password_form').get(0).setCustomValidity("${tlang('Error: username or password invalid')}"); + + console.log(JSON.stringify(data)); + + if(data.no_login) { + + $('#login_invalid').html("${tlang('Error: you try login excessive times, please wait some minutes for try again')}"); + + } + else { + + $('#login_invalid').html("${tlang('Error: username or password invalid')}"); + + } $('#login_submit').prop('disabled', false);