From da545cc8ec34869539d6741206793ca358541f28 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Fri, 14 Jun 2024 07:42:17 +0200 Subject: [PATCH 1/3] # Requirements update * updates requirements.txt * drops debug-toolbar --- konova/sub_settings/django_settings.py | 30 -------------------- konova/urls.py | 6 ---- requirements.txt | 38 +++++++++++++------------- 3 files changed, 19 insertions(+), 55 deletions(-) diff --git a/konova/sub_settings/django_settings.py b/konova/sub_settings/django_settings.py index eb01b8e..cc71a5f 100644 --- a/konova/sub_settings/django_settings.py +++ b/konova/sub_settings/django_settings.py @@ -83,10 +83,6 @@ INSTALLED_APPS = [ 'analysis', 'api', ] -if DEBUG: - INSTALLED_APPS += [ - 'debug_toolbar', - ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', @@ -98,10 +94,6 @@ MIDDLEWARE = [ 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] -if DEBUG: - MIDDLEWARE += [ - "debug_toolbar.middleware.DebugToolbarMiddleware", - ] ROOT_URLCONF = 'konova.urls' @@ -201,28 +193,6 @@ STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'templates/map/client/libs'), # NETGIS map client files ] -# DJANGO DEBUG TOOLBAR -INTERNAL_IPS = [ - "127.0.0.1" -] -DEBUG_TOOLBAR_CONFIG = { - "DISABLE_PANELS": { - 'debug_toolbar.panels.versions.VersionsPanel', - 'debug_toolbar.panels.timer.TimerPanel', - 'debug_toolbar.panels.settings.SettingsPanel', - 'debug_toolbar.panels.headers.HeadersPanel', - 'debug_toolbar.panels.request.RequestPanel', - 'debug_toolbar.panels.sql.SQLPanel', - 'debug_toolbar.panels.staticfiles.StaticFilesPanel', - 'debug_toolbar.panels.templates.TemplatesPanel', - 'debug_toolbar.panels.cache.CachePanel', - 'debug_toolbar.panels.signals.SignalsPanel', - 'debug_toolbar.panels.logging.LoggingPanel', - 'debug_toolbar.panels.redirects.RedirectsPanel', - 'debug_toolbar.panels.profiling.ProfilingPanel', - } -} - # EMAIL (see https://docs.djangoproject.com/en/dev/topics/email/) # CHANGE_ME !!! ONLY FOR DEVELOPMENT !!! diff --git a/konova/urls.py b/konova/urls.py index 227de54..8765f92 100644 --- a/konova/urls.py +++ b/konova/urls.py @@ -13,7 +13,6 @@ Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ -import debug_toolbar from django.contrib import admin from django.urls import path, include @@ -47,10 +46,5 @@ urlpatterns = [ path('client/proxy/wfs', ClientProxyParcelWFS.as_view(), name="client-proxy-wfs"), ] -if DEBUG: - urlpatterns += [ - path('__debug__/', include(debug_toolbar.urls)), - ] - handler404 = "konova.views.error.get_404_view" handler500 = "konova.views.error.get_500_view" diff --git a/requirements.txt b/requirements.txt index 0a0967b..2ba7efc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,30 +4,30 @@ async-timeout==4.0.3 beautifulsoup4==4.13.0b2 billiard==4.2.0 cached-property==1.5.2 -celery==5.4.0rc2 -certifi==2024.2.2 -cffi==1.16.0 +celery==5.4.0 +certifi==2024.6.2 +cffi==1.17.0rc1 chardet==5.2.0 charset-normalizer==3.3.2 click==8.1.7 click-didyoumean==0.3.1 click-plugins==1.1.1 click-repl==0.3.0 -coverage==7.4.4 -cryptography==42.0.5 +coverage==7.5.3 +cryptography==42.0.8 Deprecated==1.2.14 -Django==5.0.4 +Django==5.0.6 django-autocomplete-light==3.11.0 django-bootstrap-modal-forms==3.0.4 -django-bootstrap4==24.1 -django-debug-toolbar==4.3.0 +django-bootstrap4==24.3 django-environ==0.11.2 django-filter==24.2 django-fontawesome-5==1.0.18 -django-oauth-toolkit==2.3.0 +django-oauth-toolkit==2.4.0 django-simple-sso==1.2.0 django-tables2==2.7.0 et-xmlfile==1.1.0 +gunicorn==22.0.0 idna==3.7 importlib_metadata==7.1.0 itsdangerous==0.24 @@ -35,12 +35,12 @@ jwcrypto==1.5.6 kombu==5.3.7 oauthlib==3.2.2 openpyxl==3.2.0b1 -packaging==24.0 +packaging==24.1 pika==1.3.2 -pillow==10.2.0 -prompt-toolkit==3.0.43 -psycopg==3.1.18 -psycopg-binary==3.1.18 +pillow==10.3.0 +prompt_toolkit==3.0.47 +psycopg==3.1.19 +psycopg-binary==3.1.19 pycparser==2.22 pyparsing==3.1.2 pypng==0.20220715.0 @@ -49,12 +49,12 @@ python-dateutil==2.9.0.post0 pytz==2024.1 PyYAML==6.0.1 qrcode==7.3.1 -redis==5.1.0b4 -requests==2.31.0 +redis==5.1.0b6 +requests==2.32.3 six==1.16.0 soupsieve==2.5 -sqlparse==0.4.4 -typing_extensions==4.11.0 +sqlparse==0.5.0 +typing_extensions==4.12.2 tzdata==2024.1 urllib3==2.2.1 vine==5.1.0 @@ -62,4 +62,4 @@ wcwidth==0.2.13 webservices==0.7 wrapt==1.16.0 xmltodict==0.13.0 -zipp==3.18.1 +zipp==3.19.2 From 9b29474e46d0f8e32f60e296bb10233273e7d695 Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Fri, 14 Jun 2024 13:00:09 +0200 Subject: [PATCH 2/3] # Requirements update * updates requirements.txt * drops django-simple-sso from codebase and requirements.txt --- konova/sso/sso.py | 78 ----------------------------- konova/sub_settings/sso_settings.py | 6 +-- konova/urls.py | 4 -- requirements.txt | 3 -- 4 files changed, 1 insertion(+), 90 deletions(-) delete mode 100644 konova/sso/sso.py diff --git a/konova/sso/sso.py b/konova/sso/sso.py deleted file mode 100644 index f303842..0000000 --- a/konova/sso/sso.py +++ /dev/null @@ -1,78 +0,0 @@ -""" -Author: Michel Peltriaux -Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany -Contact: michel.peltriaux@sgdnord.rlp.de -Created on: 17.08.21 - -""" -from django.http import HttpResponse -from django.urls import re_path -from django.views import View -from django.views.decorators.csrf import csrf_exempt -from itsdangerous import TimedSerializer -from simple_sso.sso_client.client import Client - -from user.models import User - - -class PropagateView(View): - """ View used to receive propagated sso-server user data - - """ - client = None - signer = None - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - self.signer = TimedSerializer(self.client.private_key) - - @csrf_exempt - def dispatch(self, request, *args, **kwargs): - return super().dispatch(request, *args, **kwargs) - - def post(self, request): - user_data = request.body - user_data = self.signer.loads(user_data) - self.client.build_user(user_data) - return HttpResponse(status=200) - - -class KonovaSSOClient(Client): - """ Konova specialized derivative of general sso.Client. - - Adds some custom behaviour for konova usage. - - """ - propagate_view = PropagateView - - def get_urls(self): - urls = super().get_urls() - urls += re_path(r'^propagate/$', self.propagate_view.as_view(client=self), name='simple-sso-propagate'), - return urls - - def build_user(self, user_data): - """ Creates a user or updates user data - - Args: - user_data (): - - Returns: - - """ - try: - user = User.objects.get(username=user_data['username']) - # Update user data, excluding some changes - skipable_attrs = { - "username", - "is_staff", - "is_superuser", - } - for _attr, _val in user_data.items(): - if _attr in skipable_attrs: - continue - setattr(user, _attr, _val) - except User.DoesNotExist: - user = User(**user_data) - user.set_unusable_password() - user.save() - return user \ No newline at end of file diff --git a/konova/sub_settings/sso_settings.py b/konova/sub_settings/sso_settings.py index 3e6edd0..74514f7 100644 --- a/konova/sub_settings/sso_settings.py +++ b/konova/sub_settings/sso_settings.py @@ -5,14 +5,10 @@ Contact: michel.peltriaux@sgdnord.rlp.de Created on: 31.01.22 """ -import random -import string -# Django-simple-SSO settings +# SSO settings SSO_SERVER_BASE = "http://127.0.0.1:8000/" SSO_SERVER = f"{SSO_SERVER_BASE}sso/" -SSO_PRIVATE_KEY = "CHANGE_ME" -SSO_PUBLIC_KEY = "CHANGE_ME" # OAuth settings OAUTH_CODE_VERIFIER = "CHANGE_ME" diff --git a/konova/urls.py b/konova/urls.py index 8765f92..8dc9a01 100644 --- a/konova/urls.py +++ b/konova/urls.py @@ -16,18 +16,14 @@ Including another URLconf from django.contrib import admin from django.urls import path, include -from konova.settings import SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY, DEBUG -from konova.sso.sso import KonovaSSOClient from konova.views.logout import LogoutView from konova.views.geometry import GeomParcelsView, GeomParcelsContentView from konova.views.home import HomeView from konova.views.map_proxy import ClientProxyParcelSearch, ClientProxyParcelWFS from konova.views.oauth import OAuthLoginView, OAuthCallbackView -sso_client = KonovaSSOClient(SSO_SERVER, SSO_PUBLIC_KEY, SSO_PRIVATE_KEY) urlpatterns = [ path('admin/', admin.site.urls), - path('login/', include(sso_client.get_urls())), path('oauth/callback/', OAuthCallbackView.as_view(), name="oauth-callback"), path('oauth/login/', OAuthLoginView.as_view(), name="oauth-login"), path('logout/', LogoutView.as_view(), name="logout"), diff --git a/requirements.txt b/requirements.txt index 2ba7efc..e1815ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,13 +24,11 @@ django-environ==0.11.2 django-filter==24.2 django-fontawesome-5==1.0.18 django-oauth-toolkit==2.4.0 -django-simple-sso==1.2.0 django-tables2==2.7.0 et-xmlfile==1.1.0 gunicorn==22.0.0 idna==3.7 importlib_metadata==7.1.0 -itsdangerous==0.24 jwcrypto==1.5.6 kombu==5.3.7 oauthlib==3.2.2 @@ -59,7 +57,6 @@ tzdata==2024.1 urllib3==2.2.1 vine==5.1.0 wcwidth==0.2.13 -webservices==0.7 wrapt==1.16.0 xmltodict==0.13.0 zipp==3.19.2 From d86bbb0ab0971b3a3ae9d59b4922fdffc20cca7f Mon Sep 17 00:00:00 2001 From: mpeltriaux Date: Thu, 4 Jul 2024 07:44:08 +0200 Subject: [PATCH 3/3] # Geopackage import configuration * corrects config for geopackage import support --- templates/map/client/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/map/client/config.json b/templates/map/client/config.json index 23efd2d..918ba3a 100644 --- a/templates/map/client/config.json +++ b/templates/map/client/config.json @@ -112,7 +112,7 @@ }, "import": { - "geopackageLibURL": "/libs/geopackage/4.2.3/" + "geopackageLibURL": "/static/libs/geopackage/4.2.3/" }, "export": {