diff --git a/apps/common/db/fields.py b/apps/common/db/fields.py index 7aa1971d6..bd968c734 100644 --- a/apps/common/db/fields.py +++ b/apps/common/db/fields.py @@ -502,7 +502,7 @@ class JSONManyToManyDescriptor: value = [value.id] value = set(map(str, value)) rule_value = set(map(str, rule_value)) - res &= value.issubset(rule_value) + res &= value & rule_value else: logging.error("unknown match: {}".format(rule['match'])) res &= False diff --git a/apps/terminal/connect_methods.py b/apps/terminal/connect_methods.py index 1ed9e14f1..e38a8d123 100644 --- a/apps/terminal/connect_methods.py +++ b/apps/terminal/connect_methods.py @@ -104,13 +104,15 @@ class NativeClient(TextChoices): xpack_protocols = cls.xpack_protocols() for protocol, _clients in clients_map.items(): + if not settings.XPACK_ENABLED and protocol in xpack_protocols: + continue + if isinstance(_clients, dict): if os == 'all': _clients = list(itertools.chain(*_clients.values())) else: _clients = _clients.get(os, _clients['default']) - if protocol in xpack_protocols: - continue + for client in _clients: if not settings.XPACK_ENABLED and client in cls.xpack_methods(): continue