Skip to content

Commit 3b1957e

Browse files
authored
Proxito: use unresolved domain on page redirect view (#10032)
1 parent 28d1ea3 commit 3b1957e

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

readthedocs/proxito/views/serve.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import structlog
66
from django.conf import settings
77
from django.http import Http404, HttpResponse, HttpResponseRedirect
8-
from django.shortcuts import render
8+
from django.shortcuts import get_object_or_404, render
99
from django.urls import resolve as url_resolve
1010
from django.utils.decorators import method_decorator
1111
from django.views import View
@@ -36,38 +36,38 @@
3636

3737

3838
class ServePageRedirect(CDNCacheControlMixin, ServeRedirectMixin, ServeDocsMixin, View):
39+
def get(self, request, subproject_slug=None, filename=""):
3940

40-
def get(self,
41-
request,
42-
project_slug=None,
43-
subproject_slug=None,
44-
version_slug=None,
45-
filename='',
46-
): # noqa
41+
unresolved_domain = request.unresolved_domain
42+
project = unresolved_domain.project
4743

48-
version_slug = self.get_version_from_host(request, version_slug)
49-
final_project, lang_slug, version_slug, filename = _get_project_data_from_request( # noqa
50-
request,
51-
project_slug=project_slug,
52-
subproject_slug=subproject_slug,
53-
lang_slug=None,
54-
version_slug=version_slug,
55-
filename=filename,
56-
)
44+
# Use the project from the domain, or use the subproject slug.
45+
if subproject_slug:
46+
project = get_object_or_404(
47+
project.subprojects, alias=subproject_slug
48+
).child
5749

58-
if self._is_cache_enabled(final_project):
50+
# Get the default version from the current project,
51+
# or the version from the external domain.
52+
if unresolved_domain.is_from_external_domain:
53+
version_slug = unresolved_domain.external_version_slug
54+
else:
55+
version_slug = project.get_default_version()
56+
57+
if self._is_cache_enabled(project):
5958
# All requests from this view can be cached.
6059
# This is since the final URL will check for authz.
6160
self.cache_request = True
6261

63-
is_external = request.unresolved_domain.is_from_external_domain
62+
# TODO: find a better way to pass this to the middleware.
63+
request.path_project_slug = project.slug
6464

6565
return self.system_redirect(
6666
request=request,
67-
final_project=final_project,
67+
final_project=project,
6868
version_slug=version_slug,
6969
filename=filename,
70-
is_external_version=is_external,
70+
is_external_version=unresolved_domain.is_from_external_domain,
7171
)
7272

7373

0 commit comments

Comments
 (0)