Mock authentication for development/testing

master
Robert Gerus 2020-03-07 08:39:18 +01:00
parent cd283b1423
commit 4615d3a417
2 changed files with 30 additions and 1 deletions

28
auth/mock_auth.py Normal file
View File

@ -0,0 +1,28 @@
from django.contrib.auth.models import User
from django.utils.deprecation import MiddlewareMixin
from django.utils.functional import SimpleLazyObject
class MockUser(object):
is_active = True
is_staff = True
pk = True
def has_module_perms(*args):
return True
def has_perm(*args):
return True
def __init__(self, name="mock"):
if len(User.objects.filter()) < 1:
user = User.objects.create_user(name, name + "@hackerspace.pl", name + "pass")
user.first_name = 'John'
user.last_name = 'Doe'
user.save()
def get_user(request):
user = MockUser()
return user
class Middleware(MiddlewareMixin):
def process_request(self, request):
request.user = SimpleLazyObject(lambda: get_user(request))

View File

@ -33,6 +33,7 @@ DEBUG = not PROD
ALLOWED_HOSTS = env('ALLOWED_HOSTS', 'devinventory,inventory.waw.hackerspace.pl,i,inventory').split(',')
LOGIN_REDIRECT_URL = '/admin/'
auth_middleware = 'django.contrib.auth.middleware.AuthenticationMiddleware' if PROD else 'auth.mock_auth.Middleware'
# Application definition
@ -63,7 +64,7 @@ MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
auth_middleware,
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'social_django.middleware.SocialAuthExceptionMiddleware',