Esempio n. 1
0
 def test_unknow_username_forgot_password_form(self):
     data = {
         'username': '******',
         'email': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 2
0
 def test_full_forgot_password_form(self):
     data = {
         'username': '******',
         'email': '*****@*****.**'
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 3
0
 def test_unknow_email_forgot_password_form(self):
     data = {
         'email': '*****@*****.**',
         'username': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 4
0
 def test_empty_name_forgot_password_form(self):
     data = {
         'username': '',
         'email': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 5
0
 def test_unknow_email_forgot_password_form(self):
     data = {
         'email': '*****@*****.**',
         'username': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 6
0
 def test_non_valid_non_ascii_email_forgot_password_form(self):
     data = {
         'username': '',
         'email': self.userNonAscii.user.email
     }
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())
Esempio n. 7
0
 def test_unknow_username_forgot_password_form(self):
     data = {
         'username': '******',
         'email': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 8
0
 def test_empty_name_forgot_password_form(self):
     data = {
         'username': '',
         'email': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 9
0
 def test_full_forgot_password_form(self):
     data = {
         'username': '******',
         'email': '*****@*****.**'
     }
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 10
0
 def test_non_valid_non_ascii_email_forgot_password_form(self):
     data = {
         'username': '',
         'email': self.userNonAscii.user.email
     }
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())
Esempio n. 11
0
 def test_valid_email_forgot_password_form(self):
     data = {
         'email': self.user1.user.email,
         'username': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())
Esempio n. 12
0
 def test_valid_email_forgot_password_form(self):
     data = {
         'email': self.user1.user.email,
         'username': ''
     }
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())
Esempio n. 13
0
def forgot_password(request):
    """If the user forgot his password, he can have a new one."""

    if request.method == "POST":
        form = UsernameAndEmailForm(request.POST)
        if form.is_valid():

            # Get data from form
            data = form.data
            username = data["username"]
            email = data["email"]

            # Fetch the user, we need his email adress
            usr = None
            if username:
                usr = get_object_or_404(User, Q(username=username))

            if email:
                usr = get_object_or_404(User, Q(email=email))

            # Generate a valid token during one hour.
            uuid_token = str(uuid.uuid4())
            date_end = datetime.now() + timedelta(
                days=0, hours=1, minutes=0, seconds=0)
            token = TokenForgotPassword(user=usr,
                                        token=uuid_token,
                                        date_end=date_end)
            token.save()

            # send email
            subject = _(u"{} - Mot de passe oublié").format(
                settings.ZDS_APP['site']['litteral_name'])
            from_email = "{} <{}>".format(
                settings.ZDS_APP['site']['litteral_name'],
                settings.ZDS_APP['site']['email_noreply'])
            context = {
                "username": usr.username,
                "site_name": settings.ZDS_APP['site']['litteral_name'],
                "site_url": settings.ZDS_APP['site']['url'],
                "url":
                settings.ZDS_APP['site']['url'] + token.get_absolute_url()
            }
            message_html = render_to_string(
                "email/member/confirm_forgot_password.html", context)
            message_txt = render_to_string(
                "email/member/confirm_forgot_password.txt", context)

            msg = EmailMultiAlternatives(subject, message_txt, from_email,
                                         [usr.email])
            msg.attach_alternative(message_html, "text/html")
            msg.send()
            return render(request, "member/forgot_password/success.html")
        else:
            return render(request, "member/forgot_password/index.html",
                          {"form": form})
    form = UsernameAndEmailForm()
    return render(request, "member/forgot_password/index.html", {"form": form})
Esempio n. 14
0
def forgot_password(request):
    """If the user has forgotten his password, they can get a new one."""

    if request.method == 'POST':
        form = UsernameAndEmailForm(request.POST)
        if form.is_valid():

            # Get data from form
            data = form.data
            username = data['username']
            email = data['email']

            # Fetch the user, we need his email address
            usr = None
            if username:
                usr = get_object_or_404(User, Q(username=username))

            if email:
                usr = get_object_or_404(User, Q(email=email))

            # Generate a valid token during one hour
            uuid_token = str(uuid.uuid4())
            date_end = datetime.now() + timedelta(days=0, hours=1, minutes=0,
                                                  seconds=0)
            token = TokenForgotPassword(user=usr, token=uuid_token,
                                        date_end=date_end)
            token.save()

            # Send email
            subject = _('{} - Mot de passe oublié').format(settings.ZDS_APP['site']['literal_name'])
            from_email = '{} <{}>'.format(settings.ZDS_APP['site']['literal_name'],
                                          settings.ZDS_APP['site']['email_noreply'])
            context = {
                'username': usr.username,
                'site_name': settings.ZDS_APP['site']['literal_name'],
                'site_url': settings.ZDS_APP['site']['url'],
                'url': settings.ZDS_APP['site']['url'] + token.get_absolute_url()
            }
            message_html = render_to_string('email/member/confirm_forgot_password.html', context)
            message_txt = render_to_string('email/member/confirm_forgot_password.txt', context)

            msg = EmailMultiAlternatives(subject, message_txt, from_email, [usr.email])
            msg.attach_alternative(message_html, 'text/html')
            msg.send()
            return render(request, 'member/forgot_password/success.html')
        else:
            return render(request, 'member/forgot_password/index.html',
                          {'form': form})
    form = UsernameAndEmailForm()
    return render(request, 'member/forgot_password/index.html', {'form': form})
Esempio n. 15
0
def forgot_password(request):
    """If the user has forgotten his password, they can get a new one."""

    if request.method == 'POST':
        form = UsernameAndEmailForm(request.POST)
        if form.is_valid():

            # Get data from form
            data = form.data
            username = data['username']
            email = data['email']

            # Fetch the user, we need his email address
            usr = None
            if username:
                usr = get_object_or_404(User, Q(username=username))

            if email:
                usr = get_object_or_404(User, Q(email=email))

            # Generate a valid token during one hour
            uuid_token = str(uuid.uuid4())
            date_end = datetime.now() + timedelta(days=0, hours=1, minutes=0,
                                                  seconds=0)
            token = TokenForgotPassword(user=usr, token=uuid_token,
                                        date_end=date_end)
            token.save()

            # Send email
            subject = _('{} - Mot de passe oublié').format(settings.ZDS_APP['site']['literal_name'])
            from_email = '{} <{}>'.format(settings.ZDS_APP['site']['literal_name'],
                                          settings.ZDS_APP['site']['email_noreply'])
            context = {
                'username': usr.username,
                'site_name': settings.ZDS_APP['site']['literal_name'],
                'site_url': settings.ZDS_APP['site']['url'],
                'url': settings.ZDS_APP['site']['url'] + token.get_absolute_url()
            }
            message_html = render_to_string('email/member/confirm_forgot_password.html', context)
            message_txt = render_to_string('email/member/confirm_forgot_password.txt', context)

            msg = EmailMultiAlternatives(subject, message_txt, from_email, [usr.email])
            msg.attach_alternative(message_html, 'text/html')
            msg.send()
            return render(request, 'member/forgot_password/success.html')
        else:
            return render(request, 'member/forgot_password/index.html',
                          {'form': form})
    form = UsernameAndEmailForm()
    return render(request, 'member/forgot_password/index.html', {'form': form})
Esempio n. 16
0
 def test_unknow_username_forgot_password_form(self):
     data = {"username": "******", "email": ""}
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 17
0
 def test_unknow_email_forgot_password_form(self):
     data = {"email": "*****@*****.**", "username": ""}
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 18
0
 def test_full_forgot_password_form(self):
     data = {"username": "******", "email": "*****@*****.**"}
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 19
0
 def test_empty_name_forgot_password_form(self):
     data = {"username": "", "email": ""}
     form = UsernameAndEmailForm(data=data)
     self.assertFalse(form.is_valid())
Esempio n. 20
0
 def test_valid_email_forgot_password_form(self):
     data = {"email": self.user1.user.email, "username": ""}
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())
Esempio n. 21
0
 def test_non_valid_non_ascii_forgot_password_form(self):
     data = {"username": self.userNonAscii.user.username, "email": ""}
     form = UsernameAndEmailForm(data=data)
     self.assertTrue(form.is_valid())