From e1145f2fa42e076869776b1ff04dd35bbde255e5 Mon Sep 17 00:00:00 2001 From: Stefan Fleckenstein Date: Wed, 3 Nov 2021 22:48:26 +0100 Subject: [PATCH 1/2] Fix migration of API configurations (#5383) * Fix migration of API configurations * without SQL * flake8 --- .../0131_migrate_sonarcube_cobalt.py | 28 +++++++++++++------ dojo/product/views.py | 4 +-- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/dojo/db_migrations/0131_migrate_sonarcube_cobalt.py b/dojo/db_migrations/0131_migrate_sonarcube_cobalt.py index b13537f1eb..17b3aba7f0 100644 --- a/dojo/db_migrations/0131_migrate_sonarcube_cobalt.py +++ b/dojo/db_migrations/0131_migrate_sonarcube_cobalt.py @@ -2,39 +2,51 @@ from django.db import migrations -from dojo.models import Sonarqube_Product, Cobaltio_Product, Product_API_Scan_Configuration, Test - def migrate_sonarqube(apps, schema_editor): - sq_products = Sonarqube_Product.objects.filter(sonarqube_tool_config__isnull=False) + + Sonarqube_Product_model = apps.get_model('dojo', 'Sonarqube_Product') + Product_API_Scan_Configuration_model = apps.get_model('dojo', 'Product_API_Scan_Configuration') + Test_model = apps.get_model('dojo', 'Test') + + sq_products = Sonarqube_Product_model.objects.filter(sonarqube_tool_config__isnull=False) for sq_product in sq_products: - api_scan_configuration = Product_API_Scan_Configuration() + api_scan_configuration = Product_API_Scan_Configuration_model() api_scan_configuration.product = sq_product.product api_scan_configuration.tool_configuration = sq_product.sonarqube_tool_config api_scan_configuration.service_key_1 = sq_product.sonarqube_project_key api_scan_configuration.save() - tests = Test.objects.filter(sonarqube_config=sq_product) + + tests = Test_model.objects.filter(sonarqube_config=sq_product) for test in tests: test.api_scan_configuration = api_scan_configuration test.sonarqube_config = None test.save() + sq_product.delete() def migrate_cobalt_io(apps, schema_editor): - cobalt_products = Cobaltio_Product.objects.filter(cobaltio_tool_config__isnull=False) + + Cobaltio_Product_model = apps.get_model('dojo', 'Cobaltio_Product') + Product_API_Scan_Configuration_model = apps.get_model('dojo', 'Product_API_Scan_Configuration') + Test_model = apps.get_model('dojo', 'Test') + + cobalt_products = Cobaltio_Product_model.objects.filter(cobaltio_tool_config__isnull=False) for cobalt_product in cobalt_products: - api_scan_configuration = Product_API_Scan_Configuration() + api_scan_configuration = Product_API_Scan_Configuration_model() api_scan_configuration.product = cobalt_product.product api_scan_configuration.tool_configuration = cobalt_product.cobaltio_tool_config api_scan_configuration.service_key_1 = cobalt_product.cobaltio_asset_id api_scan_configuration.service_key_2 = cobalt_product.cobaltio_asset_name api_scan_configuration.save() - tests = Test.objects.filter(cobaltio_config=cobalt_product) + + tests = Test_model.objects.filter(cobaltio_config=cobalt_product) for test in tests: test.api_scan_configuration = api_scan_configuration test.cobaltio_config = None test.save() + cobalt_product.delete() diff --git a/dojo/product/views.py b/dojo/product/views.py index 2c4936ab79..bf32aa4ec5 100755 --- a/dojo/product/views.py +++ b/dojo/product/views.py @@ -1579,7 +1579,7 @@ def view_api_scan_configurations(request, pid): }) -@user_is_authorized(Product, Permissions.Product_API_Scan_Configuration_Edit, 'pascid', 'staff') +@user_is_authorized(Product_API_Scan_Configuration, Permissions.Product_API_Scan_Configuration_Edit, 'pascid', 'staff') def edit_api_scan_configuration(request, pid, pascid): product_api_scan_configuration = get_object_or_404(Product_API_Scan_Configuration, id=pascid) @@ -1624,7 +1624,7 @@ def edit_api_scan_configuration(request, pid, pascid): }) -@user_is_authorized(Product, Permissions.Product_API_Scan_Configuration_Delete, 'pascid', 'staff') +@user_is_authorized(Product_API_Scan_Configuration, Permissions.Product_API_Scan_Configuration_Delete, 'pascid', 'staff') def delete_api_scan_configuration(request, pid, pascid): product_api_scan_configuration = get_object_or_404(Product_API_Scan_Configuration, id=pascid) From 24d9293bcdc2122cb8117309411065bd27d42472 Mon Sep 17 00:00:00 2001 From: DefectDojo release bot Date: Wed, 3 Nov 2021 21:50:00 +0000 Subject: [PATCH 2/2] Update versions in application files --- components/package.json | 2 +- dojo/__init__.py | 2 +- helm/defectdojo/Chart.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/package.json b/components/package.json index dfa646ccb5..c4fd95d370 100644 --- a/components/package.json +++ b/components/package.json @@ -1,6 +1,6 @@ { "name": "defectdojo", - "version": "2.4.0", + "version": "2.4.1", "private": true, "dependencies": { "JUMFlot": "jumjum123/JUMFlot#*", diff --git a/dojo/__init__.py b/dojo/__init__.py index 12dba1ffe6..e729e329c7 100644 --- a/dojo/__init__.py +++ b/dojo/__init__.py @@ -6,6 +6,6 @@ default_app_config = 'dojo.apps.DojoAppConfig' -__version__ = '2.4.0' +__version__ = '2.4.1' __url__ = 'https://github.com/DefectDojo/django-DefectDojo' __docs__ = 'https://defectdojo.github.io/django-DefectDojo' diff --git a/helm/defectdojo/Chart.yaml b/helm/defectdojo/Chart.yaml index 8288d90216..b1065db6c8 100644 --- a/helm/defectdojo/Chart.yaml +++ b/helm/defectdojo/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: "2.4.0" +appVersion: "2.4.1" description: A Helm chart for Kubernetes to install DefectDojo name: defectdojo version: 1.6.21