ForgotPass: Check the entered email with the local:user in manifold db
authorYasin <mohammed-yasin.rahman@lip6.fr>
Mon, 6 Jan 2014 12:58:05 +0000 (13:58 +0100)
committerYasin <mohammed-yasin.rahman@lip6.fr>
Mon, 6 Jan 2014 12:58:05 +0000 (13:58 +0100)
portal/passresetview.py
portal/templates/pass_reset.html

index c9d50dc..d77a26a 100644 (file)
@@ -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)
 
index 8fa828f..df70b4c 100644 (file)
@@ -14,7 +14,7 @@
 <!-- no hint for this form, moreover we need more space to write stuff down
      so we use a 3-6-3 layout -->
 <div class='well'>
-  <form class="cmxform form-horizontal" id="commentForm" action="#" method="post" role="form">{% csrf_token %}
+  <form class="cmxform form-horizontal" id="commentForm" action="" method="post" role="form">{% csrf_token %}
   <fieldset>
     {% for field in form %}
     <div class="form-group">
@@ -22,7 +22,7 @@
       <div class="col-xs-6"> {{ field.errors }} {{ field }} <p class="form-hint">{{ field.help_text }}</p> </div>
     </div>
     {% endfor %}
-    <button class="submit btn btn-default col-xs-12" type="submit">Reset Password</button>
+    <button class="submit btn btn-default col-xs-12" type="submit">Reset My Password</button>
   </fieldset>
   </form>
 </div>