Skip to content

Commit 05ba61f

Browse files
committed
Make unique_content_id required field
- Also validate fields before saving Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 801f871 commit 05ba61f

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

vulnerabilities/migrations/0090_migrate_advisory_aliases.py

+11
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ def reverse_populate_new_advisory_aliases_field(apps, schema_editor):
8686
)
8787

8888
operations = [
89+
migrations.AlterField(
90+
model_name="advisory",
91+
name="unique_content_id",
92+
field=models.CharField(
93+
help_text="A 64 character unique identifier for the content of the advisory since we use sha256 as hex",
94+
max_length=64,
95+
blank=False,
96+
null=False,
97+
),
98+
),
99+
89100
# Make vulnerability relation optional
90101
migrations.AlterField(
91102
model_name="alias",

vulnerabilities/models.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -1319,7 +1319,8 @@ class Advisory(models.Model):
13191319

13201320
unique_content_id = models.CharField(
13211321
max_length=64,
1322-
blank=True,
1322+
blank=False,
1323+
null=False,
13231324
help_text="A 64 character unique identifier for the content of the advisory since we use sha256 as hex",
13241325
)
13251326
aliases = models.ManyToManyField(
@@ -1364,9 +1365,8 @@ class Meta:
13641365
ordering = ["date_published", "unique_content_id"]
13651366

13661367
def save(self, *args, **kwargs):
1367-
advisory_data = self.to_advisory_data()
1368-
self.unique_content_id = compute_content_id(advisory_data, include_metadata=False)
1369-
super().save(*args, **kwargs)
1368+
self.full_clean()
1369+
return super().save(*args, **kwargs)
13701370

13711371
def to_advisory_data(self) -> "AdvisoryData":
13721372
from vulnerabilities.importer import AdvisoryData

0 commit comments

Comments
 (0)