summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorTobias Bengfort <tobias.bengfort@posteo.de>2019-03-08 17:48:50 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-06-05 13:39:46 +0200
commit75337a60509fdfdd321a5caf8e30d57fff6b9518 (patch)
treef69d37eaa5a1be92bf82ae089744d73b59506de1 /django
parent4b6dfe16226a81fea464ac5f77942f4d6ba266e8 (diff)
Fixed #30226 -- Added BaseBackend for authentication.
Diffstat (limited to 'django')
-rw-r--r--django/contrib/auth/backends.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/django/contrib/auth/backends.py b/django/contrib/auth/backends.py
index 7549d71273..d20987f8e1 100644
--- a/django/contrib/auth/backends.py
+++ b/django/contrib/auth/backends.py
@@ -8,7 +8,24 @@ from django.utils.deprecation import RemovedInDjango31Warning
UserModel = get_user_model()
-class ModelBackend:
+class BaseBackend:
+ def authenticate(self, request, **kwargs):
+ return None
+
+ def get_user(self, user_id):
+ return None
+
+ def get_group_permissions(self, user_obj, obj=None):
+ return set()
+
+ def get_all_permissions(self, user_obj, obj=None):
+ return self.get_group_permissions(user_obj, obj=obj)
+
+ def has_perm(self, user_obj, perm, obj=None):
+ return perm in self.get_all_permissions(user_obj, obj=obj)
+
+
+class ModelBackend(BaseBackend):
"""
Authenticates against settings.AUTH_USER_MODEL.
"""
@@ -86,7 +103,7 @@ class ModelBackend:
return user_obj._perm_cache
def has_perm(self, user_obj, perm, obj=None):
- return user_obj.is_active and perm in self.get_all_permissions(user_obj, obj)
+ return user_obj.is_active and super().has_perm(user_obj, perm, obj=obj)
def has_module_perms(self, user_obj, app_label):
"""