Fixes in login

This commit is contained in:
Antonio de la Rosa 2025-01-10 13:49:26 +01:00
parent a63ab64876
commit cd0fdacbb7
2 changed files with 26 additions and 7 deletions

View file

@ -22,6 +22,12 @@ login_tries=5
if hasattr(config, 'login_tries'): if hasattr(config, 'login_tries'):
login_tries=config.login_tries login_tries=config.login_tries
seconds_login=300
if hasattr(config, 'seconds_login'):
seconds_login=config.seconds_login
#useradmin.create_forms() #useradmin.create_forms()
@ -76,7 +82,7 @@ class UserAdmin(BaseModel):
remember_login: bool | None = None remember_login: bool | None = None
class ResponseDataLogin(ResponseData): class ResponseDataLogin(ResponseData):
login_tries: bool no_login: bool
@admin_app.post('/login') @admin_app.post('/login')
def check_login_admin(user: UserAdmin, request: Request) -> ResponseDataLogin: def check_login_admin(user: UserAdmin, request: Request) -> ResponseDataLogin:
@ -106,7 +112,7 @@ def check_login_admin(user: UserAdmin, request: Request) -> ResponseDataLogin:
db.close() db.close()
return {'error': error, 'message': message, 'login_tries': no_login} return {'error': error, 'message': message, 'no_login': no_login}
class UserSignup(BaseModel): class UserSignup(BaseModel):
username: str = Field(description="The username of new user", min_length=4, pattern=r"\w+") 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 you_cannot_login=0
arr_try=logintries.set_conditions('WHERE ip=%s', [ip]).select_a_row_where()
now_str=now() now_str=now()
date_now=format_local_strtime('YYYY-MM-DD HH:mm:ss', now_str) 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]) 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:
if arr_try['num_tries']<login_tries: if arr_try['num_tries']<login_tries:

View file

@ -39,8 +39,8 @@
<div class="mb-3"> <div class="mb-3">
<label for="password_form" class="form-label">Password</label> <label for="password_form" class="form-label">Password</label>
<input type="password" class="form-control form-control-lg has-validation" id="password_form" name="password" autocomplete="off" required> <input type="password" class="form-control form-control-lg has-validation" id="password_form" name="password" autocomplete="off" required>
<div class="invalid-feedback"> <div class="invalid-feedback" id="login_invalid">
${tlang('You need a valid username and password')} ${tlang('Error: username or password invalid')}
</div> </div>
</div> </div>
<div class="mb-3 form-check"> <div class="mb-3 form-check">
@ -131,6 +131,19 @@
$('#username_form').get(0).setCustomValidity("${tlang('Error: username or password invalid')}"); $('#username_form').get(0).setCustomValidity("${tlang('Error: username or password invalid')}");
$('#password_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); $('#login_submit').prop('disabled', false);