--- 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)
--- 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 = ''
--- 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'
--- 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