Beispiel #1
0
def login(request, redirect_field_name=REDIRECT_FIELD_NAME, **kwargs):
    redirect_to = request.REQUEST.get(redirect_field_name, '')

    value = None

    if 'ipauth_meta_key' in kwargs:
        log.debug('Getting remote IP address from %s' %
                (kwargs['ipauth_meta_key'],))
        value = request.META.get(kwargs.pop('ipauth_meta_key'), None)

    if value is None and hasattr(settings,'IPAUTH_IP_META_KEY'):
        log.debug('Getting remote IP address from %s' %
            (settings.IPAUTH_IP_META_KEY,))
        value = request.META.get(settings.IPAUTH_IP_META_KEY, None)

    if value is None:
        log.debug('Getting remote IP address from REMOTE_ADDR')
        value = request.META['REMOTE_ADDR']

    log.debug('Attempting to authenticate %s' % (unicode(value),))
    user = authenticate(ip=value)
    
    if user is None:
        return base_login_view(request, redirect_field_name=redirect_field_name, 
                               **kwargs)
    
    auth_login(request, user)
    
    messages.add_message(request, messages.INFO,
                        'You are now logged in as %s' % (user.get_full_name(),))
    
    netloc = urlparse.urlparse(redirect_to)[1]
    
    # Use default setting if redirect_to is empty
    if not redirect_to:
        redirect_to = settings.LOGIN_REDIRECT_URL
    
    # Security check -- don't allow redirection to a different
    # host.
    elif netloc and netloc != request.get_host():
        redirect_to = settings.LOGIN_REDIRECT_URL
    
    if request.session.test_cookie_worked():
        request.session.delete_test_cookie()
    
    return HttpResponseRedirect(redirect_to)
Beispiel #2
0
    def process_request(self, request, redirect_field_name=REDIRECT_FIELD_NAME):
        # gather some info
        user = request.user
        request_ip = get_ip(request)
        ip = IP(request_ip)
        ip_range = Range.objects.filter(Q(lower=ip) | Q(lower__lte=ip, upper__gte=ip))

        if ip_range and not user.is_authenticated():
            redirect_to = request.REQUEST.get(redirect_field_name, '')
            request.included_ip = True
            included_ip_found.send(sender=request, ip=request_ip)

            user = authenticate(ip=request_ip)

            if user is None:
                return base_login_view(request, redirect_field_name=redirect_field_name,
                                       **kwargs)

            auth_login(request, user)

            messages.add_message(request, messages.INFO,
                                'You are now logged in as %s' % (user.get_full_name(),))

            netloc = urlparse.urlparse(redirect_to)[1]

            # Use default setting if redirect_to is empty
            if not redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL

            # Security check -- don't allow redirection to a different
            # host.
            elif netloc and netloc != request.get_host():
                redirect_to = settings.LOGIN_REDIRECT_URL

            if request.session.test_cookie_worked():
                request.session.delete_test_cookie()

            return HttpResponseRedirect(redirect_to)
Beispiel #3
0
def login(request, redirect_field_name=REDIRECT_FIELD_NAME, **kwargs):
    redirect_to = request.REQUEST.get(redirect_field_name, '')
    username = request.POST['username']
    password = request.POST['password']
    # START Block from ipauth.views
    ip = None
    if 'ipauth_meta_key' in kwargs:
        ip = request.META.get(kwargs.pop('ipauth_meta_key'), None)
    if ip is None and hasattr(settings,'IPAUTH_IP_META_KEY'):
        ip = request.META.get(settings.IPAUTH_IP_META_KEY, None)
    if ip is None:
        ip = request.META['REMOTE_ADDR']
    # FIN Block from ipauth.views
    user = authenticate(username=username, password=password, ip=ip)
    if user is None or not user.is_active:
        return base_login_view(request, redirect_field_name=redirect_field_name, 
                               **kwargs)
    auth_login(request, user)

    messages.add_message(request, messages.INFO, 'You are now logged in as %s on %s' % (user.get_full_name(), ip))

    netloc = urlparse.urlparse(redirect_to)[1]

    # Use default setting if redirect_to is empty
    if not redirect_to:
        redirect_to = settings.LOGIN_REDIRECT_URL

    # Security check -- don't allow redirection to a different
    # host.
    elif netloc and netloc != request.get_host():
        redirect_to = settings.LOGIN_REDIRECT_URL

    if request.session.test_cookie_worked():
        request.session.delete_test_cookie()

    return HttpResponseRedirect(redirect_to)
Beispiel #4
0
def login_view(request):
    return base_login_view(request, authentication_form=AuthenticationForm)