diff options
author | adityacp | 2017-05-16 17:56:40 +0530 |
---|---|---|
committer | adityacp | 2017-05-16 17:56:40 +0530 |
commit | 4c7f5e6d2b48242e8c3cc97e30df9a8506b9e333 (patch) | |
tree | 611b5bb45f675de127c9d839bc28ee25b27d042e | |
parent | 7baaa70c0e7f660ad7482c3c3950eab171b27cd3 (diff) | |
download | online_test-4c7f5e6d2b48242e8c3cc97e30df9a8506b9e333.tar.gz online_test-4c7f5e6d2b48242e8c3cc97e30df9a8506b9e333.tar.bz2 online_test-4c7f5e6d2b48242e8c3cc97e30df9a8506b9e333.zip |
Change forms.py, views.py, send_emails.py, models.py
- Alter activation_key field in Profile model
- Change get_activation_key function in send_mail to create secret_key of fixed length
- Change forms.py to get updated activation_key
- Change views.py to save activation_key
-rw-r--r-- | yaksh/forms.py | 3 | ||||
-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, 10 insertions, 5 deletions
diff --git a/yaksh/forms.py b/yaksh/forms.py index 3459be9..c09566f 100644 --- a/yaksh/forms.py +++ b/yaksh/forms.py @@ -150,7 +150,8 @@ class UserRegisterForm(forms.Form): new_profile.key_expiry_time = timezone.now() + \ timezone.timedelta(minutes=20) new_profile.save() - return u_name, pwd, new_user.email, new_profile.activation_key + user_activation_key = Profile.objects.get(user=new_user).activation_key + return u_name, pwd, new_user.email, user_activation_key class UserLoginForm(forms.Form): 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') |