From 33a5987a0164687e825a952ddd40c5627ca923d9 Mon Sep 17 00:00:00 2001 From: Chase Dillard Date: Mon, 5 Jun 2023 16:21:05 -0400 Subject: [PATCH] Set default layer version to 4.3 if input is bad. Add custom data URL --- mitreattack/navlayers/core/layerobj.py | 11 +++++++++++ mitreattack/navlayers/core/versions.py | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mitreattack/navlayers/core/layerobj.py b/mitreattack/navlayers/core/layerobj.py index 97cf0e13..20c204c4 100644 --- a/mitreattack/navlayers/core/layerobj.py +++ b/mitreattack/navlayers/core/layerobj.py @@ -34,6 +34,7 @@ def __init__(self, name, domain): self.name = name self.__description = UNSETVALUE self.domain = domain + self.__customDataURL = UNSETVALUE self.__filters = UNSETVALUE self.__sorting = UNSETVALUE self.__layout = UNSETVALUE @@ -107,6 +108,16 @@ def domain(self, domain): dom = dom.split("-")[-1] + "-attack" categoryChecker(type(self).__name__, dom, ["enterprise-attack", "mobile-attack", "ics-attack"], "domain") self.__domain = domain + + @property + def customDataURL(self): + if self.__customDataURL != UNSETVALUE: + return self.__customDataURL + + @customDataURL.setter + def customDataURL(self, customDataURL): + typeChecker(type(self).__name__, customDataURL, str, "customDataURL") + self.__customDataURL = customDataURL @property def description(self): diff --git a/mitreattack/navlayers/core/versions.py b/mitreattack/navlayers/core/versions.py index fa2342e5..6ef86047 100644 --- a/mitreattack/navlayers/core/versions.py +++ b/mitreattack/navlayers/core/versions.py @@ -60,12 +60,14 @@ def layer(self, layer): """Setter for layer.""" typeChecker(type(self).__name__, layer, str, "layer") try: - categoryChecker(type(self).__name__, layer, ["3.0", "4.0", "4.1", "4.2", "4.3"], "layer version") + categoryChecker(type(self).__name__, layer, ["3.0", "4.0", "4.1", "4.2", "4.3", "4.4"], "layer version") except BadInput: print( f"[WARNING] - unrecognized layer version {layer}. Defaulting to the 4.3 schema, this may result in " f"unexpected behavior." ) + layer = "4.3" + if layer in ["3.0", "4.0", "4.1", "4.2"]: print(f"[NOTICE] - Forcibly upgrading version from {layer} to 4.3.") layer = "4.3"