# HG changeset patch # User ymh # Date 1396365871 -7200 # Node ID 33183949c9b8d39b6d1b564f0ead74c287ceb58b # Parent d6bc9a2cc1310cce676a0dd5e1873b34dd873e4c break authentication loop on egonomy diff -r d6bc9a2cc131 -r 33183949c9b8 src/egonomy/auth/backends.py --- a/src/egonomy/auth/backends.py Tue Apr 01 14:39:26 2014 +0200 +++ b/src/egonomy/auth/backends.py Tue Apr 01 17:24:31 2014 +0200 @@ -9,6 +9,7 @@ from django.conf import settings from django.contrib.auth import get_user_model +from django.http.request import HttpRequest from egonomy.auth import clean_egonomy_username, get_http_session @@ -20,8 +21,15 @@ Authenticate against egonomy. """ - def authenticate(self, username=None, password=None): + def authenticate(self, username=None, password=None, **kwargs): + + request_meta = getattr(kwargs.get('request', HttpRequest()), 'META', {}) + logger.debug("Egonomy backend : REMOTE_ADDR : %r - REMOTE_HOST : %r" % (request_meta.get('REMOTE_ADDR',''), request_meta.get('REMOTE_HOST',''))) + + if request_meta.get('REMOTE_ADDR', None) and request_meta.get('REMOTE_ADDR', None) == getattr(settings, "EGONOMY_SERVER_IP", ''): + logger.debug("Egonomy backend : IP is %s - return None" % getattr(settings, "EGONOMY_SERVER_IP", '')) + return None User = get_user_model() login_url = getattr(settings, "EGONOMY_LOGIN_URL", None) diff -r d6bc9a2cc131 -r 33183949c9b8 src/egonomy/config.py.tmpl --- a/src/egonomy/config.py.tmpl Tue Apr 01 14:39:26 2014 +0200 +++ b/src/egonomy/config.py.tmpl Tue Apr 01 17:24:31 2014 +0200 @@ -154,7 +154,8 @@ EMAIL_PORT = %(email_port)d EGONOMY_URL = '#' -EGONOMY_LOGIN_URL ='' +EGONOMY_SERVER_IP = '' +EGONOMY_LOGIN_URL = '' EGONOMY_TOKEN_NAME = 'egonomytoken' EGONOMY_TOKEN_CHECK_URL = '' diff -r d6bc9a2cc131 -r 33183949c9b8 src/egonomy/settings.py --- a/src/egonomy/settings.py Tue Apr 01 14:39:26 2014 +0200 +++ b/src/egonomy/settings.py Tue Apr 01 17:24:31 2014 +0200 @@ -194,6 +194,7 @@ TASTYPIE_DEFAULT_FORMATS = ['json'] EGONOMY_URL = '' +EGONOMY_SERVER_IP = '' EGONOMY_LOGIN_URL ='' EGONOMY_SALT_LENGTH = 12 EGONOMY_TOKEN_NAME = 'egonomytoken' diff -r d6bc9a2cc131 -r 33183949c9b8 src/egonomy/views.py --- a/src/egonomy/views.py Tue Apr 01 14:39:26 2014 +0200 +++ b/src/egonomy/views.py Tue Apr 01 17:24:31 2014 +0200 @@ -868,7 +868,7 @@ password = request.POST.get('password', '').strip() if username and password: # Test username/password combination - user = authenticate(username=username, password=password) + user = authenticate(username=username, password=password, request=request) # Found a match if user is not None: # User is active