64 lines
1.7 KiB
Python
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()
|
|
|