functions.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import smtplib
  2. from email.message import EmailMessage
  3. from data.roles import Roles
  4. from data.users import User
  5. from data.staff_projects import StaffProjects
  6. from data import db_session
  7. def check_password(password=''):
  8. smb = 'qwertyuiopasdfghjklzxcvbnm'
  9. if len(password) < 6:
  10. return 'Пароль должен быть длиннее 6 символов'
  11. elif False in [True if i.isalpha() and i.lower() in smb or i.isdigit() else False for i in password]:
  12. return 'Пароль может содержать только буквы латинского алфавита и цифры'
  13. elif True not in [True if i.isdigit() else False for i in password]:
  14. return 'Пароль должен содержать буквы разного регистра и цифры'
  15. elif False not in [True if i.islower() and i.isalpha() else False for i in password]:
  16. return 'Пароль должен содержать буквы разного регистра и цифры'
  17. else:
  18. return 'OK'
  19. def mail(msg, to, topic='Подтверждение почты'):
  20. file = open('mail.incepted', 'r', encoding='utf-8').readline().split()
  21. login, password = file[0], file[1]
  22. email_server = "smtp.yandex.ru"
  23. sender = "incepted@yandex.ru"
  24. em = EmailMessage()
  25. em.set_content(msg)
  26. em['To'] = to
  27. em['From'] = sender
  28. em['Subject'] = topic
  29. mailServer = smtplib.SMTP(email_server)
  30. mailServer.set_debuglevel(1)
  31. mailServer.ehlo()
  32. mailServer.starttls()
  33. mailServer.ehlo()
  34. mailServer.login(login, password)
  35. mailServer.ehlo()
  36. mailServer.send_message(em)
  37. mailServer.quit()
  38. def init_db_default():
  39. data_session = db_session.create_session()
  40. roles = [['admin', 2], ['moderator', 1], ['user', 0]]
  41. for i in roles:
  42. role = Roles(
  43. name=i[0],
  44. rights=i[1]
  45. )
  46. data_session.add(role)
  47. data_session.commit()
  48. data_session.close()
  49. def get_user_data(user):
  50. resp = {
  51. 'name': user.name,
  52. 'surname': user.surname,
  53. 'login': user.login,
  54. 'email': user.email,
  55. 'photo': user.photo,
  56. 'role': user.role
  57. }
  58. return resp
  59. def get_projects_data(project):
  60. data_session = db_session.create_session()
  61. resp = {
  62. 'id': project.id,
  63. 'name': project.name,
  64. 'logo': project.photo,
  65. 'description': project.description,
  66. 'staff': list(map(lambda x: get_user_data(x), data_session.query(User).filter(
  67. User.id.in_(*data_session.query(StaffProjects.user).filter(StaffProjects.id == project.id).all())).all()))
  68. }
  69. return resp