OpoTests/Python/Managers/UsersManager.py

55 lines
1.4 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from Interfaces.OpoTestsInterface import OpoTestsInterface
from typing import Self
from Models.UserModel import UserModel
class UsersManager:
def __init__(self:Self, op:OpoTestsInterface) -> None:
self.op:OpoTestsInterface = op
self.__users:list[UserModel] = []
def start(self:Self) -> None:
pass
def update(self:Self) -> None:
pass
def empty(self:Self) -> None:
self.__users = []
def add(self:Self, inputs:dict[str, str]|list|tuple|str, overwrite:bool = False) -> None:
users:dict[str, str]
for users in self.op.load_json_data(inputs):
nick:str
password:str
for nick, password in users.items():
i:int
user:UserModel
allowed:bool = True
for i, user in enumerate(self.__users):
if user.name == nick:
if overwrite:
self.__users[i] = UserModel(nick, password)
allowed = False
break
if allowed:
self.__users += [UserModel(nick, password)]
def validate(self:Self, nick:str, password:str) -> bool:
user:UserModel
for user in self.__users:
if user.name == nick and user.password == password:
return True
return False