setupnewuser.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from .audittrail import create_user_audit_trail
  2. from .avatars import set_default_avatar, set_default_avatar_from_url
  3. from .models import User
  4. def setup_new_user(settings, user, *, avatar_url=None):
  5. set_default_subscription_options(settings, user)
  6. if avatar_url:
  7. set_default_avatar_from_url(user, avatar_url)
  8. else:
  9. set_default_avatar(
  10. user, settings.default_avatar, settings.default_gravatar_fallback
  11. )
  12. if user.joined_from_ip:
  13. create_user_audit_trail(user, user.joined_from_ip, user)
  14. SUBSCRIPTION_CHOICES = {
  15. "no": User.SUBSCRIPTION_NONE,
  16. "watch": User.SUBSCRIPTION_NOTIFY,
  17. "watch_email": User.SUBSCRIPTION_ALL,
  18. }
  19. def set_default_subscription_options(settings, user):
  20. started_threads = SUBSCRIPTION_CHOICES[settings.subscribe_start]
  21. user.subscribe_to_started_threads = started_threads
  22. replied_threads = SUBSCRIPTION_CHOICES[settings.subscribe_reply]
  23. user.subscribe_to_replied_threads = replied_threads
  24. user.save(
  25. update_fields=["subscribe_to_replied_threads", "subscribe_to_replied_threads"]
  26. )