Skip to content

Commit 1ac0bac

Browse files
authored
Merge pull request #117 from mtruj013/status-fix
Fix status filter
2 parents 6e8eb2b + 9f4e4cb commit 1ac0bac

File tree

3 files changed

+18
-6
lines changed

3 files changed

+18
-6
lines changed

tests/test_routes.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
from webapp import auth
3232
from tests.helpers import transparent_decorator
3333

34-
3534
auth.authorization_required = transparent_decorator
3635
os.environ["DATABASE_URL"] = os.environ["TEST_DATABASE_URL"]
3736

@@ -136,7 +135,7 @@ def test_cves_returns_200_for_non_existing_version(self):
136135
"errors", []
137136
)
138137

139-
def test_cves_returns_422_for_non_existing_status(self):
138+
def test_cves_returns_422_for_non_existing_package_status(self):
140139
response = self.client.get("/security/cves.json?status=no-exist")
141140

142141
assert response.status_code == 422

webapp/schemas.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,9 +461,14 @@ class CVEsAPISchema(Schema):
461461
description="List of release codenames ",
462462
allow_none=True,
463463
),
464+
"cve_status": String(
465+
description="CVE status",
466+
enum=["not-in-ubuntu", "active", "rejected"],
467+
allow_none=True,
468+
),
464469
"status": List(
465470
StatusStatuses(),
466-
description="List of statuses",
471+
description="List of package statuses",
467472
allow_none=True,
468473
),
469474
"order": String(

webapp/views.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,20 @@ def get_cves(**kwargs):
8181
offset = kwargs.get("offset", 0)
8282
component = kwargs.get("component")
8383
versions = kwargs.get("version")
84+
cve_status = kwargs.get("cve_status")
8485
statuses = kwargs.get("status")
8586
order_by = kwargs.get("order")
8687
show_hidden = kwargs.get("show_hidden", False)
8788

88-
# query cves by filters
89-
cves_query: Query = db.session.query(CVE).filter(CVE.status == "active")
89+
# query cves by filters. Default filter by active CVEs
90+
if cve_status:
91+
cves_query: Query = db.session.query(CVE).filter(
92+
CVE.status == cve_status
93+
)
94+
else:
95+
cves_query: Query = db.session.query(CVE).filter(
96+
CVE.status == "active"
97+
)
9098

9199
# filter by priority
92100
if priority:
@@ -113,7 +121,7 @@ def get_cves(**kwargs):
113121
if component:
114122
parameters.append(Status.component == component)
115123

116-
# filter by status and version
124+
# filter by package status and version
117125
if _should_filter_by_version_and_status(statuses, versions):
118126
clean_versions = _get_clean_versions(versions)
119127
clean_statuses = _get_clean_statuses(statuses)

0 commit comments

Comments
 (0)