From b2c5317da2ee70d7a6449120ad78c5f8c765dc79 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 26 Sep 2025 10:09:42 +0200 Subject: [PATCH 01/14] Add OSB settings --- .env.example | 4 ++++ src/servala/core/checks.py | 2 ++ src/servala/settings.py | 5 +++++ src/servala/urls.py | 1 + 4 files changed, 12 insertions(+) diff --git a/.env.example b/.env.example index ab361d7..c052830 100644 --- a/.env.example +++ b/.env.example @@ -68,3 +68,7 @@ SERVALA_ODOO_USERNAME='' SERVALA_ODOO_PASSWORD='' # Helpdesk team ID for support tickets in Odoo. Defaults to 5. SERVALA_ODOO_HELPDESK_TEAM_ID='5' + +# OSB API authentication settings +SERVALA_OSB_USERNAME='' +SERVALA_OSB_PASSWORD='' diff --git a/src/servala/core/checks.py b/src/servala/core/checks.py index d1bb708..b8f5f74 100644 --- a/src/servala/core/checks.py +++ b/src/servala/core/checks.py @@ -84,3 +84,5 @@ def check_servala_production_settings(app_configs, **kwargs): id="servala.W001", ) ) + + return errors diff --git a/src/servala/settings.py b/src/servala/settings.py index 81cdc9c..3f6894f 100644 --- a/src/servala/settings.py +++ b/src/servala/settings.py @@ -75,6 +75,9 @@ EMAIL_USE_SSL = os.environ.get("SERVALA_EMAIL_SSL", "False") == "True" SERVALA_DEFAULT_ORIGIN = int(os.environ.get("SERVALA_DEFAULT_ORIGIN", "1")) +OSB_USERNAME = os.environ.get("SERVALA_OSB_USERNAME") +OSB_PASSWORD = os.environ.get("SERVALA_OSB_PASSWORD") + SOCIALACCOUNT_PROVIDERS = { "openid_connect": { "APPS": [ @@ -159,10 +162,12 @@ INSTALLED_APPS = [ "allauth.socialaccount.providers.openid_connect", "auditlog", "servala.core", + "servala.api", ] MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", + "servala.api.authentication.OSBBasicAuthentication", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", diff --git a/src/servala/urls.py b/src/servala/urls.py index 43526c8..58628f1 100644 --- a/src/servala/urls.py +++ b/src/servala/urls.py @@ -20,6 +20,7 @@ urlpatterns = [ # - accounts/keycloak/login/callback/ path("accounts/", include("allauth.urls")), path("admin/", admin.site.urls), + path("", include("servala.api.urls")), ] # Serve static and media files in development -- 2.49.1 From 313e8cd09d2bfc3c64131693ab0b3ca71aa140f8 Mon Sep 17 00:00:00 2001 From: Tobias Kunze Date: Fri, 26 Sep 2025 10:10:29 +0200 Subject: [PATCH 02/14] Code style --- .../core/migrations/0007_controlplane_user_info_and_more.py | 5 ++++- .../frontend/templates/frontend/organizations/services.html | 5 +---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/servala/core/migrations/0007_controlplane_user_info_and_more.py b/src/servala/core/migrations/0007_controlplane_user_info_and_more.py index 5dda2ed..25c78a9 100644 --- a/src/servala/core/migrations/0007_controlplane_user_info_and_more.py +++ b/src/servala/core/migrations/0007_controlplane_user_info_and_more.py @@ -35,7 +35,10 @@ class Migration(migrations.Migration): name="external_links", field=models.JSONField( blank=True, - help_text='JSON array of link objects: {"url": "…", "title": "…", "featured": false}. Featured links will be shown on the service list page, all other links will only show on the service and offering detail pages.', + help_text=( + 'JSON array of link objects: {"url": "…", "title": "…", "featured": false}. ' + "Featured links will be shown on the service list page, all other links will only show on the service and offering detail pages." + ), null=True, verbose_name="External links", ), diff --git a/src/servala/frontend/templates/frontend/organizations/services.html b/src/servala/frontend/templates/frontend/organizations/services.html index 766b5bc..3a48ff9 100644 --- a/src/servala/frontend/templates/frontend/organizations/services.html +++ b/src/servala/frontend/templates/frontend/organizations/services.html @@ -21,10 +21,7 @@