Fix circular import issue with django auth (#531) (#545)

This commit is contained in:
Ross Lawley 2014-01-24 13:54:16 +00:00
parent 0e5a0661e1
commit bc08bea284
3 changed files with 11 additions and 3 deletions

View File

@ -5,6 +5,7 @@ Changelog
Changes in 0.8.7 Changes in 0.8.7
================ ================
- Stop ensure_indexes running on a secondaries (#555) - Stop ensure_indexes running on a secondaries (#555)
- Fix circular import issue with django auth (#531) (#545)
Changes in 0.8.6 Changes in 0.8.6
================ ================

View File

@ -9,7 +9,6 @@ from django.contrib.auth.models import AnonymousUser
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from .utils import datetime_now from .utils import datetime_now
from .mongo_auth.models import get_user_document
REDIRECT_FIELD_NAME = 'next' REDIRECT_FIELD_NAME = 'next'
@ -382,9 +381,10 @@ class MongoEngineBackend(object):
supports_object_permissions = False supports_object_permissions = False
supports_anonymous_user = False supports_anonymous_user = False
supports_inactive_user = False supports_inactive_user = False
_user_doc = False
def authenticate(self, username=None, password=None): def authenticate(self, username=None, password=None):
user = get_user_document().objects(username=username).first() user = self.user_document.objects(username=username).first()
if user: if user:
if password and user.check_password(password): if password and user.check_password(password):
backend = auth.get_backends()[0] backend = auth.get_backends()[0]
@ -393,8 +393,14 @@ class MongoEngineBackend(object):
return None return None
def get_user(self, user_id): def get_user(self, user_id):
return get_user_document().objects.with_id(user_id) return self.user_document.objects.with_id(user_id)
@property
def user_document(self):
if self._user_doc is False:
from .mongo_auth.models import get_user_document
self._user_doc = get_user_document()
return self._user_doc
def get_user(userid): def get_user(userid):
"""Returns a User object from an id (User.id). Django's equivalent takes """Returns a User object from an id (User.id). Django's equivalent takes

View File

@ -16,6 +16,7 @@ settings.configure(
USE_TZ=True, USE_TZ=True,
INSTALLED_APPS=('django.contrib.auth', 'mongoengine.django.mongo_auth'), INSTALLED_APPS=('django.contrib.auth', 'mongoengine.django.mongo_auth'),
AUTH_USER_MODEL=('mongo_auth.MongoUser'), AUTH_USER_MODEL=('mongo_auth.MongoUser'),
AUTHENTICATION_BACKENDS = ('mongoengine.django.auth.MongoEngineBackend',)
) )
try: try: