Example #1
0
def login(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
    if request.method == 'GET':
        referer  = request.META.get('HTTP_REFERER','/')
        if 'accounts' or 'notice' or 'message' in str(referer):
            print 'here'
            request.session['referer'] = '/'
        else :
            request.session['referer'] = referer
        form = LoginForm()
        return render(request,'login.html',locals())
    form = LoginForm(request.POST)
    if form.is_valid():
        data = form.clean()
        # 检查email是否存在
        try:
            user = User.objects.get(username=data['email'])
        except User.DoesNotExist:
            messages.error(request,"该邮箱未注册")
            return render(request,'login.html',locals())
        user = authenticate(username=data['email'],password=data['password'])
        if user is not None:
            if user.is_active:
                auth_login(request,user)
                nextpage = request.session.get('referer','/') # 下页地址
                is_auto_login = request.POST.get('auto')
                if not is_auto_login:
                    request.session.set_expiry(0)
                return HttpResponseRedirect(nextpage)
            else:
                return HttpResponseRedirect('/accounts/active/%d/not_active/' % user.id)
        else:
            messages.error(request,'密码错误!')
    return render(request,'login.html',locals())
Example #2
0
    def post(self, request, *args, **kwargs):
        conferencia = self.get_conferencia()
        context = self.get_context_data(**kwargs)
        context['not_found'] = None

        form = LoginForm(request.POST)

        if form.is_valid():
            cpf = form.cleaned_data['cpf'].replace(".", "").replace("-", "")
            data_nascimento = form.cleaned_data['data_nascimento']

            try:
                inscricao = Inscricao.objects.get(
                    cpf=cpf,
                    data_nascimento=data_nascimento,
                    conferencia=conferencia)
                user = inscricao.usuario
            except:
                context['not_found'] = True
                return super().render_to_response(context)

            login(request, user)

            return redirect(
                reverse_lazy('dashboard',
                             kwargs={"conferencia": conferencia.titulo_slug}))

        return super().render_to_response(context)
Example #3
0
def login(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
    if request.method == 'GET':
        referer  = request.META.get('HTTP_REFERER','/')
        if 'accounts' in str(referer) or 'notice' in str(referer) or 'admin' in str(referer):
            request.session['referer'] = '/'
        else :
            request.session['referer'] = referer
        form = LoginForm()
        return render(request,'login.html',locals())
    form = LoginForm(request.POST)
    if form.is_valid():
        data = form.clean()
        user = User.objects.get(username=data['email'])
        user = authenticate(username=data['email'],password=data['password'])
        #print data['password']
        #print user.check_password(data['password'])
        #if user.check_password(data['password']):
#         print user
        if user is not None:
            if user.is_active:
                auth_login(request, user)
                nextpage = request.session.get('referer','/') # 下页地址
                is_auto_login = request.POST.get('auto')
                if not is_auto_login:
                    request.session.set_expiry(0)
                return HttpResponseRedirect(nextpage)
            else:
                return HttpResponseRedirect('/accounts/active/%s/not_active' % user.get_profile().slug)
        else:
            messages.error(request,'密码不正确!')
            return render(request,'login.html',locals())
    else:
        return render(request,'login.html',{"form":form})        
Example #4
0
    def test_invalid_password_input(self):
        '''
            tests invalid Signup were password
            has invalid size
        '''

        form = LoginForm({'username': '******', 'password': '******'}, self.my_user)
        self.assertFalse(form.is_valid())
        self.assertIn(UserFormTestData.errors['password_size']['en'],
                      form.errors['password'][0])
Example #5
0
def login(request):
    form = LoginForm(request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            user = form.cleaned_data['user']
            auth.login(request, user)
            return {'redirect': 'core:index'}
    return {
        'form': form
    }
Example #6
0
    def test_empty_data_input(self):
        '''
            tests invalid Sign Up form with
            empty fields
        '''

        form = LoginForm({'username': '', 'password': ''}, self.my_user)
        self.assertFalse(form.is_valid())
        self.assertIn(UserFormTestData.errors['null_field']['en'],
                      form.errors['username'])
        self.assertIn(UserFormTestData.errors['null_field']['en'],
                      form.errors['password'])
Example #7
0
def userLogin(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            user = authenticate(username=form.cleaned_data['username'],
                                password=form.cleaned_data['password'])
            if user is not None:
                login(request, user)
                return redirect(reverse('orders:panel_index'))
    form = LoginForm()
    context = {'form': form}
    return render(request, 'login.html', context)
Example #8
0
    def test_valid_data_input(self):
        '''
            tests Login form with valid data
        '''

        form = LoginForm(
            {
                'username': self.my_user.username,
                'password': self.my_user.password
            }, self.my_user)
        self.assertTrue(form.is_valid())
        self.assertEqual(form.data['username'], self.my_user.username)
        self.assertEqual(form.data['password'], self.my_user.password)
Example #9
0
def login (request):
    """
        This view handles the login and signup related stuff
        
    """ 
    loginpage = True
    
    # Create the basic forms which will be rendered in get requests
    loginform = LoginForm()
    signupform = SignUpForm()
    
    if request.user.is_authenticated(): # If user logged in : Redirect to home
        return HttpResponseRedirect(reverse('home'))
    
    # If the form has been submitted, get the form data and handle the appropriate way
    if request.method == 'POST':
        postdata = request.POST.copy()
        if 'signup' in postdata: # SIGNUP FORM
            signupform = SignUpForm(postdata)
            if signupform.is_valid():
                # If the form is valid, save the user using the inbuilt function
                try:
                    signupform.save()   
                    messages.success(request,'<strong>Hi!</strong> Your account has been made, but is not yet activated. We will review and activate your account soon !',extra_tags='alert-success')
                    return HttpResponseRedirect(reverse('home'))
                except IntegrityError: # The username (email) already exists
                    messages.error(request,'<strong>Oops!</strong> That email id has already been signed up. Try logging in !',extra_tags='alert-danger')
            else:
                print signupform.errors
        elif 'login' in postdata: # LOGIN FORM
            loginform = LoginForm(postdata)
            if loginform.is_valid():
                try:
                    user = User.objects.get(username=loginform.cleaned_data.get('username'))
                    print user
                    user = auth.authenticate(username=user.username, password=loginform.cleaned_data.get('password'))
                    
                    if user is not None and user.is_active:
                        auth.login(request, user) # Successful login
                        if 'next' in request.POST:
                            return HttpResponseRedirect(request.POST['next'])
                        else:
                            return HttpResponseRedirect(reverse('profile'))
                except User.DoesNotExist:
                    messages.error(request,'<strong>Oops!</strong> You don\'t seem to be registered. Please Sign Up first!',extra_tags='alert-error')
            else:
                print signupform.errors
        
    return render_to_response('pages/login.html', locals(), context_instance= global_context(request))
Example #10
0
def login(request):
    form = LoginForm(request.POST or None)
    if request.method == 'POST':
        if form.is_valid():
            user = form.cleaned_data['user']
            auth.login(request, user)
            _next = request.GET.get('next', None)
            if _next:
                return {'redirect': _next}
            if request.user.is_operator:
                return {'redirect': 'catalog:service-orders'}
            return {'redirect': 'core:index'}
    return {
        'form': form
    }
Example #11
0
def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            cd = form.cleaned_data
            user = authenticate(username = cd.get('username'),password=cd.get('password'))
            if user:
                _login(request,user)
                next=request.REQUEST.get('next','/tests/')
                return HttpResponseRedirect(next)
            else:
                return HttpResponseRedirect(reverse('login'))
    else:
        form = LoginForm()
    rc = RequestContext(request,{'form':form})
    return render_to_response('accounts/login.html',rc)
Example #12
0
def login(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect(request.META.get('HTTP_REFERER', '/'))
    if request.method == 'GET':
        referer = request.META.get('HTTP_REFERER', '/')
        if 'accounts' in str(referer) or 'notice' in str(
                referer) or 'admin' in str(referer):
            request.session['referer'] = '/'
        else:
            request.session['referer'] = referer
        form = LoginForm()
        return render(request, 'login.html', locals())
    form = LoginForm(request.POST)
    if form.is_valid():
        data = form.clean()
        user = User.objects.get(username=data['email'])
        user = authenticate(username=data['email'], password=data['password'])
        #print data['password']
        #print user.check_password(data['password'])
        #if user.check_password(data['password']):
        #         print user
        if user is not None:
            if user.is_active:
                auth_login(request, user)
                nextpage = request.session.get('referer', '/')  # 下页地址
                is_auto_login = request.POST.get('auto')
                if not is_auto_login:
                    request.session.set_expiry(0)
                return HttpResponseRedirect(nextpage)
            else:
                return HttpResponseRedirect('/accounts/active/%s/not_active' %
                                            user.get_profile().slug)
        else:
            messages.error(request, '密码不正确!')
            return render(request, 'login.html', locals())
    else:
        return render(request, 'login.html', {"form": form})
Example #13
0
def manage_login(request):
    """
    Handle s ajax request from login-dialog.
    returns a json object with a code.
    Or renders the dedicated login page if manually enterd url.
    code 
       -1 - invalid request
        0 - invalid form input
        1 - bad login credentials
        2 - subscription is not active
        3 - success
        4 - employee with no access
        5 - employee pending
        6 - invalid recaptcha response
    """
    data = {"code": -1}
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            c = login(request, request.POST.dict().copy())
            c_type = type(c)
            if c_type is int:
                if c == 0:  # bad login credentials
                    data['code'] = 1
                elif c == 1:
                    data['code'] = 2
                elif c == 2:
                    data['code'] = 4
                elif c == 3:
                    data['code'] = 5
                elif c == 4:  # recaptcha response fail
                    data['code'] = 6
            else:
                data['code'] = 3

                # manually check the next parameter
                next = request.GET.get("next")
                if not next:
                    next = reverse("store_index")
                data['redirect_url'] = next
                # user may try to login on another tab when already in
                try:
                    CometSessionIndex.objects.create(session_key=\
                        request.session.session_key,
                        store_id=request.session['store'].objectId,
                        last_updated=timezone.now())
                except IntegrityError:
                    pass

        else:
            data['code'] = 0
    else:
        if request.session.get('account'):
            return redirect(reverse('store_index'))
        data['form'] = LoginForm()
        return render(request, 'manage/login.djhtml', data)

    if data['code'] in (1, 6):
        data['display_recaptcha'] =\
            RECAPTCHA_TOKEN in request.session and request.session[\
            RECAPTCHA_TOKEN] >= RECAPTCHA_ATTEMPTS

    return HttpResponse(json.dumps(data), content_type="application/json")
Example #14
0
def manage_login(request):
    """
    Handle s ajax request from login-dialog.
    returns a json object with a code.
    Or renders the dedicated login page if manually enterd url.
    code 
       -1 - invalid request
        0 - invalid form input
        1 - bad login credentials
        2 - subscription is not active
        3 - success
        4 - employee with no access
        5 - employee pending
        6 - invalid recaptcha response
    """
    data = {"code":-1}
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid(): 
            c = login(request, request.POST.dict().copy())
            c_type = type(c)
            if c_type is int:
                if c == 0: # bad login credentials
                    data['code'] = 1 
                elif c == 1:
                    data['code'] = 2
                elif c == 2:
                    data['code'] = 4
                elif c == 3:
                    data['code'] = 5
                elif c == 4: # recaptcha response fail
                    data['code'] = 6
            else:
                data['code'] = 3
                        
                # manually check the next parameter
                next = request.GET.get("next")
                if not next:
                    next = reverse("store_index")
                data['redirect_url'] = next
                # user may try to login on another tab when already in
                try:
                    CometSessionIndex.objects.create(session_key=\
                        request.session.session_key, 
                        store_id=request.session['store'].objectId,
                        last_updated=timezone.now())
                except IntegrityError:
                    pass
                            
        else:
            data['code'] =  0        
    else:
        if request.session.get('account'):
            return redirect(reverse('store_index'))
        data['form'] = LoginForm()
        return render(request, 'manage/login.djhtml', data)
        
    if data['code'] in (1, 6):
        data['display_recaptcha'] =\
            RECAPTCHA_TOKEN in request.session and request.session[\
            RECAPTCHA_TOKEN] >= RECAPTCHA_ATTEMPTS

    return HttpResponse(json.dumps(data), 
        content_type="application/json")