mirror of https://github.com/Aidaho12/haproxy-wi
v8.0: Log exceptions and add DB update to version 8
Added logging for exceptions in user login and authentication processes. Enhanced `update_db.py` to include error handling for database migration and added a new database update version 8 function.pull/399/head v8.0
parent
0727c2979f
commit
69e5c2cca9
|
@ -576,32 +576,45 @@ def update_db_v_7_3_1():
|
|||
def update_db_v_7_4():
|
||||
try:
|
||||
migrate(
|
||||
migrator.rename_column('user', 'role', 'role_id'),
|
||||
migrator.rename_column('backups', 'cred', 'cred_id'),
|
||||
migrator.rename_column('backups', 'backup_type', 'type'),
|
||||
migrator.rename_column('servers', 'active', 'haproxy_active'),
|
||||
migrator.rename_column('servers', 'metrics', 'haproxy_metrics'),
|
||||
migrator.rename_column('servers', 'alert', 'haproxy_alert'),
|
||||
migrator.rename_column('udp_balancers', 'desc', 'description'),
|
||||
migrator.rename_column('ha_clusters', 'desc', 'description'),
|
||||
migrator.rename_column('servers', 'desc', 'description'),
|
||||
)
|
||||
except Exception as e:
|
||||
if e.args[0] == 'no such column: "cred"' or str(e) == '(1060, no such column: "cred")':
|
||||
print("Updating... DB has been updated to version 7.4")
|
||||
elif e.args[0] == "'bool' object has no attribute 'sql'":
|
||||
print("Updating... DB has been updated to version 7.4")
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
|
||||
def update_db_v_8():
|
||||
try:
|
||||
migrate(
|
||||
migrator.rename_column('telegram', 'groups', 'group_id'),
|
||||
migrator.rename_column('slack', 'groups', 'group_id'),
|
||||
migrator.rename_column('mattermost', 'groups', 'group_id'),
|
||||
migrator.rename_column('pd', 'groups', 'group_id'),
|
||||
migrator.rename_column('servers', 'groups', 'group_id'),
|
||||
migrator.rename_column('servers', 'cred', 'cred_id'),
|
||||
migrator.rename_column('servers', 'enable', 'enabled'),
|
||||
migrator.rename_column('user', 'activeuser', 'enabled'),
|
||||
migrator.rename_column('user', 'groups', 'group_id'),
|
||||
migrator.rename_column('udp_balancers', 'desc', 'description'),
|
||||
migrator.rename_column('ha_clusters', 'desc', 'description'),
|
||||
migrator.rename_column('cred', 'enable', 'key_enabled'),
|
||||
migrator.rename_column('cred', 'groups', 'group_id'),
|
||||
migrator.rename_column('servers', 'desc', 'description'),
|
||||
migrator.rename_column('servers', 'active', 'haproxy_active'),
|
||||
migrator.rename_column('servers', 'metrics', 'haproxy_metrics'),
|
||||
migrator.rename_column('servers', 'alert', 'haproxy_alert'),
|
||||
migrator.rename_column('servers', 'cred', 'cred_id'),
|
||||
migrator.rename_column('servers', 'enable', 'enabled'),
|
||||
migrator.rename_column('servers', 'groups', 'group_id'),
|
||||
migrator.rename_column('user', 'activeuser', 'enabled'),
|
||||
migrator.rename_column('user', 'groups', 'group_id'),
|
||||
migrator.rename_column('user', 'role', 'role_id'),
|
||||
)
|
||||
except Exception as e:
|
||||
if e.args[0] == 'no such column: "role"' or str(e) == '(1060, no such column: "role")':
|
||||
print("Updating... DB has been updated to version 7.4")
|
||||
if e.args[0] == 'no such column: "groups"' or str(e) == '(1060, no such column: "groups")':
|
||||
print("Updating... DB has been updated to version 8")
|
||||
elif e.args[0] == "'bool' object has no attribute 'sql'":
|
||||
print("Updating... DB has been updated to version 7.4")
|
||||
print("Updating... DB has been updated to version 8")
|
||||
else:
|
||||
print("An error occurred:", e)
|
||||
|
||||
|
@ -633,4 +646,5 @@ def update_all():
|
|||
update_db_v_7_2_3()
|
||||
update_db_v_7_3_1()
|
||||
update_db_v_7_4()
|
||||
update_db_v_8()
|
||||
update_ver()
|
||||
|
|
|
@ -52,6 +52,7 @@ def login_page():
|
|||
try:
|
||||
user_params = roxywi_auth.check_user_password(login, password)
|
||||
except Exception as e:
|
||||
print(str(e))
|
||||
return roxywi_common.handle_json_exceptions(e, 'Cannot check login password'), 401
|
||||
try:
|
||||
return roxywi_auth.do_login(user_params, next_url)
|
||||
|
|
|
@ -136,7 +136,8 @@ def check_user_password(login: str, password: str) -> dict:
|
|||
raise Exception('There is no login or password')
|
||||
try:
|
||||
user = user_sql.get_user_by_username(login)
|
||||
except Exception:
|
||||
except Exception as e:
|
||||
roxywi_common.logging('Roxy-WI server', f'error: Cannot login user {e}', roxywi=1)
|
||||
raise Exception('ban')
|
||||
if user.enabled == 0:
|
||||
raise Exception('Your login is disabled')
|
||||
|
|
Loading…
Reference in New Issue