mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 19:24:23 +00:00
126 lines
4.1 KiB
Python
126 lines
4.1 KiB
Python
from typing import Union
|
|
from core.base import Base
|
|
import core.definition as df
|
|
|
|
class Admin:
|
|
|
|
UID_ADMIN_DB: list[df.MAdmin] = []
|
|
|
|
def __init__(self, baseObj: Base) -> None:
|
|
self.Logs = baseObj.logs
|
|
pass
|
|
|
|
def insert(self, newAdmin: df.MAdmin) -> bool:
|
|
|
|
result = False
|
|
exist = False
|
|
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.uid == newAdmin.uid:
|
|
# If the admin exist then return False and do not go further
|
|
exist = True
|
|
self.Logs.debug(f'{record.uid} already exist')
|
|
return result
|
|
|
|
if not exist:
|
|
self.UID_ADMIN_DB.append(newAdmin)
|
|
result = True
|
|
self.Logs.debug(f'UID ({newAdmin.uid}) has been created')
|
|
|
|
if not result:
|
|
self.Logs.critical(f'The User Object was not inserted {newAdmin}')
|
|
|
|
return result
|
|
|
|
def update_nickname(self, uid: str, newNickname: str) -> bool:
|
|
|
|
result = False
|
|
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.uid == uid:
|
|
# If the admin exist, update and do not go further
|
|
record.nickname = newNickname
|
|
result = True
|
|
self.Logs.debug(f'UID ({record.uid}) has been updated with new nickname {newNickname}')
|
|
return result
|
|
|
|
if not result:
|
|
self.Logs.debug(f'The new nickname {newNickname} was not updated, uid = {uid} - The Client is not an admin')
|
|
|
|
return result
|
|
|
|
def update_level(self, nickname: str, newLevel: int) -> bool:
|
|
|
|
result = False
|
|
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.nickname == nickname:
|
|
# If the admin exist, update and do not go further
|
|
record.level = newLevel
|
|
result = True
|
|
self.Logs.debug(f'Admin ({record.nickname}) has been updated with new level {newLevel}')
|
|
return result
|
|
|
|
if not result:
|
|
self.Logs.debug(f'The new level {newLevel} was not updated, nickname = {nickname} - The Client is not an admin')
|
|
|
|
return result
|
|
|
|
def delete(self, uidornickname: str) -> bool:
|
|
|
|
result = False
|
|
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.uid == uidornickname:
|
|
# If the admin exist, delete and do not go further
|
|
self.UID_ADMIN_DB.remove(record)
|
|
result = True
|
|
self.Logs.debug(f'UID ({record.uid}) has been deleted')
|
|
return result
|
|
if record.nickname == uidornickname:
|
|
# If the admin exist, delete and do not go further
|
|
self.UID_ADMIN_DB.remove(record)
|
|
result = True
|
|
self.Logs.debug(f'nickname ({record.nickname}) has been deleted')
|
|
return result
|
|
|
|
if not result:
|
|
self.Logs.critical(f'The UID {uidornickname} was not deleted')
|
|
|
|
return result
|
|
|
|
def get_Admin(self, uidornickname: str) -> Union[df.MAdmin, None]:
|
|
|
|
Admin = None
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.uid == uidornickname:
|
|
Admin = record
|
|
elif record.nickname == uidornickname:
|
|
Admin = record
|
|
|
|
#self.Logs.debug(f'Search {uidornickname} -- result = {Admin}')
|
|
|
|
return Admin
|
|
|
|
def get_uid(self, uidornickname:str) -> Union[str, None]:
|
|
|
|
uid = None
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.uid == uidornickname:
|
|
uid = record.uid
|
|
if record.nickname == uidornickname:
|
|
uid = record.uid
|
|
|
|
self.Logs.debug(f'The UID that you are looking for {uidornickname} has been found {uid}')
|
|
return uid
|
|
|
|
def get_nickname(self, uidornickname:str) -> Union[str, None]:
|
|
|
|
nickname = None
|
|
for record in self.UID_ADMIN_DB:
|
|
if record.nickname == uidornickname:
|
|
nickname = record.nickname
|
|
if record.uid == uidornickname:
|
|
nickname = record.nickname
|
|
self.Logs.debug(f'The value {uidornickname} -- {nickname}')
|
|
return nickname |