registration.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.utils.translation import gettext as _
  2. from misago.core.mail import mail_user
  3. from misago.legal.models import Agreement
  4. from misago.legal.utils import save_user_agreement_acceptance
  5. from misago.users.tokens import make_activation_token
  6. def send_welcome_email(request, user):
  7. settings = request.settings
  8. mail_subject = _("Welcome on %(forum_name)s forums!")
  9. mail_subject = mail_subject % {'forum_name': settings.forum_name}
  10. if not user.requires_activation:
  11. mail_user(
  12. user,
  13. mail_subject,
  14. 'misago/emails/register/complete',
  15. context={"settings": settings},
  16. )
  17. return
  18. activation_token = make_activation_token(user)
  19. activation_by_admin = user.requires_activation_by_admin
  20. activation_by_user = user.requires_activation_by_user
  21. mail_user(
  22. user,
  23. mail_subject,
  24. 'misago/emails/register/inactive',
  25. context={
  26. 'activation_token': activation_token,
  27. 'activation_by_admin': activation_by_admin,
  28. 'activation_by_user': activation_by_user,
  29. 'settings': settings,
  30. }
  31. )
  32. def save_user_agreements(user, form):
  33. if not form.agreements:
  34. return
  35. for field_name in form.agreements.keys():
  36. agreement_id = form.cleaned_data[field_name]
  37. agreement = Agreement.objects.get(id=agreement_id)
  38. save_user_agreement_acceptance(user, agreement)
  39. user.save(update_fields=['agreements'])
  40. def get_registration_result_json(user):
  41. activation_method = 'active'
  42. if user.requires_activation_by_admin:
  43. activation_method = 'admin'
  44. elif user.requires_activation_by_user:
  45. activation_method = 'user'
  46. return {
  47. 'activation': activation_method,
  48. 'email': user.email,
  49. 'username': user.username,
  50. }