|
|
- from .exceptions import MemberNotFoundException
- import hashlib
-
-
- class Group:
- def __init__(self, group_id, name, admidio):
- self.__c = admidio.db.cursor()
- self.id = group_id
- self.name = name
- self.admidio = admidio
- self.members = list()
- self.leaders = list()
- sql = f"""SELECT mem_usr_id, mem_leader
- FROM {self.admidio.prefix}_members
- WHERE mem_rol_id = {self.id}
- AND mem_end = '9999-12-31'"""
- self.__c.execute(sql)
-
- for row in self.__c.fetchall():
- try:
- if row[1] == 1:
- self.leaders.append(admidio.getMemberFromID(row[0]))
- else:
- self.members.append(admidio.getMemberFromID(row[0]))
- except MemberNotFoundException:
- print(
- f"Member with id {row[0]} not found, group id: {self.id}")
-
- def __eq__(self, other):
- if isinstance(other, Group):
- return self.hash() == other.hash()
-
- def hash(self):
- return hashlib.md5((str(self.id) + self.name
- + (''.join(str(x) for x in self.members) or '')
- + (''.join(str(x) for x in self.leaders) or '')
- ).encode('utf-8')).hexdigest()
-
- def getAllMembers(self):
- """Return leaders and members in group, combined"""
- return self.leaders.append(self.members)
|