registration.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.utils.translation import gettext as _
  2. from ..core.mail import mail_user
  3. from ..legal.models import Agreement
  4. from ..legal.utils import save_user_agreement_acceptance
  5. from .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. }