Ejemplo n.º 1
0
 def save(self, **kwargs):
     
     email = self.cleaned_data["email"]
     token_generator = kwargs.get("token_generator", default_token_generator)
     
     for user in User.objects.filter(email__iexact=email):
         
         temp_key = token_generator.make_token(user)
         
         # save it to the password reset model
         password_reset = PasswordReset(user=user, temp_key=temp_key)
         password_reset.save()
         
         current_site = Site.objects.get_current()
         domain = unicode(current_site.domain)
         
         # send the password reset email
         subject = _("Password reset email sent")
         message = render_to_string("account/password_reset_key_message.txt", {
             "user": user,
             "uid": int_to_base36(user.id),
             "temp_key": temp_key,
             "domain": domain,
         })
         send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [user.email])
     return self.cleaned_data["email"]
Ejemplo n.º 2
0
    def save(self, **kwargs):

        email = self.cleaned_data["email"]
        token_generator = kwargs.get("token_generator",
                                     default_token_generator)

        for user in User.objects.filter(email__iexact=email):

            temp_key = token_generator.make_token(user)

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()

            current_site = Site.objects.get_current()
            domain = unicode(current_site.domain)

            # send the password reset email
            subject = _("Password reset e-mail sent")
            message = render_to_string(
                "account/password_reset_key_message.txt", {
                    "user": user,
                    "uid": int_to_base36(user.id),
                    "temp_key": temp_key,
                    "domain": domain,
                })
            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
                      [user.email])
        return self.cleaned_data["email"]
Ejemplo n.º 3
0
    def save(self):
        for user in User.objects.filter(
                email__iexact=self.cleaned_data["email"]):
            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()

            current_site = Site.objects.get_current()
            domain = unicode(current_site.domain)

            #send the password reset email
            subject = _(u"Email de redefinição de senha enviado")
            message = render_to_string(
                "account/password_reset_key_message.txt", {
                    "user": user,
                    "temp_key": temp_key,
                    "domain": domain,
                })
            send_mail(subject,
                      message,
                      settings.DEFAULT_FROM_EMAIL, [user.email],
                      priority="high")
        return self.cleaned_data["email"]
Ejemplo n.º 4
0
    def save(self):
        for user in User.objects.filter(email__iexact=self.cleaned_data["email"]):

            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()

            current_site = Site.objects.get_current()
            domain = unicode(current_site.domain)

            # send the password reset email
            subject = _("Password reset email sent")
            message = render_to_string("account/password_reset_key_message.txt", {
                "user": user,
                "temp_key": temp_key,
                "domain": domain,
            })

            send_mail(
                subject, message, settings.DEFAULT_FROM_EMAIL, [user.email], priority="high")
        return self.cleaned_data["email"]
Ejemplo n.º 5
0
    def save(self, domain):

        for user in User.objects.filter(email_address__iexact=self.cleaned_data["email"]):
            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()
            
            # save it to the password reset model
            try:
                password_reset = PasswordReset.objects.get(user=user,temp_key=temp_key, reset=False) 
            except PasswordReset.DoesNotExist:
                password_reset = PasswordReset(user=user, temp_key=temp_key)
                password_reset.save()
            
            #send the password reset email
            subject = _("Password reset email sent")
            link = 'http://'+domain+reverse('acct_passwd_reset_key',args=(temp_key,))
            message = _(settings.PASSWORD_RESET_TEMPLATE) % {
                "display_name" : user.get_display_name(),
                "username": user.username,
                "link" : link,
            }
            send_mail(subject, message, settings.SUPPORT_EMAIL, [user.email_address],fail_silently=False)
        return self.cleaned_data["email"]
Ejemplo n.º 6
0
    def save(self, domain):

        for user in User.objects.filter(
                email_address__iexact=self.cleaned_data["email"]):
            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()

            # save it to the password reset model
            try:
                password_reset = PasswordReset.objects.get(user=user,
                                                           temp_key=temp_key,
                                                           reset=False)
            except PasswordReset.DoesNotExist:
                password_reset = PasswordReset(user=user, temp_key=temp_key)
                password_reset.save()

            #send the password reset email
            subject = _("Password reset email sent")
            link = 'http://' + domain + reverse('acct_passwd_reset_key',
                                                args=(temp_key, ))
            message = _(settings.PASSWORD_RESET_TEMPLATE) % {
                "display_name": user.get_display_name(),
                "username": user.username,
                "link": link,
            }
            send_mail(subject,
                      message,
                      settings.SUPPORT_EMAIL, [user.email_address],
                      fail_silently=False)
        return self.cleaned_data["email"]
Ejemplo n.º 7
0
    def save(self):
        for user in User.objects.filter(email__iexact=self.cleaned_data["email"]):
            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()

            domain = unicode(settings.ACTIVE_SITE)
            
            context = {
                "user": user,
                "temp_key": temp_key,
                "domain": domain,
            }

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()
            
            subject = "Password Reset Request"
            message_txt = render_to_string("account/password_reset_key_message.txt", context)
            message_html = render_to_string("account/password_reset_key_message.html", context)
            message = EmailMultiAlternatives(subject, message_txt, settings.DEFAULT_FROM_EMAIL, [user.email[0]])
            message.attach_alternative(message_html, "text/html")
            message.send()

            #send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [user.email], priority="high")
        return self.cleaned_data["email"]
Ejemplo n.º 8
0
 def save(self, **kwargs):
     
     email = self.cleaned_data["email"]
     token_generator = kwargs.get("token_generator", default_token_generator)
     
     for user in User.objects.filter(email__iexact=email):
         
         temp_key = token_generator.make_token(user)
         
         # save it to the password reset model
         password_reset = PasswordReset(user=user, temp_key=temp_key)
         password_reset.save()
         
         current_site = Site.objects.get_current()
         domain = unicode(current_site.domain)
         
         # send the password reset email
         subject = settings.PASSWD_RESET_SUBJECT
         message = render_to_string(settings.PWD_RESET_MSG, {
             "user": user,
             "uid": int_to_base36(user.id),
             "temp_key": temp_key,
             "domain": domain,
         })
         
         self.send_reset_email(subject, message, user.email)
         # launch a new thread to send email, don't let users wait for so long, by junn
         #startEmailSendThread(subject, message, settings.DEFAULT_FROM_EMAIL, [user.email])
     return self.cleaned_data["email"]
Ejemplo n.º 9
0
    def save(self):

        for user in User.objects.filter(email__iexact=self.cleaned_data["email"]):
            
        
            # make a random password so this account can't be accessed.
            new_password = User.objects.make_random_password()
            #user.set_password(new_password)
            #user.save()
        
            # Make the temp key by generating another random password.
            temp_key = User.objects.make_random_password()
            
            # save it to the password reset model
            password_reset = PasswordReset(user=user,temp_key=temp_key)
            password_reset.save()
            
            #send the password reset email
            subject = _("Password reset email sent")
            current_site = Site.objects.get(id=settings.SITE_ID)
            message = render_to_string("account/password_reset_key_message.txt", {
                "user": user,        
                "temp_key": temp_key,
                "domain" : current_site.domain,
            })
            
            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [user.email], priority="high")
        return self.cleaned_data["email"]
Ejemplo n.º 10
0
 def save(self):
     user = User.objects.get(email=self.cleaned_data['email'])
     key = generate_hash_key(user.username)
     reset = PasswordReset(key=key, user=user)
     reset.save()
     template_name = 'account/password_reset_mail.html'
     subject = 'Criar nova senha de acesso para o Active Gears'
     context = {'reset': reset}
     send_mail_template(subject, template_name, context, [user.email])
Ejemplo n.º 11
0
def reset_password(request, key=None):
    context = {}

    if request.method == "POST" and request.POST.get("email", None):
        if request.user.is_authenticated():
            return HttpResponseRedirect(reverse("conference_schedule"))

        email = request.POST.get("email", None)
        if User.objects.filter(email__iexact=email).count():
            context["email"] = email
        else:
            context["email_error"] = email

        for user in User.objects.filter(email__iexact=email):
            temp_key = sha_constructor("%s%s%s" % (settings.SECRET_KEY, user.email, settings.SECRET_KEY)).hexdigest()

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()

            current_site = Site.objects.get_current()
            domain = unicode(current_site.domain)

            # send the password reset email
            subject = "myEWB password reset"
            message = render_to_string(
                "conference/schedule/password_reset_message.txt", {"user": user, "temp_key": temp_key, "domain": domain}
            )
            send_mail(
                subject=subject,
                txtMessage=message,
                fromemail=settings.DEFAULT_FROM_EMAIL,
                recipients=[user.email],
                priority="high",
            )

    elif key:
        if PasswordReset.objects.filter(temp_key__exact=key, reset=False).count():
            if request.method == "POST":
                form = ResetPasswordKeyForm(request.POST)

                if form.is_valid():
                    # get the password_reset object
                    temp_key = form.cleaned_data.get("temp_key")
                    password_reset = PasswordReset.objects.filter(temp_key__exact=temp_key, reset=False)
                    password_reset = password_reset[0]  # should always be safe, as form_clean checks this

                    # now set the new user password
                    user = User.objects.get(passwordreset__exact=password_reset)
                    result = user.set_password(form.cleaned_data["password1"])

                    if not result:
                        # unsuccessful
                        form._errors[forms.forms.NON_FIELD_ERRORS] = ["Error (password is too simple maybe?)"]
                    else:
                        user.save()

                        # change all the password reset records to this person to be true.
                        for password_reset in PasswordReset.objects.filter(user=user):
                            password_reset.reset = True
                            password_reset.save()

                        user = auth.authenticate(username=user.username, password=form.cleaned_data["password1"])
                        auth.login(request, user)
                        return HttpResponseRedirect(reverse("conference_schedule"))
            else:
                form = ResetPasswordKeyForm(initial={"temp_key": key})

            context["keyvalid"] = True
            context["form"] = form
        else:
            context["keyerror"] = True

    else:
        return HttpResponseRedirect(reverse("conference_schedule_login"))

    return render_to_response("conference/schedule/reset.html", context, context_instance=RequestContext(request))
Ejemplo n.º 12
0
def reset_password(request, key=None):
    context = {}

    if request.method == 'POST' and request.POST.get('email', None):
        if request.user.is_authenticated():
            return HttpResponseRedirect(reverse('conference_schedule'))

        email = request.POST.get('email', None)
        if User.objects.filter(email__iexact=email).count():
            context['email'] = email
        else:
            context['email_error'] = email

        for user in User.objects.filter(email__iexact=email):
            temp_key = sha_constructor("%s%s%s" % (
                settings.SECRET_KEY,
                user.email,
                settings.SECRET_KEY,
            )).hexdigest()

            # save it to the password reset model
            password_reset = PasswordReset(user=user, temp_key=temp_key)
            password_reset.save()

            current_site = Site.objects.get_current()
            domain = unicode(current_site.domain)

            #send the password reset email
            subject = "myEWB password reset"
            message = render_to_string(
                "conference/schedule/password_reset_message.txt", {
                    "user": user,
                    "temp_key": temp_key,
                    "domain": domain,
                })
            send_mail(subject=subject,
                      txtMessage=message,
                      fromemail=settings.DEFAULT_FROM_EMAIL,
                      recipients=[user.email],
                      priority="high")

    elif key:
        if PasswordReset.objects.filter(temp_key__exact=key,
                                        reset=False).count():
            if request.method == 'POST':
                form = ResetPasswordKeyForm(request.POST)

                if form.is_valid():
                    # get the password_reset object
                    temp_key = form.cleaned_data.get("temp_key")
                    password_reset = PasswordReset.objects.filter(
                        temp_key__exact=temp_key, reset=False)
                    password_reset = password_reset[
                        0]  # should always be safe, as form_clean checks this

                    # now set the new user password
                    user = User.objects.get(
                        passwordreset__exact=password_reset)
                    result = user.set_password(form.cleaned_data['password1'])

                    if not result:
                        # unsuccessful
                        form._errors[forms.forms.NON_FIELD_ERRORS] = [
                            "Error (password is too simple maybe?)"
                        ]
                    else:
                        user.save()

                        # change all the password reset records to this person to be true.
                        for password_reset in PasswordReset.objects.filter(
                                user=user):
                            password_reset.reset = True
                            password_reset.save()

                        user = auth.authenticate(
                            username=user.username,
                            password=form.cleaned_data['password1'])
                        auth.login(request, user)
                        return HttpResponseRedirect(
                            reverse('conference_schedule'))
            else:
                form = ResetPasswordKeyForm(initial={'temp_key': key})

            context['keyvalid'] = True
            context['form'] = form
        else:
            context['keyerror'] = True

    else:
        return HttpResponseRedirect(reverse('conference_schedule_login'))

    return render_to_response("conference/schedule/reset.html",
                              context,
                              context_instance=RequestContext(request))