kopia lustrzana https://github.com/jedie/PyInventory
Merge pull request #43 from jedie/auto-login
Add a auto login if Django dev. server is usedpull/46/head
commit
e60eccc0a2
|
@ -155,6 +155,7 @@ Files are separated into: "/src/" and "/development/"
|
|||
== history
|
||||
|
||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.0...master|compare v0.9.0...master]] **dev**
|
||||
* Add a auto login if Django dev. server is used.
|
||||
** tbc
|
||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0|v0.9.0 - 11.04.2021]]
|
||||
** Use https://github.com/jedie/dev-shell for development
|
||||
|
|
|
@ -216,7 +216,9 @@ Files are separated into: "/src/" and "/development/"
|
|||
history
|
||||
-------
|
||||
|
||||
* `compare v0.9.0...master <https://github.com/jedie/PyInventory/compare/v0.9.0...master>`_ **dev**
|
||||
* `compare v0.9.0...master <https://github.com/jedie/PyInventory/compare/v0.9.0...master>`_ **dev**
|
||||
|
||||
* Add a auto login if Django dev. server is used.
|
||||
|
||||
* tbc
|
||||
|
||||
|
@ -375,4 +377,4 @@ donation
|
|||
|
||||
------------
|
||||
|
||||
``Note: this file is generated from README.creole 2021-04-11 15:57:00 with "python-creole"``
|
||||
``Note: this file is generated from README.creole 2021-04-28 16:53:58 with "python-creole"``
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
"""
|
||||
Django settings for local development
|
||||
|
||||
|
||||
"""
|
||||
|
||||
import sys as __sys
|
||||
|
@ -37,11 +35,21 @@ DATABASES = {
|
|||
}
|
||||
print(f'Use Database: {DATABASES["default"]["NAME"]!r}', file=__sys.stderr)
|
||||
|
||||
# _____________________________________________________________________________
|
||||
# AlwaysLoggedInAsSuperUser
|
||||
|
||||
DEFAULT_USERNAME = 'local-test-superuser'
|
||||
DEFAULT_USERPASS = 'test'
|
||||
DEFAULT_USEREMAIL = 'nobody@local.intranet'
|
||||
|
||||
MIDDLEWARE = MIDDLEWARE.copy()
|
||||
MIDDLEWARE.append('inventory_project.tests.middleware.AlwaysLoggedInAsSuperUser')
|
||||
|
||||
# _____________________________________________________________________________
|
||||
# Django-Debug-Toolbar
|
||||
|
||||
INSTALLED_APPS += ['debug_toolbar']
|
||||
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
|
||||
MIDDLEWARE.append('debug_toolbar.middleware.DebugToolbarMiddleware')
|
||||
|
||||
DEBUG_TOOLBAR_PATCH_SETTINGS = True
|
||||
from debug_toolbar.settings import CONFIG_DEFAULTS as DEBUG_TOOLBAR_CONFIG # noqa
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import authenticate, login
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
def _print_and_message(request, msg, level=messages.WARNING):
|
||||
print(f' *** {msg} ***', file=sys.stderr)
|
||||
messages.add_message(request, level, msg)
|
||||
|
||||
|
||||
class AlwaysLoggedInAsSuperUser:
|
||||
"""
|
||||
Auto login all users as default superuser.
|
||||
Default user will be created, if not exist.
|
||||
|
||||
Disable it by deactivate the default user.
|
||||
"""
|
||||
|
||||
def __init__(self, get_response):
|
||||
assert 'RUN_MAIN' in os.environ, 'Only allowed running by Django dev. server !'
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
self._auto_login(request)
|
||||
response = self.get_response(request)
|
||||
|
||||
return response
|
||||
|
||||
def _auto_login(self, request):
|
||||
if request.user.is_authenticated:
|
||||
return
|
||||
|
||||
try:
|
||||
user = User.objects.get(username=settings.DEFAULT_USERNAME)
|
||||
except User.DoesNotExist:
|
||||
_print_and_message(request, f'Create test django user: {settings.DEFAULT_USERNAME!r}')
|
||||
User.objects.create_superuser(
|
||||
username=settings.DEFAULT_USERNAME,
|
||||
email=settings.DEFAULT_USEREMAIL,
|
||||
password=settings.DEFAULT_USERPASS
|
||||
)
|
||||
else:
|
||||
if not user.is_active:
|
||||
_print_and_message(request, 'Default User was deactivated!', level=messages.ERROR)
|
||||
return
|
||||
|
||||
user.set_password(settings.DEFAULT_USERPASS)
|
||||
user.save()
|
||||
|
||||
_print_and_message(
|
||||
request,
|
||||
f'Autologin applied. Your logged in as {settings.DEFAULT_USERNAME!r}'
|
||||
)
|
||||
user = authenticate(
|
||||
request=request,
|
||||
username=settings.DEFAULT_USERNAME,
|
||||
password=settings.DEFAULT_USERPASS
|
||||
)
|
||||
login(request, user)
|
Ładowanie…
Reference in New Issue