From 0990cce75473e377bc64b9e2fdb7746ded17ddef Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Wed, 10 May 2006 04:25:39 +0000 Subject: [PATCH] multi-auth: Added a couple of auth backends. git-svn-id: http://code.djangoproject.com/svn/django/branches/multi-auth@2883 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/auth/backends.py | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 django/contrib/auth/backends.py diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py new file mode 100644 index 0000000000..bc3db2f663 --- /dev/null +++ b/django/contrib/auth/backends.py @@ -0,0 +1,51 @@ +from django.conf import settings +from django.contrib.auth.models import User, check_password + +class SettingsBackend: + """ + Authenticate against vars in settings.py Use the login name, and a hash + of the password. + + ADMIN_LOGIN = 'admin' + ADMIN_PASSWORD = 'sha1$4e987$afbcf42e21bd417fb71db8c66b321e9fc33051de' + """ + def authenticate(self, username=None, password=None): + login_valid = (settings.ADMIN_LOGIN == username) + pwd_valid = check_password(password, settings.ADMIN_PASSWORD) + if login_valid and pwd_valid: + # TODO: This should be abstracted out someplace else. + try: + user = User.objects.get(username=username) + except User.DoesNotExist: + user = User(username=username, password='') + user.is_staff = True + user.is_superuser = True + user.save() + return user + return None + + def get_user(self, user_id): + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + return None + +class ModelBackend: + """ + Authenticate against django.contrib.auth.models.User + """ + # TODO: Model, login attribute name and password attribute name should be + # configurable. + def authenticate(self, username=None, password=None): + try: + user = User.objects.get(username=username) + if user.check_password(password): + return user + except User.DoesNotExist: + return None + + def get_user(self, user_id): + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + return None