From 45e49332fec4cd1beb5be3531007f0d46362fab8 Mon Sep 17 00:00:00 2001 From: Yasin Date: Mon, 6 Jan 2014 13:58:05 +0100 Subject: [PATCH] ForgotPass: Check the entered email with the local:user in manifold db --- portal/passresetview.py | 32 ++++++++++++++++++++------------ portal/templates/pass_reset.html | 4 ++-- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/portal/passresetview.py b/portal/passresetview.py index c9d50dcb..d77a26a4 100644 --- a/portal/passresetview.py +++ b/portal/passresetview.py @@ -4,7 +4,7 @@ import json from random import choice from django.core.mail import send_mail - +from django.contrib import messages from django.views.generic import View from django.shortcuts import render @@ -19,21 +19,29 @@ from portal.actions import manifold_update_user class PassResetView (FreeAccessView): - def post (self, request): + def post (self, request): form = PassResetForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data - email = form.cleaned_data['email'] # email of the user + email = form.cleaned_data['email'] # email inserted on the form + + user_query = Query().get('local:user').select('user_id','email') + user_details = execute_admin_query(self.request, user_query) - sender = 'support@myslice.info' - #recipients = authority_get_pi_emails(authority_hrn) - recipients = [email ] - pass_list = ['demo', 'test', 'abcdef'] - reset_pass = choice (pass_list) - msg = "Your password has been reset to: %s"% reset_pass + "\n\n Please use this temporary password to login and reset your password from MyAccount page." - print "test ", msg - send_mail("Onelab Portal: Password reset request", msg, sender, recipients) - return render(request,'pass_reset_sent.html') # Redirect after POST + for user_detail in user_details: + if user_detail['email']==email: + sender = 'support@myslice.info' + #recipients = authority_get_pi_emails(authority_hrn) + recipients = [email ] + pass_list = ['demo', 'test', 'abcdef'] + reset_pass = choice (pass_list) + msg = "Your password has been reset to: %s"% reset_pass + "\n\n Please use this temporary password to login and reset your password from MyAccount page." + send_mail("Onelab Portal: Password reset request", msg, sender, recipients) + return render(request,'pass_reset_sent.html') # Redirect after POST + else: + messages.error(request, 'Sorry, this email is not registered.') + return self._display (request, form) + else: return self._display (request, form) diff --git a/portal/templates/pass_reset.html b/portal/templates/pass_reset.html index 8fa828f1..df70b4ce 100644 --- a/portal/templates/pass_reset.html +++ b/portal/templates/pass_reset.html @@ -14,7 +14,7 @@
-
{% csrf_token %} + {% csrf_token %}
{% for field in form %}
@@ -22,7 +22,7 @@
{{ field.errors }} {{ field }}

{{ field.help_text }}

{% endfor %} - +
-- 2.43.0