4 from random import choice
6 from django.core.mail import send_mail
7 from django.contrib import messages
8 from django.views.generic import View
9 from django.shortcuts import render
11 from unfold.loginrequired import FreeAccessView
12 from ui.topmenu import topmenu_items_live
14 from manifold.manifoldapi import execute_admin_query
15 from manifold.core.query import Query
17 from portal.forms import PassResetForm
18 from portal.actions import manifold_update_user
21 class PassResetView (FreeAccessView):
22 def post (self, request):
23 form = PassResetForm(request.POST) # A form bound to the POST data
24 if form.is_valid(): # All validation rules pass
25 # Process the data in form.cleaned_data
26 email = form.cleaned_data['email'] # email inserted on the form
28 user_query = Query().get('local:user').select('user_id','email')
29 user_details = execute_admin_query(self.request, user_query)
31 for user_detail in user_details:
32 if user_detail['email']==email:
33 sender = 'support@myslice.info'
34 #recipients = authority_get_pi_emails(authority_hrn)
36 pass_list = ['demo', 'test', 'abcdef']
37 reset_pass = choice (pass_list)
38 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."
39 send_mail("Onelab Portal: Password reset request", msg, sender, recipients)
40 return render(request,'pass_reset_sent.html') # Redirect after POST
42 messages.error(request, 'Sorry, this email is not registered.')
43 return self._display (request, form)
46 return self._display (request, form)
48 def get (self, request):
49 return self._display (request, PassResetForm()) # A fresh unbound form
51 def _display (self, request, form):
52 return render(request, 'pass_reset.html', {