예제 #1
0
    def form_valid(self, form):
        mail = form.cleaned_data['email']
        ip = self.request.META['REMOTE_ADDR']

        user = User.objects.get(email=mail)
        model = PasswordRecovery(user=user,
                                 ip_addr=self.request.META['REMOTE_ADDR'])
        model.save()

        args = 'secret=%s&mail=%s' % (model.secret, mail)
        update_uri = reverse('password.update') + '?' + args
        absolute_update_uri = self.request.build_absolute_uri(update_uri)

        mailhelpers.utils.send_mail(settings.FORGOT_PASSWORD_MAIL_SUBJECT,
                                    [mail],
                                    settings.FORGOT_PASSWORD_MAIL_FROM,
                                    'mmm/password_recovery_mail.txt',
                                    'mmm/password_recovery_mail.html',
                                    params={
                                        'recovery': model,
                                        'update_uri': absolute_update_uri
                                    })
        return super(RecoverPasswordView, self).form_valid(form)