|
|
- 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 + self.members
|