diff options
author | Prabhu Ramachandran | 2017-05-25 17:42:42 +0530 |
---|---|---|
committer | GitHub | 2017-05-25 17:42:42 +0530 |
commit | 80b67d07ceaf4c73705a27ee0bfc905e30b19ac4 (patch) | |
tree | d828f6f7697438d8addf04140f6c32bd005aaf6f | |
parent | 7baaa70c0e7f660ad7482c3c3950eab171b27cd3 (diff) | |
parent | e6ab47d2ea99b703e3c261ad5e7b6785f6f8d5d5 (diff) | |
download | online_test-80b67d07ceaf4c73705a27ee0bfc905e30b19ac4.tar.gz online_test-80b67d07ceaf4c73705a27ee0bfc905e30b19ac4.tar.bz2 online_test-80b67d07ceaf4c73705a27ee0bfc905e30b19ac4.zip |
Merge pull request #296 from adityacp/fix_email_verfication_bug
Fix email verfication bug
-rw-r--r-- | yaksh/migrations/0007_alter_profile_activation_key.py | 20 | ||||
-rw-r--r-- | yaksh/models.py | 2 | ||||
-rw-r--r-- | yaksh/send_emails.py | 3 | ||||
-rw-r--r-- | yaksh/views.py | 7 |
4 files changed, 28 insertions, 4 deletions
diff --git a/yaksh/migrations/0007_alter_profile_activation_key.py b/yaksh/migrations/0007_alter_profile_activation_key.py new file mode 100644 index 0000000..bbada8c --- /dev/null +++ b/yaksh/migrations/0007_alter_profile_activation_key.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.5 on 2017-05-16 12:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('yaksh', '0006_release_0_6_0'), + ] + + operations = [ + migrations.AlterField( + model_name='profile', + name='activation_key', + field=models.CharField(blank=True, max_length=255, null=True), + ), + ] diff --git a/yaksh/models.py b/yaksh/models.py index 565bb23..79732cc 100644 --- a/yaksh/models.py +++ b/yaksh/models.py @@ -293,7 +293,7 @@ class Profile(models.Model): choices=[(tz, tz) for tz in pytz.common_timezones] ) is_email_verified = models.BooleanField(default=False) - activation_key = models.CharField(max_length=40, blank=True, null=True) + activation_key = models.CharField(max_length=255, blank=True, null=True) key_expiry_time = models.DateTimeField(blank=True, null=True) def get_user_dir(self): diff --git a/yaksh/send_emails.py b/yaksh/send_emails.py index 8983024..24215dd 100644 --- a/yaksh/send_emails.py +++ b/yaksh/send_emails.py @@ -5,7 +5,6 @@ except ImportError: from string import ascii_letters as letters from string import digits, punctuation import hashlib -from random import randint from textwrap import dedent import smtplib @@ -18,7 +17,7 @@ from django.core.mail import send_mass_mail, send_mail def generate_activation_key(username): """ Generate hashed secret key for email activation """ chars = letters + digits + punctuation - secret_key = get_random_string(randint(10, 40), chars) + secret_key = get_random_string(20, chars) return hashlib.sha256((secret_key + username).encode('utf-8')).hexdigest() diff --git a/yaksh/views.py b/yaksh/views.py index c7af5cc..7db0366 100644 --- a/yaksh/views.py +++ b/yaksh/views.py @@ -1543,7 +1543,10 @@ def new_activation(request, email=None): user.profile.key_expiry_time = timezone.now() + \ timezone.timedelta(minutes=20) user.profile.save() - success, msg = send_user_mail(user.email, user.profile.activation_key) + new_user_data = User.objects.get(email=email) + success, msg = send_user_mail(new_user_data.email, + new_user_data.profile.activation_key + ) if success: context['activation_msg'] = msg else: @@ -1555,6 +1558,8 @@ def new_activation(request, email=None): context_instance=ci) def update_email(request): + context = {} + ci = RequestContext(request) if request.method == "POST": email = request.POST.get('email') username = request.POST.get('username') |