def emailconfirm(request, bwuid): h = None if 'h' in request.GET: h = request.GET['h'] else: return debug_or_404(request, message="The proper parameters were not found. Expecting 'h' parameter") manager = EmailChangeManager() if manager.token_exists(h, bwuid).issuccess(): if request.user.is_authenticated(): #then we can assume the user is legit new_email = manager.finalize_change(request.user.beatwrituser) bwuser = request.user.beatwrituser if 'settings' in request.GET: settings = request.GET['settings'] emailform, passform, optionsform = default_settings_forms(bwuser) emsg = "Email successfully changed" return render_to_response('settings.html', {'optionsform': optionsform, 'emailform':emailform, 'passform':passform, 'email_success_msg':emsg}, context_instance=RequestContext(request)) else: pdb.set_trace() header = "Email was successfully set to %s" % new_email msg = "<p>You can change you the settings for receiving email by visiting the <a href='/%s/settings'>accounts settings</a> page.</p><p>Would you like to visit your <a href='%s'>beatwrits page</a>, or perhaps <a href='/joinbrowse'>browse the joinable writs</a>?</p>" % (bwuser.id, bwuser.get_absolute_url()) return message(request, message=msg, header=header) else: #ask the user to give password first to confirm that this person is truly the user. #ie. take the user to another page where they enter their pass and POST back to the same page. return message(request, message="Need to enter pass") return oops(request)
def usercreate(request): if request.method == 'POST': form = NewUserForm(request.POST) if form.is_valid(): error = False if form.is_username_taken() or form.is_username_invalid() or form.are_passwords_invalid(): error = True if not error: bwu = form.make_user() user = authenticate(username=bwu.authuser.username, password=form.cleaned_data['password1']) r = EmailChangeManager.begin_change(bwu, form.cleaned_data['email']) if user is not None: if user.is_active: login(request, user) return HttpResponseRedirect('/profile') else: return oops(request) else: return oops(request) return HttpResponseRedirect('/authors/%s' % u.pk) # Redirect after POST else: return render_to_response('newuser.html', {'form': form, }, context_instance=RequestContext(request)) else: if request.user.is_authenticated(): django.contrib.auth.logout(request) form = NewUserForm() # An unbound form return render_to_response('newuser.html', {'form': form, }, context_instance=RequestContext(request))
def emailconfirm(request, bwuid): h = None if 'h' in request.GET: h = request.GET['h'] else: return debug_or_404( request, message= "The proper parameters were not found. Expecting 'h' parameter") manager = EmailChangeManager() if manager.token_exists(h, bwuid).issuccess(): if request.user.is_authenticated(): #then we can assume the user is legit new_email = manager.finalize_change(request.user.beatwrituser) bwuser = request.user.beatwrituser if 'settings' in request.GET: settings = request.GET['settings'] emailform, passform, optionsform = default_settings_forms( bwuser) emsg = "Email successfully changed" return render_to_response( 'settings.html', { 'optionsform': optionsform, 'emailform': emailform, 'passform': passform, 'email_success_msg': emsg }, context_instance=RequestContext(request)) else: pdb.set_trace() header = "Email was successfully set to %s" % new_email msg = "<p>You can change you the settings for receiving email by visiting the <a href='/%s/settings'>accounts settings</a> page.</p><p>Would you like to visit your <a href='%s'>beatwrits page</a>, or perhaps <a href='/joinbrowse'>browse the joinable writs</a>?</p>" % ( bwuser.id, bwuser.get_absolute_url()) return message(request, message=msg, header=header) else: #ask the user to give password first to confirm that this person is truly the user. #ie. take the user to another page where they enter their pass and POST back to the same page. return message(request, message="Need to enter pass") return oops(request)
def changeemail(request, bwuid=None, bwuser=None): if not bwuser: bwuser = BeatwritUser.objects.get(pk=bwuid) emailform = EmailChangeForm(request.POST) if emailform.is_valid(): #begin emailing process r = EmailChangeManager.begin_change(bwuser, emailform.cleaned_data['emailaddress'], params='settings=1') if r.issuccess(): return message(request, header="More more step...", message="We have sent a confirmation email you the email address you gave. Please click the link in the email to confirm that the email address is yours.") else: emsg = "We had a problem when trying to send a confirmation email. Try reentering the email address and submitting again." dummy, passform, optionsform = default_settings_forms(bwuser) return render_to_response('settings.html', {'optionsform': optionsform, 'emailform':emailform, 'passform':passform, 'email_error_message': emsg}, context_instance=RequestContext(request)) else: #recreate other unbound forms pwform = PasswordChangeForm() sform = OptionsForm() return render_to_response('settings.html', {'optionsform': sform, 'emailform':eform, 'passform':pwform}, context_instance=RequestContext(request))
def changeemail(request, bwuid=None, bwuser=None): if not bwuser: bwuser = BeatwritUser.objects.get(pk=bwuid) emailform = EmailChangeForm(request.POST) if emailform.is_valid(): #begin emailing process r = EmailChangeManager.begin_change( bwuser, emailform.cleaned_data['emailaddress'], params='settings=1') if r.issuccess(): return message( request, header="More more step...", message= "We have sent a confirmation email you the email address you gave. Please click the link in the email to confirm that the email address is yours." ) else: emsg = "We had a problem when trying to send a confirmation email. Try reentering the email address and submitting again." dummy, passform, optionsform = default_settings_forms(bwuser) return render_to_response('settings.html', { 'optionsform': optionsform, 'emailform': emailform, 'passform': passform, 'email_error_message': emsg }, context_instance=RequestContext(request)) else: #recreate other unbound forms pwform = PasswordChangeForm() sform = OptionsForm() return render_to_response('settings.html', { 'optionsform': sform, 'emailform': eform, 'passform': pwform }, context_instance=RequestContext(request))
def usercreate(request): if request.method == 'POST': form = NewUserForm(request.POST) if form.is_valid(): error = False if form.is_username_taken() or form.is_username_invalid( ) or form.are_passwords_invalid(): error = True if not error: bwu = form.make_user() user = authenticate(username=bwu.authuser.username, password=form.cleaned_data['password1']) r = EmailChangeManager.begin_change(bwu, form.cleaned_data['email']) if user is not None: if user.is_active: login(request, user) return HttpResponseRedirect('/profile') else: return oops(request) else: return oops(request) return HttpResponseRedirect('/authors/%s' % u.pk) # Redirect after POST else: return render_to_response( 'newuser.html', { 'form': form, }, context_instance=RequestContext(request)) else: if request.user.is_authenticated(): django.contrib.auth.logout(request) form = NewUserForm() # An unbound form return render_to_response('newuser.html', { 'form': form, }, context_instance=RequestContext(request))