Merge branch 'master' of github.com:MongoEngine/mongoengine
This commit is contained in:
commit
7ce34ca019
@ -6,10 +6,29 @@ from django.utils.importlib import import_module
|
|||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
|
__all__ = (
|
||||||
|
'get_user_document',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
MONGOENGINE_USER_DOCUMENT = getattr(
|
MONGOENGINE_USER_DOCUMENT = getattr(
|
||||||
settings, 'MONGOENGINE_USER_DOCUMENT', 'mongoengine.django.auth.User')
|
settings, 'MONGOENGINE_USER_DOCUMENT', 'mongoengine.django.auth.User')
|
||||||
|
|
||||||
|
|
||||||
|
def get_user_document(self):
|
||||||
|
"""Get the user docuemnt class user for authentcation.
|
||||||
|
|
||||||
|
This is the class defined in settings.MONGOENGINE_USER_DOCUMENT, which
|
||||||
|
defaults to `mongoengine.django.auth.User`.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
name = MONGOENGINE_USER_DOCUMENT
|
||||||
|
dot = name.rindex('.')
|
||||||
|
module = import_module(name[:dot])
|
||||||
|
return getattr(module, name[dot + 1:])
|
||||||
|
|
||||||
|
|
||||||
class MongoUserManager(UserManager):
|
class MongoUserManager(UserManager):
|
||||||
"""A User manager wich allows the use of MongoEngine documents in Django.
|
"""A User manager wich allows the use of MongoEngine documents in Django.
|
||||||
|
|
||||||
@ -44,7 +63,7 @@ class MongoUserManager(UserManager):
|
|||||||
def contribute_to_class(self, model, name):
|
def contribute_to_class(self, model, name):
|
||||||
super(MongoUserManager, self).contribute_to_class(model, name)
|
super(MongoUserManager, self).contribute_to_class(model, name)
|
||||||
self.dj_model = self.model
|
self.dj_model = self.model
|
||||||
self.model = self._get_user_document()
|
self.model = get_user_document()
|
||||||
|
|
||||||
self.dj_model.USERNAME_FIELD = self.model.USERNAME_FIELD
|
self.dj_model.USERNAME_FIELD = self.model.USERNAME_FIELD
|
||||||
username = models.CharField(_('username'), max_length=30, unique=True)
|
username = models.CharField(_('username'), max_length=30, unique=True)
|
||||||
@ -55,16 +74,6 @@ class MongoUserManager(UserManager):
|
|||||||
field = models.CharField(_(name), max_length=30)
|
field = models.CharField(_(name), max_length=30)
|
||||||
field.contribute_to_class(self.dj_model, name)
|
field.contribute_to_class(self.dj_model, name)
|
||||||
|
|
||||||
def _get_user_document(self):
|
|
||||||
try:
|
|
||||||
name = MONGOENGINE_USER_DOCUMENT
|
|
||||||
dot = name.rindex('.')
|
|
||||||
module = import_module(name[:dot])
|
|
||||||
return getattr(module, name[dot + 1:])
|
|
||||||
except ImportError:
|
|
||||||
raise ImproperlyConfigured("Error importing %s, please check "
|
|
||||||
"settings.MONGOENGINE_USER_DOCUMENT"
|
|
||||||
% name)
|
|
||||||
|
|
||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
try:
|
try:
|
||||||
@ -85,5 +94,14 @@ class MongoUserManager(UserManager):
|
|||||||
|
|
||||||
|
|
||||||
class MongoUser(models.Model):
|
class MongoUser(models.Model):
|
||||||
objects = MongoUserManager()
|
""""Dummy user model for Django.
|
||||||
|
|
||||||
|
MongoUser is used to replace Django's UserManager with MongoUserManager.
|
||||||
|
The actual user document class is mongoengine.django.auth.User or any
|
||||||
|
other document class specified in MONGOENGINE_USER_DOCUMENT.
|
||||||
|
|
||||||
|
To get the user document class, use `get_user_document()`.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
objects = MongoUserManager()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user