예제 #1
0
def sign_in(request):
    if request.method == 'POST':
        try:
            email = request.POST['register_email']
            password = request.POST['register_password']
            if User.objects.filter(username__exact=email).count() > 0:
                raise IntegrityError()
            user = create_user_from_session(request,email,email,password)
            user.is_active = False
            user.save()
            ext = get_user_extension_from_request(user,request)
            ext.save()

            user = authenticate(username=email, password=password)
            login(request,user)
            utils.send_validation_mail_to_user(user.id, email, user=user)
            return redirect(reverse('socialauth.views.inactive'))
        except IntegrityError,e:
            context = {}
            context.update(utils.flatten_dict(request.POST))
            context.update({'next': request.GET.get('next', LOGIN_REDIRECT_URL), 'register_failed' : True, 'email' : email, 'reason' : 'already_exists' })
            return render_to_response('sign_up.html', context_instance=RequestContext(request, context))
예제 #2
0
def login_page(request):
    if 'next' in request.GET:
        request.session['openid_next'] = request.GET.get('next')
    if request.method == 'GET':
        return render_to_response('sign_up.html', {'next': request.GET.get('next', LOGIN_REDIRECT_URL), 'settings': settings}, context_instance=RequestContext(request))
    else:
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                if 'next' in request.POST:
                    return redirect(request.POST['next'])
                else:
                    return redirect(LOGIN_REDIRECT_URL)
            else:
                return redirect(reverse('socialauth.views.inactive'))
        else:
            context = {}
            context.update(utils.flatten_dict(request.POST))
            context.update({'next': request.POST.get('next', LOGIN_REDIRECT_URL), 'login_failed' : True })
            return render_to_response('sign_up.html', context_instance=RequestContext(request, context))