import MySQLdb
|
|
import member
|
|
import group
|
|
from exceptions import MemberNotFoundException
|
|
|
|
|
|
class Admidio:
|
|
"""Creates the Admidio Class"""
|
|
|
|
def __init__(self, mysql_host, mysql_user, mysql_pass, mysql_db):
|
|
self.db = MySQLdb.connect(
|
|
host=mysql_host, user=mysql_user, passwd=mysql_pass, db=mysql_db)
|
|
self.members = dict()
|
|
self.groups = dict()
|
|
self.userfields = None
|
|
self.initAll()
|
|
|
|
def __del__(self):
|
|
self.db.close()
|
|
|
|
def initAll(self):
|
|
"""initializes all Members and Groups"""
|
|
c = self.db.cursor()
|
|
# Initializing member. Get ID and Name for the user fields.
|
|
sql = "SELECT usf_id,usf_name_intern FROM `adm_user_fields`"
|
|
c.execute(sql)
|
|
self.userfields = dict(c.fetchall())
|
|
|
|
sql = """SELECT usr_id, usr_login_name, usr_password
|
|
FROM adm_users WHERE usr_valid = 1"""
|
|
c.execute(sql)
|
|
|
|
for row in c.fetchall():
|
|
self.members[row[0]] = member.Member(
|
|
self.db, row[0], row[1],
|
|
row[2], self.userfields, self)
|
|
print(self.members[row[0]])
|
|
|
|
sql = """SELECT rol_id, rol_name, rol_description FROM adm_roles
|
|
WHERE rol_visible=1 AND rol_valid=1"""
|
|
c.execute(sql)
|
|
for row in c.fetchall():
|
|
self.groups[row[0]] = group.Group(self.db, row[0], row[1], self)
|
|
|
|
def getMemberFromID(self, user_id):
|
|
"""
|
|
Returns Member object if user_id exists
|
|
otherwise throws MemberNotFoundException
|
|
"""
|
|
if user_id in self.members:
|
|
return self.members[user_id]
|
|
else:
|
|
raise MemberNotFoundException(
|
|
f"Member with id {user_id} not found")
|