added logging system
This commit is contained in:
parent
6398dcdf1b
commit
8a09d27bf4
@ -1,13 +1,28 @@
|
|||||||
from models.database import Database
|
from models.database import Database
|
||||||
from models.user import User
|
from models.user import User
|
||||||
|
from services.log import LogService
|
||||||
|
|
||||||
class Auth:
|
class Auth:
|
||||||
|
failed_attempts = 0
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
def check_auth(username, password):
|
def check_auth(username, password):
|
||||||
if username == "superadmin" and password == "Admin321!":
|
if username == "superadmin" and password == "Admin321!":
|
||||||
su_user = User(None, -1, "superadmin", "", "", "", "", "", "", "", "", "SUPER_ADMIN")
|
su_user = User(None, -1, "superadmin", "", "", "", "", "", "", "", "", "SUPER_ADMIN")
|
||||||
|
LogService.create_log(username, "Logged in", "", False)
|
||||||
|
Auth.failed_attempts = 0
|
||||||
return su_user
|
return su_user
|
||||||
|
|
||||||
user = User(Database.connection, None, username)
|
user = User(Database.connection, None, username)
|
||||||
if user.load_by_username() and user.password == password:
|
if user.load_by_username() and user.password == password:
|
||||||
|
LogService.create_log(username, "Logged in", "", False)
|
||||||
|
Auth.failed_attempts = 0
|
||||||
return user
|
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
|
return None
|
@ -1,4 +1,3 @@
|
|||||||
from ast import Import
|
|
||||||
from models.user import User
|
from models.user import User
|
||||||
|
|
||||||
class State:
|
class State:
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
from models.database import Database
|
from models.database import Database
|
||||||
from models.user import User
|
from models.user import User
|
||||||
|
from services.state import State
|
||||||
|
from services.log import LogService
|
||||||
from services.search import Search
|
from services.search import Search
|
||||||
from ui.input_menu import InputMenu, Validator
|
from ui.input_menu import InputMenu, Validator
|
||||||
from ui.selection_menu import SelectionMenu
|
from ui.selection_menu import SelectionMenu
|
||||||
@ -83,6 +85,7 @@ class AdvisorMenu:
|
|||||||
)
|
)
|
||||||
|
|
||||||
new_user.save()
|
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.")
|
input("Added new Advisor! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -114,6 +117,7 @@ class AdvisorMenu:
|
|||||||
user.phone = edit_form.get_value("PHONE")
|
user.phone = edit_form.get_value("PHONE")
|
||||||
|
|
||||||
user.update()
|
user.update()
|
||||||
|
LogService.create_log(State.CURRENT_USER.username, "Updated advisor", f"Advisor: {user.username}", True)
|
||||||
input("Updated Advisor! Press any key to return.")
|
input("Updated Advisor! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -129,6 +133,7 @@ class AdvisorMenu:
|
|||||||
user.password = form.get_value("PASSWORD")
|
user.password = form.get_value("PASSWORD")
|
||||||
user.update()
|
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.")
|
input("Updated Advisor Password! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -144,6 +149,7 @@ class AdvisorMenu:
|
|||||||
|
|
||||||
if option == True:
|
if option == True:
|
||||||
user.delete()
|
user.delete()
|
||||||
|
LogService.create_log(State.CURRENT_USER.username, "Deleted advisor", f"Advisor: {user.username}", True)
|
||||||
input("Deleted Advisor! Press any key to return.")
|
input("Deleted Advisor! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -23,11 +23,12 @@ class MainMenu:
|
|||||||
|
|
||||||
if State.CURRENT_USER.role == "SYSTEM_ADMIN" or State.CURRENT_USER.role == "SUPER_ADMIN":
|
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("Manage Advisors", MainMenu.manage_advisors)
|
||||||
|
main_menu.add_option("View logs", MainMenu.check_logs)
|
||||||
|
|
||||||
if State.CURRENT_USER.role == "SUPER_ADMIN":
|
if State.CURRENT_USER.role == "SUPER_ADMIN":
|
||||||
main_menu.add_option("Manage Admins", MainMenu.manage_admins)
|
main_menu.add_option("Manage Admins", MainMenu.manage_admins)
|
||||||
main_menu.add_option("Manage Backups", MainMenu.manage_backups)
|
main_menu.add_option("Manage Backups", MainMenu.manage_backups)
|
||||||
|
|
||||||
main_menu.add_option("Exit...", None)
|
main_menu.add_option("Exit...", None)
|
||||||
|
|
||||||
selected_option = main_menu.display().input_option()
|
selected_option = main_menu.display().input_option()
|
||||||
@ -128,19 +129,14 @@ class MainMenu:
|
|||||||
def check_logs():
|
def check_logs():
|
||||||
Utils.clear_screen()
|
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()
|
logs = LogService.get_latest_logs()
|
||||||
print("==================================================================")
|
|
||||||
print("| id | Date | Time | Description Activity | Addition Information | Suspicious |")
|
|
||||||
for log in logs:
|
for log in logs:
|
||||||
print(f"{log.id} | {log.date} | {log.time} | {log.description} | {log.additional_information} | {log.suspicious}")
|
print(f"/--[ {log.id} ]---------")
|
||||||
print("==================================================================")
|
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.")
|
input("Press any key to continue.")
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
from models.database import Database
|
from models.database import Database
|
||||||
from models.user import User
|
from models.user import User
|
||||||
|
from services.state import State
|
||||||
|
from services.log import LogService
|
||||||
from services.search import Search
|
from services.search import Search
|
||||||
from ui.input_menu import InputMenu, Validator
|
from ui.input_menu import InputMenu, Validator
|
||||||
from ui.selection_menu import SelectionMenu
|
from ui.selection_menu import SelectionMenu
|
||||||
@ -82,6 +84,7 @@ class MemberMenu:
|
|||||||
)
|
)
|
||||||
|
|
||||||
new_user.save()
|
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.")
|
input("Added new Member! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -112,6 +115,7 @@ class MemberMenu:
|
|||||||
user.phone = edit_form.get_value("PHONE")
|
user.phone = edit_form.get_value("PHONE")
|
||||||
|
|
||||||
user.update()
|
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.")
|
input("Updated Member! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -124,6 +128,7 @@ class MemberMenu:
|
|||||||
|
|
||||||
if option == True:
|
if option == True:
|
||||||
user.delete()
|
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.")
|
input("Deleted Member! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
|
||||||
from models.database import Database
|
from models.database import Database
|
||||||
from models.user import User
|
from models.user import User
|
||||||
|
from services.state import State
|
||||||
|
from services.log import LogService
|
||||||
from services.search import Search
|
from services.search import Search
|
||||||
from ui.input_menu import InputMenu, Validator
|
from ui.input_menu import InputMenu, Validator
|
||||||
from ui.selection_menu import SelectionMenu
|
from ui.selection_menu import SelectionMenu
|
||||||
@ -83,6 +85,7 @@ class SystemAdminMenu:
|
|||||||
)
|
)
|
||||||
|
|
||||||
new_user.save()
|
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.")
|
input("Added new system admin! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -118,6 +121,7 @@ class SystemAdminMenu:
|
|||||||
user.phone = edit_form.get_value("PHONE")
|
user.phone = edit_form.get_value("PHONE")
|
||||||
|
|
||||||
user.update()
|
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.")
|
input("Updated System Admin! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -133,6 +137,7 @@ class SystemAdminMenu:
|
|||||||
user.password = form.get_value("PASSWORD")
|
user.password = form.get_value("PASSWORD")
|
||||||
user.update()
|
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.")
|
input("Updated System Admin password! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@ -145,6 +150,7 @@ class SystemAdminMenu:
|
|||||||
|
|
||||||
if option == True:
|
if option == True:
|
||||||
user.delete()
|
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.")
|
input("Deleted advisor! Press any key to return.")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user