55 lines
1.4 KiB
Python
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 |