12345678910111213141516171819202122232425262728293031323334353637383940 |
- from django.urls import reverse
- from .searchproviders import searchproviders
- def search_providers(request):
- allowed_providers = []
- try:
- if request.user_acl["can_search"]:
- allowed_providers = searchproviders.get_allowed_providers(request)
- except AttributeError:
- # is user has no acl_cache attribute, cease entire middleware
- # this is edge case that occurs when debug toolbar intercepts
- # the redirect response from logout page and runs context providers
- # with non-misago's anonymous user model that has no acl support
- return {}
- request.frontend_context["SEARCH_URL"] = reverse("misago:search")
- request.frontend_context["SEARCH_API"] = reverse("misago:api:search")
- request.frontend_context["SEARCH_PROVIDERS"] = []
- for provider in allowed_providers:
- request.frontend_context["SEARCH_PROVIDERS"].append(
- {
- "id": provider.url,
- "name": str(provider.name),
- "icon": provider.icon,
- "url": reverse(
- "misago:search", kwargs={"search_provider": provider.url}
- ),
- "api": reverse(
- "misago:api:search", kwargs={"search_provider": provider.url}
- ),
- "results": None,
- "time": None,
- }
- )
- return {}
|