Files
pyqcrm/lib/DB/UserManager.py
2024-12-03 16:30:56 +01:00

64 lines
1.7 KiB
Python

from .DbManager import DbManager
from ..PyqcrmFlags import PyqcrmFlags
from ..Vermasseln import Vermasseln
import mariadb
from .UserDAO import UserDAO
from PySide6.QtCore import Slot, QObject, Signal
class UserManager(QObject):
loginOkay = Signal()
def __init__(self, user_config = None, role = None):
super().__init__()
self.__con = DbManager().getConnection()
self.__cur = self.__con.cursor()
if user_config and role:
self.__username = user_config["PYQCRM_USER"]
self.__password = user_config["PYQCRM_USER_PASS"]
self.__info = user_config["PYQCRM_USER_INFO"]
self.__role = role if role == PyqcrmFlags.ADMIN else 0
def createUser(self):
self.__hashPassword()
user_created = UserDAO().createUser(self.__username, self.__password, self.__info, self.__role)
return user_created
def __hashPassword(self):
self.__password = Vermasseln.userPasswordHash(self.__password)
def getUser(self):
self.__closeConnection()
def getUsers(self):
self.__closeConnection()
def delUser(self):
self.__closeConnection()
def updateUser(self):
self.__closeConnection()
def disableUser(self):
self.__closeConnection()
@Slot(str, str)
def login(self, username, password):
user = UserDAO().getUser(username)
if user:
self.__checkPassword(password, user[2])
def __checkPassword(self, password, hash_password):
pwList = hash_password.split("$")
hash_Pw = Vermasseln.userPasswordHash(password, pwList[0])
if hash_password == hash_Pw:
self.loginOkay.emit()