registration.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from django.utils.translation import ugettext as _
  2. from misago.conf import settings
  3. from misago.core.mail import mail_user
  4. from misago.legal.models import Agreement
  5. from misago.legal.utils import save_user_agreement_acceptance
  6. from misago.users.tokens import make_activation_token
  7. def send_welcome_email(request, user):
  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(user, mail_subject, 'misago/emails/register/complete')
  12. return
  13. activation_token = make_activation_token(user)
  14. activation_by_admin = user.requires_activation_by_admin
  15. activation_by_user = user.requires_activation_by_user
  16. mail_user(
  17. user,
  18. mail_subject,
  19. 'misago/emails/register/inactive',
  20. context={
  21. 'activation_token': activation_token,
  22. 'activation_by_admin': activation_by_admin,
  23. 'activation_by_user': activation_by_user,
  24. }
  25. )
  26. def save_user_agreements(user, form):
  27. if not form.agreements:
  28. return
  29. for field_name in form.agreements.keys():
  30. agreement_id = form.cleaned_data[field_name]
  31. agreement = Agreement.objects.get(id=agreement_id)
  32. save_user_agreement_acceptance(user, agreement)
  33. user.save(update_fields=['agreements'])
  34. def get_registration_result_json(user):
  35. activation_method = 'active'
  36. if user.requires_activation_by_admin:
  37. activation_method = 'admin'
  38. elif user.requires_activation_by_user:
  39. activation_method = 'user'
  40. return {
  41. 'activation': activation_method,
  42. 'email': user.email,
  43. 'username': user.username,
  44. }