Skip to content

Commit 3e2f9df

Browse files
committed
feat(RiskAcc-Eng): Clean RiskAcc-Eng mapping + Allow correct handling by API
1 parent cfa7b97 commit 3e2f9df

File tree

4 files changed

+67
-13
lines changed

4 files changed

+67
-13
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 5.1.8 on 2025-05-01 12:54
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('dojo', '0228_alter_jira_username_password'),
11+
]
12+
13+
operations = [
14+
migrations.RemoveField(
15+
model_name='engagement',
16+
name='risk_acceptance',
17+
),
18+
migrations.AddField(
19+
model_name='risk_acceptance',
20+
name='engagement',
21+
field=models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, to='dojo.engagement'),
22+
),
23+
]
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 5.1.8 on 2025-05-01 12:59
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
def set_engagement_based_on_findings(apps, schema_editor):
7+
# TODO
8+
pass
9+
10+
11+
class Migration(migrations.Migration):
12+
13+
dependencies = [
14+
('dojo', '0230_set_risk_acceptance_engagement'),
15+
]
16+
17+
operations = [
18+
migrations.RunPython(set_engagement_based_on_findings, migrations.RunPython.noop),
19+
]
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Generated by Django 5.1.8 on 2025-05-01 12:59
2+
3+
import django.db.models.deletion
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('dojo', '0229_remove_engagement_risk_acceptance_and_more'),
11+
]
12+
13+
operations = [
14+
migrations.AlterField(
15+
model_name='risk_acceptance',
16+
name='engagement',
17+
field=models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, to='dojo.engagement'),
18+
),
19+
migrations.RemoveField(
20+
model_name='engagement',
21+
name='risk_acceptance',
22+
),
23+
]

dojo/models.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1505,10 +1505,6 @@ class Engagement(models.Model):
15051505
default="threat_model", editable=False)
15061506
tmodel_path = models.CharField(max_length=1000, default="none",
15071507
editable=False, blank=True, null=True)
1508-
risk_acceptance = models.ManyToManyField("Risk_Acceptance",
1509-
default=None,
1510-
editable=False,
1511-
blank=True)
15121508
done_testing = models.BooleanField(default=False, editable=False)
15131509
engagement_type = models.CharField(editable=True, max_length=30, default="Interactive",
15141510
null=True,
@@ -3663,6 +3659,8 @@ class Risk_Acceptance(models.Model):
36633659

36643660
name = models.CharField(max_length=300, null=False, blank=False, help_text=_("Descriptive name which in the future may also be used to group risk acceptances together across engagements and products"))
36653661

3662+
engagement = models.ForeignKey(Engagement, editable=False, blank=False, null=False, on_delete=models.CASCADE)
3663+
36663664
accepted_findings = models.ManyToManyField(Finding)
36673665

36683666
recommendation = models.CharField(choices=TREATMENT_CHOICES, max_length=2, null=False, default=TREATMENT_FIX, help_text=_("Recommendation from the security team."), verbose_name=_("Security Recommendation"))
@@ -3714,15 +3712,6 @@ def get_breadcrumbs(self):
37143712
def is_expired(self):
37153713
return self.expiration_date_handled is not None
37163714

3717-
# relationship is many to many, but we use it as one-to-many
3718-
@property
3719-
def engagement(self):
3720-
engs = self.engagement_set.all()
3721-
if engs:
3722-
return engs[0]
3723-
3724-
return None
3725-
37263715
def copy(self, engagement=None):
37273716
copy = _copy_model_util(self)
37283717
# Save the necessary ManyToMany relationships

0 commit comments

Comments
 (0)