The objective of this interface is the ability to get data from an Admidio installation and use them in python. Currently Users, groups and events are integrated
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.3 KiB

6 years ago
6 years ago
  1. import pprint
  2. class Member():
  3. """Member class for admidio, here all member data will be stored."""
  4. def __init__(self, db, user_id, username, password, userfields, admidio):
  5. self.__c = db.cursor()
  6. self.user_id = user_id
  7. self.username = username
  8. self.password = password
  9. self.userdata = dict()
  10. self.admidio = admidio
  11. sql = f"""SELECT usd_usf_id, usd_value
  12. FROM {self.admidio.prefix}_user_data
  13. WHERE usd_usr_id = {self.user_id!s}"""
  14. self.__c.execute(sql)
  15. for row in self.__c.fetchall():
  16. # makes dict with {usf_name_intern:usd_value}
  17. self.userdata[userfields[row[0]]] = row[1]
  18. def __hash__(self):
  19. """Not sure if needed"""
  20. return hash((self.user_id, self.username))
  21. def __str__(self):
  22. return (f"""Userid: {self.user_id}, Username: {self.username}, """
  23. f"""Userdata: {pprint.pformat(self.userdata)}""")
  24. """@property
  25. def email(self):
  26. return self.userdata['EMAIL']
  27. @property
  28. def firstName(self):
  29. return self.userdata['FIRST_NAME']
  30. @property
  31. def lastName(self):
  32. return self.userdata['LAST_NAME']
  33. @property
  34. def username(self):
  35. self.username
  36. @property
  37. def password(self):
  38. return self.password"""