Skip to content

Commit ab60e3f

Browse files
committed
chore: fix import script for orgs
1 parent 6d9612a commit ab60e3f

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

src/riskmatrix/scripts/seantis_import_risk_excel.py

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
"""
2-
Import risk excel 🕸️ into RiskMatrix ✨
3-
4-
This script is specific to our sitation at seantis. The script is included
5-
anyway, you might adjust it to import the excel at your organization too.
6-
"""
71
import argparse
82
import sys
93
import traceback
@@ -29,6 +23,7 @@
2923
from riskmatrix.models import Risk
3024
from riskmatrix.models import RiskAssessment
3125
from riskmatrix.models import RiskCatalog
26+
from riskmatrix.models import RiskCategory # Make sure RiskCategory is imported
3227
from riskmatrix.orm import Base
3328
from riskmatrix.orm import get_engine
3429
from riskmatrix.scripts.util import select_existing_organization
@@ -82,6 +77,26 @@ def get_or_create_asset(
8277
return asset
8378

8479

80+
def get_or_create_risk_category(
81+
category_name: str,
82+
organization: Organization,
83+
session: 'Session'
84+
) -> RiskCategory:
85+
86+
q = select(RiskCategory).where(
87+
RiskCategory.organization_id == organization.id,
88+
RiskCategory.name == category_name
89+
)
90+
91+
if category := session.scalars(q).one_or_none():
92+
return category
93+
94+
category = RiskCategory(name=category_name, organization=organization)
95+
category.organization_id = organization.id
96+
session.add(category)
97+
return category
98+
99+
85100
def get_or_create_risk(
86101
risk_name: str,
87102
catalog: RiskCatalog,
@@ -131,10 +146,14 @@ def populate_catalog(
131146
risk_details['asset_name'], catalog.organization, session
132147
)
133148

149+
category = get_or_create_risk_category(
150+
risk_details['category'], catalog.organization, session
151+
)
152+
134153
risk = get_or_create_risk(
135154
risk_details['name'], catalog, session
136155
)
137-
risk.category = risk_details['category']
156+
risk.category = category.name
138157
risk.description = risk_details['desc']
139158

140159
assessment = get_or_create_risk_assessment(risk, asset, session)

0 commit comments

Comments
 (0)