28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
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 |