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')
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')
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')