Skip to content

Commit f171a1e

Browse files
committed
stop creating Product_Member / Product_Type_Member during auto_create_context
The scan-import auto-create flow no longer bootstraps Owner RBAC rows inline. Pro's post_save signals on Product and Product_Type take care of this on any newly created instance. Drop the Product_Member, Product_Type_Member, Role, get_current_user imports — they're unused now.
1 parent 9288d73 commit f171a1e

1 file changed

Lines changed: 6 additions & 24 deletions

File tree

dojo/importers/auto_create_context.py

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,10 @@
22
from datetime import datetime, timedelta
33
from typing import Any
44

5-
from crum import get_current_user
65
from django.db import transaction
76
from django.http.request import QueryDict
87
from django.utils import timezone
98

10-
from dojo.authorization.models import (
11-
Product_Member,
12-
Product_Type_Member,
13-
Role,
14-
)
159
from dojo.models import (
1610
Engagement,
1711
Product,
@@ -233,20 +227,14 @@ def get_or_create_product_type(
233227
) -> Product_Type:
234228
"""
235229
Fetches a product type by name if one already exists. If not,
236-
a new product type will be created with the current user being
237-
added as product type member
230+
a new product type will be created. RBAC ownership of the new row
231+
is bootstrapped by Pro's post_save signal on Product_Type.
238232
"""
239233
# Look for an existing object
240234
if product_type := self.get_target_product_type_if_exists(product_type_name=product_type_name):
241235
return product_type
242236
with transaction.atomic():
243-
product_type, created = Product_Type.objects.select_for_update().get_or_create(name=product_type_name)
244-
if created:
245-
Product_Type_Member.objects.create(
246-
user=get_current_user(),
247-
product_type=product_type,
248-
role=Role.objects.get(is_owner=True),
249-
)
237+
product_type, _created = Product_Type.objects.select_for_update().get_or_create(name=product_type_name)
250238
return product_type
251239

252240
def get_or_create_product(
@@ -259,8 +247,8 @@ def get_or_create_product(
259247
) -> Product:
260248
"""
261249
Fetches a product by name if it exists. When `auto_create_context` is
262-
enabled the product will be created with the current user being added
263-
as product member
250+
enabled the product will be created. RBAC ownership of the new row is
251+
bootstrapped by Pro's post_save signal on Product.
264252
"""
265253
# try to find the product (within the provided product_type)
266254
if product := self.get_target_product_if_exists(product_name, product_type_name):
@@ -273,13 +261,7 @@ def get_or_create_product(
273261
product_type = self.get_or_create_product_type(product_type_name=product_type_name)
274262
# Create the product
275263
with transaction.atomic():
276-
product, created = Product.objects.select_for_update().get_or_create(name=product_name, prod_type=product_type, description=product_name)
277-
if created:
278-
Product_Member.objects.create(
279-
user=get_current_user(),
280-
product=product,
281-
role=Role.objects.get(is_owner=True),
282-
)
264+
product, _created = Product.objects.select_for_update().get_or_create(name=product_name, prod_type=product_type, description=product_name)
283265

284266
return product
285267

0 commit comments

Comments
 (0)