src/cm/views/site.py
changeset 225 67e1a89d6bca
parent 220 7d278fde2748
child 482 00f61fe2430a
equal deleted inserted replaced
224:cc85d241b81d 225:67e1a89d6bca
   245                 return HttpResponseRedirect(reverse('index'))
   245                 return HttpResponseRedirect(reverse('index'))
   246     else:
   246     else:
   247         form = SettingsDesignForm()
   247         form = SettingsDesignForm()
   248     
   248     
   249     return render_to_response('site/settings_design.html', {'form' : form}, context_instance=RequestContext(request))
   249     return render_to_response('site/settings_design.html', {'form' : form}, context_instance=RequestContext(request))
   250     
   250 
   251 class ForgotPWForm(forms.Form):
   251 
   252     name_or_email = forms.CharField(label=ugettext_lazy("Username or email"),
   252 def password_reset_done(request):
   253                                      required=True,
   253     display_message(request, _(u'A link to reset your password has been sent to the profile email. Please check your email.'))
   254                                      )
   254     return HttpResponseRedirect(reverse('index'))
   255      
   255 
   256 def forgot_pw(request):
   256 def password_reset_complete(request):
   257     if request.method == 'POST':
   257     display_message(request, _(u'Password changed'))
   258         form = ForgotPWForm(data=request.POST)
   258     return HttpResponseRedirect(reverse('index'))
   259         if form.is_valid() :
       
   260             name_or_email = form.cleaned_data.get("name_or_email")
       
   261             # try email
       
   262             user = None
       
   263             try:
       
   264                 user = User.objects.get(email__iexact = name_or_email)
       
   265             except User.DoesNotExist:
       
   266                 pass
       
   267                 # try email
       
   268                 try:
       
   269                     user = User.objects.get(username__exact = name_or_email)
       
   270                 except User.DoesNotExist:
       
   271                     pass
       
   272             if user:
       
   273                 message = render_to_string('email/forgot_pw.txt',
       
   274                                            { 
       
   275                                              'reset_url' : reverse('reset-pw', args=[user.get_profile().adminkey]),
       
   276                                              'CONF': Configuration.objects
       
   277                                               })
       
   278             
       
   279                 send_mail(_(u'How to reset your password'), message, Configuration.objects['email_from'], [user.email])
       
   280                 
       
   281                 display_message(request, _(u'A link to reset your password has been sent to the profile email. Please check your email.'))
       
   282             else:
       
   283                 display_message(request, _(u'No user found.'))
       
   284             return HttpResponseRedirect(reverse('index'))
       
   285     else:
       
   286         form = ForgotPWForm()
       
   287     
       
   288     return render_to_response('site/forgot_pw.html', {'form' : form}, context_instance=RequestContext(request))
       
   289 
       
   290 from django.contrib.auth.forms import SetPasswordForm
       
   291 
       
   292 def reset_pw(request, adminkey):
       
   293     try:
       
   294         profile = UserProfile.objects.get(adminkey=adminkey)
       
   295         if request.method == 'POST':
       
   296             form = SetPasswordForm(profile.user,data=request.POST)
       
   297             if form.is_valid():
       
   298                 form.save()
       
   299                 display_message(request, _(u'Your password has been changed.'))
       
   300                 return HttpResponseRedirect(reverse('index'))                
       
   301         else:
       
   302             form = SetPasswordForm(profile.user)
       
   303         return render_to_response('site/reset_pw.html', {'form' : form}, context_instance=RequestContext(request))
       
   304     except UserProfile.DoesNotExist:
       
   305         from django.http import Http404
       
   306 
   259 
   307 def help(request):
   260 def help(request):
   308     return render_to_response('site/help.html', context_instance=RequestContext(request))
   261     return render_to_response('site/help.html', context_instance=RequestContext(request))
   309 
   262