From 2b33ffc656d496892def4635671ba4632338d42d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20G=C3=B3mez=20Garc=C3=ADa?= Date: Tue, 15 Mar 2022 20:07:19 +0100 Subject: [PATCH 1/2] Fixed OSS --- server/src/uds/REST/methods/transports.py | 2 +- server/src/uds/core/transports/transport.py | 2 +- server/src/uds/models/transport.py | 7 +++---- server/src/uds/web/util/services.py | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/server/src/uds/REST/methods/transports.py b/server/src/uds/REST/methods/transports.py index 6fdd8c30..61d594dd 100644 --- a/server/src/uds/REST/methods/transports.py +++ b/server/src/uds/REST/methods/transports.py @@ -126,7 +126,7 @@ class Transports(ModelHandler): 'value': [], 'values': sorted( [ - {'id': x.value[0], 'text': x.value[0].replace('CrOS', 'Chrome OS')} + {'id': x.name, 'text': x.name} for x in OsDetector.knownOss ], key=lambda x: x['text'].lower(), diff --git a/server/src/uds/core/transports/transport.py b/server/src/uds/core/transports/transport.py index 69fca1db..74758237 100644 --- a/server/src/uds/core/transports/transport.py +++ b/server/src/uds/core/transports/transport.py @@ -157,7 +157,7 @@ class Transport(Module): Helper method to check if transport supports requested operating system. Class method """ - return cls.supportedOss.count(osType) > 0 + return osType in cls.supportedOss @classmethod def providesConnetionInfo(cls) -> bool: diff --git a/server/src/uds/models/transport.py b/server/src/uds/models/transport.py index 124e481f..d5e6b694 100644 --- a/server/src/uds/models/transport.py +++ b/server/src/uds/models/transport.py @@ -45,6 +45,7 @@ from .tag import TaggingMixin # Not imported at runtime, just for type checking if typing.TYPE_CHECKING: from uds.models import Network, ServicePool + from uds.core.util.os_detector import KnownOS logger = logging.getLogger(__name__) @@ -127,10 +128,8 @@ class Transport(ManagedObjectModel, TaggingMixin): return self.networks.filter(net_start__lte=ip, net_end__gte=ip).count() > 0 return self.networks.filter(net_start__lte=ip, net_end__gte=ip).count() == 0 - def validForOs(self, os: str) -> bool: - if not self.allowed_oss or os in self.allowed_oss.split(','): - return True - return False + def validForOs(self, os: 'KnownOS') -> bool: + return os.name in self.allowed_oss.split(',') def __str__(self) -> str: return '{} of type {} (id:{})'.format(self.name, self.data_type, self.id) diff --git a/server/src/uds/web/util/services.py b/server/src/uds/web/util/services.py index a1e94081..c2dd6d67 100644 --- a/server/src/uds/web/util/services.py +++ b/server/src/uds/web/util/services.py @@ -52,13 +52,13 @@ from uds.core.services.exceptions import ( MaxServicesReachedError, ServiceAccessDeniedByCalendar, ) - from uds.web.util import errors from uds.core.auths.auth import webPassword # Not imported at runtime, just for type checking if typing.TYPE_CHECKING: from uds.core.util.request import ExtendedHttpRequestWithUser + from uds.core.util.os_detector import KnownOS logger = logging.getLogger(__name__) @@ -97,7 +97,7 @@ def getServicesData( nets = '' validTrans = '' - osType = request.os['OS'] + osType: 'KnownOS' = request.os['OS'] logger.debug('OS: %s', osType) if request.user.isStaff(): From 282495ce0fa61ac5fc035c0598659ebaf794322e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adolfo=20G=C3=B3mez=20Garc=C3=ADa?= Date: Tue, 15 Mar 2022 20:22:13 +0100 Subject: [PATCH 2/2] Fixed OSS --- server/src/uds/models/transport.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/uds/models/transport.py b/server/src/uds/models/transport.py index d5e6b694..996b1872 100644 --- a/server/src/uds/models/transport.py +++ b/server/src/uds/models/transport.py @@ -129,7 +129,7 @@ class Transport(ManagedObjectModel, TaggingMixin): return self.networks.filter(net_start__lte=ip, net_end__gte=ip).count() == 0 def validForOs(self, os: 'KnownOS') -> bool: - return os.name in self.allowed_oss.split(',') + return not self.allowed_oss or os.name in self.allowed_oss.split(',') def __str__(self) -> str: return '{} of type {} (id:{})'.format(self.name, self.data_type, self.id)