diff --git a/apps/common/sdk/gm/__init__.py b/apps/common/sdk/gm/__init__.py index 54d2600c6..c9b4f3715 100644 --- a/apps/common/sdk/gm/__init__.py +++ b/apps/common/sdk/gm/__init__.py @@ -10,14 +10,15 @@ class CryptoVendor(Enum): SCTU = "sctu" @classmethod - def from_str(cls, name: str): - try: - return cls[name.upper()] - except KeyError: - for vendor in cls: - if vendor.value.lower() == name.lower(): - return vendor - raise ValueError(f"Unknown GM Vendor: {name}") + def from_str(cls, name: str | None): + if name is None or not name.strip(): + return cls.PIICO + + name = name.strip().lower() + for vendor in cls: + if name in (vendor.name.lower(), vendor.value.lower()): + return vendor + raise ValueError(f"Unknown GM Vendor: {name}") def open_gm_device(vendor: CryptoVendor) -> Device: diff --git a/apps/jumpserver/settings/libs.py b/apps/jumpserver/settings/libs.py index cf4b765fe..2e0fdc351 100644 --- a/apps/jumpserver/settings/libs.py +++ b/apps/jumpserver/settings/libs.py @@ -237,6 +237,7 @@ DJANGO_REDIS_SCAN_ITERSIZE = 1000 # GM DEVICE GM_DEVICE_ENABLE = CONFIG.GM_DEVICE_ENABLE GM_VENDOR_NAME = CONFIG.GM_VENDOR_NAME +GM_DRIVER_PATH = CONFIG.GM_DRIVER_PATH LEAK_PASSWORD_DB_PATH = CONFIG.LEAK_PASSWORD_DB_PATH