import pprint import hashlib class Member(): """Member class for admidio, here all member data will be stored.""" def __init__(self, db, user_id, username, password, userfields, admidio): self.__c = db.cursor() self.user_id = user_id self.username = username self.password = password self.userdata = dict() self.admidio = admidio sql = f"""SELECT usd_usf_id, usd_value FROM {self.admidio.prefix}_user_data WHERE usd_usr_id = {self.user_id!s}""" self.__c.execute(sql) for row in self.__c.fetchall(): # makes dict with {usf_name_intern:usd_value} self.userdata[userfields[row[0]]] = row[1] def __eq__(self, other): if isinstance(other, Member): return self.hash() == other.hash() def hash(self): if self.password: return hashlib.md5((str(self.user_id) + self.username + self.password + str(self.userdata) ).encode('utf-8')).hexdigest() else: return hashlib.md5((str(self.user_id) + self.username + str(self.userdata) ).encode('utf-8')).hexdigest() def __str__(self): return (f"""Userid: {self.user_id}, Username: {self.username}, """ f"""Userdata: {pprint.pformat(self.userdata)}""") """@property def email(self): return self.userdata['EMAIL'] @property def firstName(self): return self.userdata['FIRST_NAME'] @property def lastName(self): return self.userdata['LAST_NAME'] @property def username(self): self.username @property def password(self): return self.password"""