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)
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)
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)
def login_view(request): return base_login_view(request, authentication_form=AuthenticationForm)