context_processors.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from django.urls import reverse
  2. from .pages import user_profile, usercp, users_list
  3. from .serializers import AnonymousUserSerializer, AuthenticatedUserSerializer
  4. def user_links(request):
  5. if request.include_frontend_context:
  6. request.frontend_context.update(
  7. {
  8. "REQUEST_ACTIVATION_URL": reverse("misago:request-activation"),
  9. "FORGOTTEN_PASSWORD_URL": reverse("misago:forgotten-password"),
  10. "BANNED_URL": reverse("misago:banned"),
  11. "USERCP_URL": reverse("misago:options"),
  12. "USERS_LIST_URL": reverse("misago:users"),
  13. "AUTH_API": reverse("misago:api:auth"),
  14. "AUTH_CRITERIA_API": reverse("misago:api:auth-criteria"),
  15. "USERS_API": reverse("misago:api:user-list"),
  16. "CAPTCHA_API": reverse("misago:api:captcha-question"),
  17. "USERNAME_CHANGES_API": reverse("misago:api:usernamechange-list"),
  18. "MENTION_API": reverse("misago:api:mention-suggestions"),
  19. }
  20. )
  21. return {
  22. "USERCP_URL": usercp.get_default_link(),
  23. "USERS_LIST_URL": users_list.get_default_link(),
  24. "USER_PROFILE_URL": user_profile.get_default_link(),
  25. }
  26. def preload_user_json(request):
  27. if not request.include_frontend_context:
  28. return {}
  29. request.frontend_context.update(
  30. {"isAuthenticated": bool(request.user.is_authenticated)}
  31. )
  32. if request.user.is_authenticated:
  33. serializer = AuthenticatedUserSerializer
  34. else:
  35. serializer = AnonymousUserSerializer
  36. serialized_user = serializer(request.user, context={"acl": request.user_acl}).data
  37. request.frontend_context.update({"user": serialized_user})
  38. return {}