Exemple #1
0
    def reset_password(self, request, queryset, template="password_reset"):
        domain_override = request.META.get("HTTP_HOST")
        use_https = request.environ.get("wsgi.url_scheme",
                                        "https").lower() == "https"
        users = []

        body = f"registration/{template}_email.html"
        subject = f"registration/{template}_subject.txt"

        for user in queryset:
            form = PasswordResetForm({'email': user.email})
            form.full_clean()
            form.save(
                domain_override=domain_override,
                use_https=use_https,
                email_template_name=body,
                subject_template_name=subject,
            )
            users.append(user.username)
        if len(users) > 10:
            self.message_user(request,
                              _("Email sent to %d users for password reset") %
                              len(users),
                              level=messages.SUCCESS)
        else:
            self.message_user(request,
                              _("Email sent to %s for password reset") %
                              ", ".join(users),
                              level=messages.SUCCESS)
Exemple #2
0
    def obj_create(self, bundle, **kwargs):
        """Custom user creation that sends a password reset email."""
        value = super(UserResource, self).obj_create(bundle, **kwargs)

        # Send the password reset email so the user can set its own password.
        from django.contrib.auth.forms import PasswordResetForm
        from django.conf import settings

        form = PasswordResetForm({'email': bundle.obj.email})
        form.full_clean()
        tpl = "account/password_reset_email_for_api_user_creation.html"
        form.save(email_template_name=tpl,
                  from_email=settings.DEFAULT_FROM_EMAIL)

        return value
Exemple #3
0
 def obj_create(self, bundle, **kwargs):
     password_form = PasswordResetForm(data=bundle.data)
     password_form.full_clean()
     password_form.save()