From bd5ea55bd5bc29911f3ee6c7b3210dbff6c112b9 Mon Sep 17 00:00:00 2001 From: Mateus Caruccio Date: Fri, 19 Apr 2013 13:45:11 -0300 Subject: [PATCH 1/2] Auth to remote mongod I'm not sure, but it looks like we need to authenticate before accessing a database on a remote mongod. Maybe that is something new from pymongo/mongokit ? Warning: code wasn't tested to exhaustion. --- django_mongokit/shortcut.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/django_mongokit/shortcut.py b/django_mongokit/shortcut.py index b16363c..72d4aa6 100644 --- a/django_mongokit/shortcut.py +++ b/django_mongokit/shortcut.py @@ -45,9 +45,14 @@ # differently as long as you use get_database() def get_database(this_connection=connection): if __django_12__: - return this_connection[settings.DATABASES['mongodb']['NAME']] + db = this_connection[settings.DATABASES['mongodb']['NAME']] else: - return this_connection[settings.MONGO_DATABASE_NAME] + db = this_connection[settings.MONGO_DATABASE_NAME] + try: + db.authenticate(settings.DATABASES['mongodb'].get('USER', ''), settings.DATABASES['mongodb'].get('PASSWORD', '')) + except AttributeError: + pass + return db def get_version(): From 2327330cf501f27a8e186332e891c379a6cbdf89 Mon Sep 17 00:00:00 2001 From: Mateus Caruccio Date: Fri, 19 Apr 2013 20:47:53 -0300 Subject: [PATCH 2/2] fix db config for django < 1.2 --- django_mongokit/shortcut.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/django_mongokit/shortcut.py b/django_mongokit/shortcut.py index 72d4aa6..f9158c1 100644 --- a/django_mongokit/shortcut.py +++ b/django_mongokit/shortcut.py @@ -45,13 +45,15 @@ # differently as long as you use get_database() def get_database(this_connection=connection): if __django_12__: - db = this_connection[settings.DATABASES['mongodb']['NAME']] + name = settings.DATABASES['mongodb'].get('NAME') + user = settings.DATABASES['mongodb'].get('USER') + password = settings.DATABASES['mongodb'].get('PASSWORD') else: - db = this_connection[settings.MONGO_DATABASE_NAME] - try: - db.authenticate(settings.DATABASES['mongodb'].get('USER', ''), settings.DATABASES['mongodb'].get('PASSWORD', '')) - except AttributeError: - pass + name = settings.MONGO_DATABASE_NAME + user = settings.MONGO_DATABASE_NAME + password = settings.MONGO_DATABASE_NAME + db = this_connection[name] + db.authenticate(user, password) return db