Opened 5 years ago

Closed 5 years ago

#30499 closed New feature (invalid)

PasswordResetView should be allowed to set `domain_override`.

Reported by: Mattia Procopio Owned by: Mattia Procopio
Component: Uncategorized Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Actually if the domain of the link sent within the mail needs to be overridden, the view form_valid method should be replaced or the view should subclass an own instance of PasswordContextMixin.
I think allowing to inject a custom domain from urls.py would help with DRY in this case as the new domain can be passed when declaring PasswordResetView.as_view(domain_override="mynew.domain.com")

I am thinking of adding simply domain_override = None as new class attribute and adding it to opts:

class PasswordResetView(PasswordContextMixin, FormView):
    ...
    domain_override = None

    def form_valid(self, form):
        opts = {
            'use_https': self.request.is_secure(),
            'token_generator': self.token_generator,
            'from_email': self.from_email,
            'email_template_name': self.email_template_name,
            'subject_template_name': self.subject_template_name,
            'request': self.request,
            'html_email_template_name': self.html_email_template_name,
            'extra_email_context': self.extra_email_context,
            'domain_override': self.domain_override,
        }
        form.save(**opts)
        return super().form_valid(form)

Change History (4)

comment:1 by Mattia Procopio, 5 years ago

Owner: changed from nobody to Mattia Procopio
Status: newassigned

comment:2 by Carlton Gibson, 5 years ago

Triage Stage: UnreviewedAccepted

OK, yes, it seems a reasonable addition.

comment:3 by Mattia Procopio, 5 years ago

Has patch: set

comment:4 by Mariusz Felisiak, 5 years ago

Resolution: invalid
Status: assignedclosed
Summary: PasswordResetView should be allowed to set `domain_override`PasswordResetView should be allowed to set `domain_override`.

Mattia, Thanks for your work and sorry, but domain can be override easily with the current implementation, e.g.

views.PasswordResetView.as_view(extra_email_context={'domain': 'custom.example.com'}).

I think that providing an extra kwargs for that is pointless.

Note: See TracTickets for help on using tickets.
Back to Top