Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)) 
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)) 
Exemplo n.º 5
0
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))
Exemplo n.º 6
0
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))