Example #1
0
def ajax_register(request):
    result = {'success': False}
    if request.method == 'POST':
        form = RegistrationForm(request.POST)
        if form.is_valid():
            try:
                # Try to create user
                user = User.objects.create_user(form.cleaned_data['username'], 
                                                form.cleaned_data['email'], 
                                                form.cleaned_data['password1'])
                # Log in user
                user = authenticate(username=form.cleaned_data['username'], 
                                    password=form.cleaned_data['password1'])
                login(request, user)
                result['success'] = True
                result['username'] = user.username                
            except:
                # Form valid, but we still got a database error.
                mail_admins('Unable to create user', 
                            'Username: %s\nE-mail: %s' % (user.username, 
                                                          user.email))
                result['error'] = u'Unable to create user. Please try again later.'
        else:
            # TODO: Use field names instead of dropping them 
            # TODO: Use custom validator
            result['error'] = u' '.join([unicode(v) for v in form.errors.values()])
    return HttpResponse(to_json(result),
                        mimetype='application/json')    
Example #2
0
def ajax_change_password(request):
    result = {'success': False}
    if request.method == 'POST':
        form = PrettyPasswordChangeForm(user=request.user, data=request.POST)
        if form.is_valid():
            form.save()
            result['success'] = True
        else:
            # TODO: Use field names instead of dropping them 
            result['error'] = u' '.join([unicode(v) for v in form.errors.values()])
    return HttpResponse(to_json(result),
                        mimetype='application/json')
Example #3
0
def ajax_login(request):
    """Logs in user asynchronously
    """
    result = {'success': False}
    if request.method == 'POST':
        form = PrettyAuthenticationForm(data=request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['username'], 
                                password=form.cleaned_data['password']) 
            login(request, user)
            result['success'] = True
            result['username'] = user.username
        else: 
            result['error'] = u'Unable to log in. Please check your username and password.'
    return HttpResponse(to_json(result),
                        mimetype='application/json')