Skip to content

Commit 50f82a3

Browse files
committed
Remove weaknesses from view which are not in DB
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 4faae54 commit 50f82a3

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

vulnerabilities/models.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -275,17 +275,27 @@ class Weakness(models.Model):
275275
vulnerabilities = models.ManyToManyField(Vulnerability, related_name="weaknesses")
276276
db = Database()
277277

278+
@property
279+
def weakness(self):
280+
"""
281+
Return a queryset of Weakness for this vulnerability.
282+
"""
283+
try:
284+
weakness = self.db.get(self.cwe_id)
285+
return weakness
286+
except Exception as e:
287+
logger.warning(f"Could not find CWE {self.cwe_id}: {e}")
288+
return None
289+
278290
@property
279291
def name(self):
280292
"""Return the weakness's name."""
281-
weakness = self.db.get(self.cwe_id)
282-
return weakness.name
293+
return self.weakness.name if self.weakness else ""
283294

284295
@property
285296
def description(self):
286297
"""Return the weakness's description."""
287-
weakness = self.db.get(self.cwe_id)
288-
return weakness.description
298+
return self.weakness.description if self.weakness else ""
289299

290300

291301
class VulnerabilityReferenceQuerySet(BaseQuerySet):

vulnerabilities/views.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ def get_queryset(self):
116116

117117
def get_context_data(self, **kwargs):
118118
context = super().get_context_data(**kwargs)
119+
weaknesses = self.object.weaknesses.all()
120+
weaknesses_present_in_db = [weakness for weakness in weaknesses if weakness.weakness]
119121
context.update(
120122
{
121123
"vulnerability": self.object,
@@ -125,7 +127,7 @@ def get_context_data(self, **kwargs):
125127
"aliases": self.object.aliases.all(),
126128
"affected_packages": self.object.affected_packages.all(),
127129
"fixed_by_packages": self.object.fixed_by_packages.all(),
128-
"weaknesses": self.object.weaknesses.all(),
130+
"weaknesses": weaknesses_present_in_db,
129131
}
130132
)
131133
return context

0 commit comments

Comments
 (0)