From: gfawcett Date: Sun, 3 Apr 2011 02:06:14 +0000 (+0000) Subject: rename a file in auth_evergreen that was conflicting with 'django' package X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ecf8492404242b7d1c55e08378224af8875bfa04;p=syrup%2Fmasslnc.git rename a file in auth_evergreen that was conflicting with 'django' package If you are updating an existing site which used auth_evergreen, be sure to delete 'django.pyc' from the auth_evergreen directory, if it exists. git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@1315 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- diff --git a/conifer/integration/auth_evergreen/dj.py b/conifer/integration/auth_evergreen/dj.py new file mode 100644 index 0000000..1cc5d83 --- /dev/null +++ b/conifer/integration/auth_evergreen/dj.py @@ -0,0 +1,53 @@ +from eg_xmlrpc import EvergreenAuthServer +from django.contrib.auth.models import User +from django.conf import settings + +class EvergreenAuthBackend(EvergreenAuthServer): + + def __init__(self): + assert settings.EVERGREEN_GATEWAY_SERVER, \ + 'EvergreenAuthBackend requires settings.EVERGREEN_GATEWAY_SERVER' + EvergreenAuthServer.__init__( + self, settings.EVERGREEN_GATEWAY_SERVER) + + def authenticate(self, username=None, password=None): + pwd_valid = self.login(username, password) + if pwd_valid: + return self.maybe_initialize_user(username) + return None + + def get_user(self, user_id): + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + return None + + def maybe_initialize_user(self, username, look_local=True): + """Look up user in Django db; if not found, fetch user detail + from backend and set up a local user object. Return None if no + such user exists in either Django or the backend. + + Setting look_local=False skips the Django search and heads + straight to the backend; this shaves a database call when + walking a set of backends to initialize a user. Skipping + look_local on a username that already exists in Django will + certainly lead to an integrity error. + + This method is NOT part of the Django backend interface. + """ + user = None + if look_local: + try: + user = User.objects.get(username=username) + except User.DoesNotExist: + pass + if user is None: + u = self.lookup(username) + if u: # user found in Evergreen. + user = User(username=username, + first_name = u['first_name'], + last_name = u['last_name'], + email = u['email']) + user.set_unusable_password() + user.save() + return user diff --git a/conifer/integration/auth_evergreen/django.py b/conifer/integration/auth_evergreen/django.py deleted file mode 100644 index 1cc5d83..0000000 --- a/conifer/integration/auth_evergreen/django.py +++ /dev/null @@ -1,53 +0,0 @@ -from eg_xmlrpc import EvergreenAuthServer -from django.contrib.auth.models import User -from django.conf import settings - -class EvergreenAuthBackend(EvergreenAuthServer): - - def __init__(self): - assert settings.EVERGREEN_GATEWAY_SERVER, \ - 'EvergreenAuthBackend requires settings.EVERGREEN_GATEWAY_SERVER' - EvergreenAuthServer.__init__( - self, settings.EVERGREEN_GATEWAY_SERVER) - - def authenticate(self, username=None, password=None): - pwd_valid = self.login(username, password) - if pwd_valid: - return self.maybe_initialize_user(username) - return None - - def get_user(self, user_id): - try: - return User.objects.get(pk=user_id) - except User.DoesNotExist: - return None - - def maybe_initialize_user(self, username, look_local=True): - """Look up user in Django db; if not found, fetch user detail - from backend and set up a local user object. Return None if no - such user exists in either Django or the backend. - - Setting look_local=False skips the Django search and heads - straight to the backend; this shaves a database call when - walking a set of backends to initialize a user. Skipping - look_local on a username that already exists in Django will - certainly lead to an integrity error. - - This method is NOT part of the Django backend interface. - """ - user = None - if look_local: - try: - user = User.objects.get(username=username) - except User.DoesNotExist: - pass - if user is None: - u = self.lookup(username) - if u: # user found in Evergreen. - user = User(username=username, - first_name = u['first_name'], - last_name = u['last_name'], - email = u['email']) - user.set_unusable_password() - user.save() - return user diff --git a/conifer/settings.py b/conifer/settings.py index 3cc2101..4d75d04 100644 --- a/conifer/settings.py +++ b/conifer/settings.py @@ -127,7 +127,7 @@ MANAGERS = ADMINS if EVERGREEN_AUTHENTICATION: AUTHENTICATION_BACKENDS.append( - 'conifer.integration.auth_evergreen.django.EvergreenAuthBackend') + 'conifer.integration.auth_evergreen.dj.EvergreenAuthBackend') if SAKAI_LINKTOOL_AUTHENTICATION: AUTHENTICATION_BACKENDS.append(