Skip to content

Commit

Permalink
refactor: Improve next URL handling
Browse files Browse the repository at this point in the history
  • Loading branch information
pennersr committed Apr 12, 2024
1 parent c2900f6 commit 4034cb4
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 28 deletions.
23 changes: 5 additions & 18 deletions allauth/account/views.py
Expand Up @@ -822,7 +822,7 @@ def form_valid(self, form):
reauthenticate = ReauthenticateView.as_view()


class RequestLoginCodeView(RedirectAuthenticatedUserMixin, FormView):
class RequestLoginCodeView(RedirectAuthenticatedUserMixin, NextRedirectMixin, FormView):
form_class = RequestLoginCodeForm
template_name = "account/request_login_code." + app_settings.TEMPLATE_EXTENSION

Expand All @@ -841,29 +841,20 @@ def get_success_url(self):
if self.request.user.is_authenticated:
return None
url = reverse_lazy("account_confirm_login_code")
url = passthrough_next_redirect_url(
self.request, reverse("account_confirm_login_code"), REDIRECT_FIELD_NAME
)
url = self.passthrough_next_url(reverse("account_confirm_login_code"))
return url

def get_context_data(self, **kwargs):
ret = super().get_context_data(**kwargs)
redirect_field_value = get_request_param(self.request, REDIRECT_FIELD_NAME)
site = get_current_site(self.request)
ret.update(
{
"site": site,
"redirect_field_name": REDIRECT_FIELD_NAME,
"redirect_field_value": redirect_field_value,
}
)
ret.update({"site": site})
return ret


request_login_code = RequestLoginCodeView.as_view()


class ConfirmLoginCodeView(RedirectAuthenticatedUserMixin, FormView):
class ConfirmLoginCodeView(RedirectAuthenticatedUserMixin, NextRedirectMixin, FormView):
form_class = ConfirmLoginCodeForm
template_name = "account/confirm_login_code." + app_settings.TEMPLATE_EXTENSION

Expand All @@ -885,7 +876,7 @@ def get_form_kwargs(self):
return kwargs

def form_valid(self, form):
redirect_url = get_next_redirect_url(self.request)
redirect_url = self.get_next_url()
return flows.login_by_code.perform_login_by_code(
self.request, self.user, redirect_url, self.pending_login
)
Expand All @@ -906,15 +897,11 @@ def form_invalid(self, form):

def get_context_data(self, **kwargs):
ret = super().get_context_data(**kwargs)
redirect_field_value = get_request_param(self.request, REDIRECT_FIELD_NAME)
site = get_current_site(self.request)

ret.update(
{
"site": site,
"email": self.pending_login["email"],
"redirect_field_name": REDIRECT_FIELD_NAME,
"redirect_field_value": redirect_field_value,
}
)
return ret
Expand Down
6 changes: 1 addition & 5 deletions allauth/templates/account/confirm_login_code.html
Expand Up @@ -21,11 +21,7 @@
{% csrf_token %}
{% element fields form=form unlabeled=True %}
{% endelement %}
{% if redirect_field_value %}
<input type="hidden"
name="{{ redirect_field_name }}"
value="{{ redirect_field_value }}" />
{% endif %}
{{ redirect_field }}
{% endslot %}
{% slot actions %}
{% element button type="submit" tags="prominent,login" %}
Expand Down
6 changes: 1 addition & 5 deletions allauth/templates/account/request_login_code.html
Expand Up @@ -17,11 +17,7 @@
{% csrf_token %}
{% element fields form=form unlabeled=True %}
{% endelement %}
{% if redirect_field_value %}
<input type="hidden"
name="{{ redirect_field_name }}"
value="{{ redirect_field_value }}" />
{% endif %}
{{ redirect_field }}
{% endslot %}
{% slot actions %}
{% element button type="submit" tags="prominent,login" %}
Expand Down

0 comments on commit 4034cb4

Please sign in to comment.