コード例 #1
0
    def test_login_form(self):
        """
        Check that the ``LoginForm`` requires both identification and password

        """
        invalid_data_dicts = [{
            'data': {
                'identification': '',
                'password': '******'
            },
            'error': ('identification', [u'Please supply your email.'])
        }, {
            'data': {
                'identification': 'john',
                'password': '******'
            },
            'error': ('__all__', [
                u'Please enter a correct email and password. Note that fields are case-sensitive.'
            ])
        }]

        for invalid_dict in invalid_data_dicts:
            form = AuthenticationForm(data=invalid_dict['data'])
            self.failIf(form.is_valid())
            self.assertEqual(form.errors[invalid_dict['error'][0]],
                             invalid_dict['error'][1])

        valid_data_dicts = [{
            'identification': '*****@*****.**',
            'password': '******'
        }]

        for valid_dict in valid_data_dicts:
            form = AuthenticationForm(valid_dict)
            self.failUnless(form.is_valid())
コード例 #2
0
ファイル: ajax.py プロジェクト: acfrmarine/squidle
def signin_form(request, form):
    dajax = Dajax()
    form = AuthenticationForm(deserialize_form(form))
    form_id = 'aform'

    try:
        dajax.remove_css_class('#'+form_id+' input', 'error')
        dajax.script('form_errors(false,"{0}");'.format(form_id))
        if not form.is_valid():
            raise Exception('Error')

        identification, password, remember_me = (form.cleaned_data['identification'],
                                                 form.cleaned_data['password'],
                                                 form.cleaned_data['remember_me'])
        user = authenticate(identification=identification, password=password)
        if user.is_active:
            login(request, user)
            if remember_me:
                request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400)
            else:
                request.session.set_expiry(0)

            dajax.script('update_sign_in({0},"{1}");'.format(user.id,user.username))
    except Exception as e:
        dajax.remove_css_class('#'+form_id+' input', 'error')
        print e
        dajax.script("form_errors(true,'{0}','{1}<br>{2}');".format(form_id,e.message,form.errors))
        for error in form.errors:
            dajax.add_css_class('#'+form_id+' #id_%s' % error, 'error')

    return dajax.json()
コード例 #3
0
def logins(request):
    #logger.debug('request.method: {0}'.format(request.method))
    if request.method == 'POST':
        request.session.set_test_cookie()
        logger.debug('request.POST: {0}'.format(request.POST))
        login_form = AuthenticationForm(request, request.POST)
        #return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}', mimetype="application/json")
        if login_form.is_valid():
            return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}',
                                mimetype="application/json")
            #if request.is_ajax:
            #    identification, password, remember_me = (login_form.cleaned_data['identification'],
            #                                         login_form.cleaned_data['password'],
            #                                         login_form.cleaned_data['remember_me'])
            #    user = authenticate(identification=identification, password=password)
            #    if user is not None:
            #        #return HttpResponseRedirect(request.REQUEST.get('next', '/'))
            #        return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}', mimetype="application/json")
            #    else:
            #        return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json")
        else:
            return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json")
    else:
        #return HttpResponseForbidden() # catch invalid ajax and all non ajax**
        return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json")
コード例 #4
0
def signin_form_test(request, form, success_url=None):
    logger.debug("signin_form")
    dajax = Dajax()
    form = AuthenticationForm(deserialize_form(form))
    if form.is_valid():
        identification, password, remember_me = (
            form.cleaned_data['identification'], form.cleaned_data['password'],
            form.cleaned_data['remember_me'])
        user = authenticate(identification=identification, password=password)
        if user.is_active:
            login(request, user)
            if remember_me:
                request.session.set_expiry(
                    userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400)
            else:
                request.session.set_expiry(0)

            # TODO: добавить сообщения
            if userena_settings.USERENA_USE_MESSAGES:
                logger.debug(u"Message: {0}".format(
                    _('You have been signed in.')))
                messages.success(request,
                                 _('You have been signed in.'),
                                 fail_silently=True)

            # TODO: изменить переадресацию после регистрации
            #redirect_to = signin_redirect(REDIRECT_FIELD_NAME, user)
            redirect_to = reverse('userena_profile_detail',
                                  kwargs={'username': user.username})
            logger.debug("Redirect: {0}".format(redirect_to))
        else:
            redirect_to = reverse('userena_disabled',
                                  kwargs={'username': user.username})
            logger.debug("Redirect: {0}".format(redirect_to))

        dajax.remove_css_class('#signin_form div', 'error')
        dajax.clear('#signin_form .help-inline', 'innerHTML')
        dajax.redirect(redirect_to, delay=10)
    else:
        dajax.remove_css_class('#signin_form div', 'error')
        dajax.clear('#signin_form .help-inline', 'innerHTML')
        dajax.add_css_class('#signin_form div.alert-error', 'hide')
        try:
            if form.errors['__all__'] is not None:
                dajax.remove_css_class('#signin_form div.alert-error', 'hide')
                dajax.assign(
                    '#signin_form .alert-error', 'innerHTML',
                    "<button type='button' class='close' data-dismiss='alert'>×</button>{0}"
                    .format(form.errors['__all__']))
        except Exception, e:
            pass
        for error in form.errors:
            dajax.add_css_class('#signin_form #gr_id_%s' % error, 'error')
            #dajax.remove_css_class('#signin_form #e_id_%s' % error, 'hide')
            dajax.assign('#signin_form #e_id_%s' % error, 'innerHTML',
                         form.errors[error][0])
コード例 #5
0
def LoginUser(request):
    url_redirect = request.GET.get("next", "/")
    auth_basic_form = SignupFormOnlyEmail()
    if request.method == 'POST':
        login_form = AuthenticationForm(request.POST)
        login_form.fields['identification'].label = 'Email'
        if login_form.is_valid():
            username = request.POST['identification']
            password = request.POST['password']
            user = authenticate(identification=username, password=password)
            if user is not None:
                login(request, user)
                x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
                if x_forwarded_for:
                    ip = x_forwarded_for.split(',')[0]
                else:
                    ip = request.META.get('REMOTE_ADDR')

                g = GeoIP()
                lat, lon = g.lat_lon(ip)
                #lat,lon = g.lat_lon('186.83.0.68')
                UserProfile.objects.filter(user=user).update(
                    coords='POINT(' + str(lon) + ' ' + str(lat) + ')')
                return redirect(url_redirect)
            else:
                diccionary = {
                    'message': 'Invalid information',
                    'login': login_form,
                    'auth_basic': auth_basic_form,
                }
        else:
            diccionary = {
                'message': 'Invalid information',
                'login': login_form,
                'auth_basic': auth_basic_form,
            }
    else:
        login_form = AuthenticationForm()
        login_form.fields['identification'].label = 'Email'
        diccionary = {
            'login': login_form,
            'auth_basic': auth_basic_form,
        }
    if 'message' in request.session:
        diccionary['message'] = request.session['message']
        del request.session['message']
    return render(request, 'login.html', diccionary)
コード例 #6
0
ファイル: ajax.py プロジェクト: baffolobill/django-userena
def signin_form_test(request, form, success_url=None):
    logger.debug("signin_form")
    dajax = Dajax()
    form = AuthenticationForm(deserialize_form(form))
    if form.is_valid():
        identification, password, remember_me = (form.cleaned_data['identification'],
                                                 form.cleaned_data['password'],
                                                 form.cleaned_data['remember_me'])
        user = authenticate(identification=identification, password=password)
        if user.is_active:
            login(request, user)
            if remember_me:
                request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400)
            else: request.session.set_expiry(0)

            # TODO: добавить сообщения
            if userena_settings.USERENA_USE_MESSAGES:
                logger.debug(u"Message: {0}".format(_('You have been signed in.')))
                messages.success(request, _('You have been signed in.'), fail_silently=True)

            # TODO: изменить переадресацию после регистрации
            #redirect_to = signin_redirect(REDIRECT_FIELD_NAME, user)
            redirect_to = reverse('userena_profile_detail', kwargs={'username': user.username})
            logger.debug("Redirect: {0}".format(redirect_to))
        else:
            redirect_to = reverse('userena_disabled', kwargs={'username': user.username})
            logger.debug("Redirect: {0}".format(redirect_to))

        dajax.remove_css_class('#signin_form div', 'error')
        dajax.clear('#signin_form .help-inline', 'innerHTML')
        dajax.redirect(redirect_to, delay=10)
    else:
        dajax.remove_css_class('#signin_form div', 'error')
        dajax.clear('#signin_form .help-inline', 'innerHTML')
        dajax.add_css_class('#signin_form div.alert-error', 'hide')
        try:
            if form.errors['__all__'] is not None:
                dajax.remove_css_class('#signin_form div.alert-error', 'hide')
                dajax.assign('#signin_form .alert-error', 'innerHTML',
                "<button type='button' class='close' data-dismiss='alert'>×</button>{0}".format(form.errors['__all__']))
        except Exception, e:
            pass
        for error in form.errors:
            dajax.add_css_class('#signin_form #gr_id_%s' % error, 'error')
            #dajax.remove_css_class('#signin_form #e_id_%s' % error, 'hide')
            dajax.assign('#signin_form #e_id_%s' % error, 'innerHTML', form.errors[error][0])
コード例 #7
0
ファイル: views.py プロジェクト: chuan137/yunda
def signin(request):
    """
    Signin using email or username with password.

    Signs a user in by combining email/username with password. If the
    combination is correct and the user :func:`is_active` the
    :func:`redirect_signin_function` is called with the arguments
    ``REDIRECT_FIELD_NAME`` and an instance of the :class:`User` who is is
    trying the login. The returned value of the function will be the URL that
    is redirected to.


    **Context**

    ``form``
        Form used for authentication supplied by ``auth_form``.

    """
    form = AuthenticationForm()
    if request.method == 'POST':
        form = AuthenticationForm(request.POST, request.FILES)
        if form.is_valid():
            identification, password, remember_me = (form.cleaned_data['identification'],
                                                     form.cleaned_data['password'],
                                                     form.cleaned_data['remember_me'])
            user = authenticate(identification=identification,
                                password=password)
            if user.is_active:
                login(request, user)
                if remember_me:
                    request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400)
                else: request.session.set_expiry(0)

                # send a signal that a user has signed in
                userena_signals.account_signin.send(sender=None, user=user)

                return {'user':{"username":user.get_full_name(), "customer_number":user.userprofile.customer_number}}
            else:
                return {'error':"无效的用户。"}
        else:
            return {'error':"输入数据有误。"}
コード例 #8
0
ファイル: views.py プロジェクト: jerryxing98/Tully
def authapi_signin(request, auth_form=AuthenticationForm,
           template_name='authapi/signin_form.html',
           extra_context=None):
    form = auth_form()
    form = AuthenticationForm()
    
    if request.method == 'POST':
        form = auth_form(request.POST, request.FILES)
        if form.is_valid():
            identification, password, remember_me = (form.cleaned_data['identification'],
                                                     form.cleaned_data['password'],
                                                     form.cleaned_data['remember_me'])
            user = authenticate(identification=identification,
                                password=password)
            if user and user.is_active:
                login(request, user)
                result = True
            else:
                result = False
    response = HttpResponse(json.dumps(result), mimetype = u'application/json')
    return response