From 7d828e2be0d243961bae3e19a998235ef43fab1b Mon Sep 17 00:00:00 2001 From: Tim Lorsbach Date: Tue, 14 Apr 2026 21:10:18 +0200 Subject: [PATCH] Adjusted View for Package creation --- epdb/views.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/epdb/views.py b/epdb/views.py index 0801540e..26d3a4f1 100644 --- a/epdb/views.py +++ b/epdb/views.py @@ -587,10 +587,38 @@ def packages(request): "package-description", s.DEFAULT_VALUES["description"] ) + # EDIT START + data_pool = None + package_classification = request.POST.get("package-classification") + classification = Package.Classification(int(package_classification)) + # For SECRET we'll need a data pool which will be an additional perm check later + if classification == Package.Classification.SECRET: + package_data_pool = request.POST.get("package-data-pool") + + if package_data_pool is None: + return error(request, "Invalid data pool.", "Data Pool is required!") + + data_pool = GroupManager.get_group_by_url(current_user, package_data_pool) + + if data_pool is None: + return error(request, "Invalid data pool.", "Data Pool does not exist or no access!") + + if not data_pool.secret: + return error(request, "Invalid data pool.", "Data Pool is not a secret group!") + created_package = PackageManager.create_package( current_user, package_name, package_description ) + created_package.classification_level = classification + + # Set previously determined data pool + if classification == Package.Classification.SECRET: + created_package.data_pool = data_pool + + created_package.save() + # EDIT END + return redirect(created_package.url) elif request.method == "OPTIONS":