added logging system

This commit is contained in:
Nick Leeman 2022-10-09 14:27:22 +02:00
parent 6398dcdf1b
commit 8a09d27bf4
6 changed files with 41 additions and 14 deletions

View File

@ -1,13 +1,28 @@
from models.database import Database
from models.user import User
from services.log import LogService
class Auth:
failed_attempts = 0
@staticmethod
def check_auth(username, password):
if username == "superadmin" and password == "Admin321!":
su_user = User(None, -1, "superadmin", "", "", "", "", "", "", "", "", "SUPER_ADMIN")
LogService.create_log(username, "Logged in", "", False)
Auth.failed_attempts = 0
return su_user
user = User(Database.connection, None, username)
if user.load_by_username() and user.password == password:
LogService.create_log(username, "Logged in", "", False)
Auth.failed_attempts = 0
return user
if Auth.failed_attempts >= 3:
LogService.create_log(username, "Multiple unsuccessful logins", "", True)
else:
LogService.create_log(username, "Unsuccessful login", f"Attempts: {Auth.failed_attempts}", False)
Auth.failed_attempts += 1
return None

View File

@ -1,4 +1,3 @@
from ast import Import
from models.user import User
class State:

View File

@ -1,6 +1,8 @@
from models.database import Database
from models.user import User
from services.state import State
from services.log import LogService
from services.search import Search
from ui.input_menu import InputMenu, Validator
from ui.selection_menu import SelectionMenu
@ -83,6 +85,7 @@ class AdvisorMenu:
)
new_user.save()
LogService.create_log(State.CURRENT_USER.username, "Created advisor", f"Advisor: {new_user.username}", True)
input("Added new Advisor! Press any key to return.")
@staticmethod
@ -114,6 +117,7 @@ class AdvisorMenu:
user.phone = edit_form.get_value("PHONE")
user.update()
LogService.create_log(State.CURRENT_USER.username, "Updated advisor", f"Advisor: {user.username}", True)
input("Updated Advisor! Press any key to return.")
@staticmethod
@ -129,6 +133,7 @@ class AdvisorMenu:
user.password = form.get_value("PASSWORD")
user.update()
LogService.create_log(State.CURRENT_USER.username, "Updated password of advisor", f"Advisor: {user.username}", True)
input("Updated Advisor Password! Press any key to return.")
@staticmethod
@ -144,6 +149,7 @@ class AdvisorMenu:
if option == True:
user.delete()
LogService.create_log(State.CURRENT_USER.username, "Deleted advisor", f"Advisor: {user.username}", True)
input("Deleted Advisor! Press any key to return.")
@staticmethod

View File

@ -23,11 +23,12 @@ class MainMenu:
if State.CURRENT_USER.role == "SYSTEM_ADMIN" or State.CURRENT_USER.role == "SUPER_ADMIN":
main_menu.add_option("Manage Advisors", MainMenu.manage_advisors)
main_menu.add_option("View logs", MainMenu.check_logs)
if State.CURRENT_USER.role == "SUPER_ADMIN":
main_menu.add_option("Manage Admins", MainMenu.manage_admins)
main_menu.add_option("Manage Backups", MainMenu.manage_backups)
main_menu.add_option("Exit...", None)
selected_option = main_menu.display().input_option()
@ -128,19 +129,14 @@ class MainMenu:
def check_logs():
Utils.clear_screen()
menu = SelectionMenu(f"Do you want to view the latest logs?")
menu.add_option("Yes", True)
menu.add_option("No", False)
selected_option = menu.display().input_option()
if selected_option == False:
return
logs = LogService.get_latest_logs()
print("==================================================================")
print("| id | Date | Time | Description Activity | Addition Information | Suspicious |")
for log in logs:
print(f"{log.id} | {log.date} | {log.time} | {log.description} | {log.additional_information} | {log.suspicious}")
print("==================================================================")
print(f"/--[ {log.id} ]---------")
print(f"| Username: {log.username}")
print(f"| Description: {log.description}")
print(f"| Additional Information: {log.additional_information}")
print(f"| Suspicious: {log.suspicious}")
print(f"| Date: {log.date} {log.time}")
print(f"\-------------\n")
input("Press any key to continue.")

View File

@ -1,6 +1,8 @@
from models.database import Database
from models.user import User
from services.state import State
from services.log import LogService
from services.search import Search
from ui.input_menu import InputMenu, Validator
from ui.selection_menu import SelectionMenu
@ -82,6 +84,7 @@ class MemberMenu:
)
new_user.save()
LogService.create_log(State.CURRENT_USER.username, "Added member", f"Member: {new_user.firstname} {new_user.lastname}", False)
input("Added new Member! Press any key to return.")
@staticmethod
@ -112,6 +115,7 @@ class MemberMenu:
user.phone = edit_form.get_value("PHONE")
user.update()
LogService.create_log(State.CURRENT_USER.username, "Updated member", f"Member: {user.firstname} {user.lastname}", False)
input("Updated Member! Press any key to return.")
@staticmethod
@ -124,6 +128,7 @@ class MemberMenu:
if option == True:
user.delete()
LogService.create_log(State.CURRENT_USER.username, "Removed member", f"Member: {user.firstname} {user.lastname}", False)
input("Deleted Member! Press any key to return.")
@staticmethod

View File

@ -1,6 +1,8 @@
from models.database import Database
from models.user import User
from services.state import State
from services.log import LogService
from services.search import Search
from ui.input_menu import InputMenu, Validator
from ui.selection_menu import SelectionMenu
@ -83,6 +85,7 @@ class SystemAdminMenu:
)
new_user.save()
LogService.create_log(State.CURRENT_USER.username, "Added system admin", f"System Admin: {new_user.username}", False)
input("Added new system admin! Press any key to return.")
@staticmethod
@ -118,6 +121,7 @@ class SystemAdminMenu:
user.phone = edit_form.get_value("PHONE")
user.update()
LogService.create_log(State.CURRENT_USER.username, "Updated system admin", f"System Admin: {user.username}", False)
input("Updated System Admin! Press any key to return.")
@staticmethod
@ -133,6 +137,7 @@ class SystemAdminMenu:
user.password = form.get_value("PASSWORD")
user.update()
LogService.create_log(State.CURRENT_USER.username, "Updated password system admin", f"System Admin: {user.username}", False)
input("Updated System Admin password! Press any key to return.")
@staticmethod
@ -145,6 +150,7 @@ class SystemAdminMenu:
if option == True:
user.delete()
LogService.create_log(State.CURRENT_USER.username, "Removed system admin", f"System Admin: {user.username}", False)
input("Deleted advisor! Press any key to return.")
@staticmethod