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
|
== history
|
||||||
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.0...master|compare v0.9.0...master]] **dev**
|
* [[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
|
** tbc
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0|v0.9.0 - 11.04.2021]]
|
* [[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
|
** Use https://github.com/jedie/dev-shell for development
|
||||||
|
|
|
@ -216,7 +216,9 @@ Files are separated into: "/src/" and "/development/"
|
||||||
history
|
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
|
* 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
|
Django settings for local development
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sys as __sys
|
import sys as __sys
|
||||||
|
@ -37,11 +35,21 @@ DATABASES = {
|
||||||
}
|
}
|
||||||
print(f'Use Database: {DATABASES["default"]["NAME"]!r}', file=__sys.stderr)
|
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
|
# Django-Debug-Toolbar
|
||||||
|
|
||||||
INSTALLED_APPS += ['debug_toolbar']
|
INSTALLED_APPS += ['debug_toolbar']
|
||||||
MIDDLEWARE += ['debug_toolbar.middleware.DebugToolbarMiddleware']
|
MIDDLEWARE.append('debug_toolbar.middleware.DebugToolbarMiddleware')
|
||||||
|
|
||||||
DEBUG_TOOLBAR_PATCH_SETTINGS = True
|
DEBUG_TOOLBAR_PATCH_SETTINGS = True
|
||||||
from debug_toolbar.settings import CONFIG_DEFAULTS as DEBUG_TOOLBAR_CONFIG # noqa
|
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