synapse 2.172.0__tar.gz → 2.173.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of synapse might be problematic. Click here for more details.
- {synapse-2.172.0/synapse.egg-info → synapse-2.173.1}/PKG-INFO +1 -1
- {synapse-2.172.0 → synapse-2.173.1}/pyproject.toml +1 -1
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/hiveauth.py +81 -4
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/layer.py +8 -8
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/version.py +2 -2
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/orgs.py +5 -2
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/person.py +5 -2
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/planning.py +5 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_hiveauth.py +139 -1
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_layer.py +67 -13
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_orgs.py +8 -2
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_person.py +2 -0
- {synapse-2.172.0 → synapse-2.173.1/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.172.0 → synapse-2.173.1}/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/README.rst +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/setup.cfg +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cells.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cmds/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cmds/boss.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cmds/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cmds/hive.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/common.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/daemon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/datamodel.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/exc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/glob.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/agenda.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/ast.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/base.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/boss.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/cache.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/certdir.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/chop.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/cli.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/cmd.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/cmdr.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/config.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/const.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/coro.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/datfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/encoding.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/gis.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/grammar.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/hashitem.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/hashset.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/health.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/hive.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/httpapi.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/ingest.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/interval.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/jupyter.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/link.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/modelrev.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/module.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/modules.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/msgpack.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/nexus.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/node.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/output.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/parser.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/queue.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/reflect.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/schemas.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/scope.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/share.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/snap.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/storm.lark +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/storm_format.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormtypes.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/structlog.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/task.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/thishost.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/thisplat.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/threads.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/time.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/trigger.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/types.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lib/view.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/cvss.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/iana.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/macho.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/pe.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/lookup/timezones.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/mindmeld.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/auth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/base.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/belief.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/biz.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/crypto.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/dns.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/economic.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/files.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/geopol.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/geospace.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/gov/cn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/gov/intl.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/gov/us.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/inet.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/infotech.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/language.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/material.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/media.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/proj.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/risk.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/science.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/syn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/telco.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/models/transport.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/cell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/servers/stemcell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/telepath.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/test.dat +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/nopmod.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_common.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_data.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_exc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_glob.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_init.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_ast.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_jupyter.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_utils.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tests/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/list.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/autodoc.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/backup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/cellauth.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/cmdr.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/csvtool.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/easycert.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/feed.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/genpkg.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/guid.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/hive/load.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/hive/save.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/livebackup.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/modrole.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/moduser.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/promote.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/pullfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/pushfile.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/reload.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/rstorm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/tools/storm.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/utils/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/utils/getrefs.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse.egg-info/SOURCES.txt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.172.0 → synapse-2.173.1}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import dataclasses
|
|
3
3
|
|
|
4
|
-
from typing import Union
|
|
4
|
+
from typing import Optional, Union
|
|
5
5
|
|
|
6
6
|
import synapse.exc as s_exc
|
|
7
7
|
import synapse.common as s_common
|
|
@@ -941,16 +941,38 @@ class HiveUser(HiveRuler):
|
|
|
941
941
|
if not self.allowed(perm):
|
|
942
942
|
await self.addRule((True, perm), indx=0)
|
|
943
943
|
|
|
944
|
-
def allowed(self,
|
|
944
|
+
def allowed(self,
|
|
945
|
+
perm: tuple[str, ...],
|
|
946
|
+
default: Optional[str] = None,
|
|
947
|
+
gateiden: Optional[str] = None,
|
|
948
|
+
deepdeny: bool = False) -> Union[bool, None]:
|
|
949
|
+
'''
|
|
950
|
+
Check if a user is allowed a given permission.
|
|
951
|
+
|
|
952
|
+
Args:
|
|
953
|
+
perm: The permission tuple to check.
|
|
954
|
+
default: The default rule value if there is no match.
|
|
955
|
+
gateiden: The gate iden to check against.
|
|
956
|
+
deepdeny: If True, give precedence for checking deny rules which are more specific than the requested
|
|
957
|
+
permission.
|
|
958
|
+
|
|
959
|
+
Notes:
|
|
960
|
+
The use of the deepdeny argument is intended for checking a less-specific part of a permissions tree, in
|
|
961
|
+
order to know about possible short circuit options. Using it to check a more specific part may have
|
|
962
|
+
unintended results.
|
|
963
|
+
|
|
964
|
+
Returns:
|
|
965
|
+
The allowed value of the permission.
|
|
966
|
+
'''
|
|
945
967
|
perm = tuple(perm)
|
|
946
|
-
return self.permcache.get((perm, default, gateiden))
|
|
968
|
+
return self.permcache.get((perm, default, gateiden, deepdeny))
|
|
947
969
|
|
|
948
970
|
def _allowed(self, pkey):
|
|
949
971
|
'''
|
|
950
972
|
NOTE: This must remain in sync with any changes to _getAllowedReason()!
|
|
951
973
|
'''
|
|
952
974
|
|
|
953
|
-
perm, default, gateiden = pkey
|
|
975
|
+
perm, default, gateiden, deepdeny = pkey
|
|
954
976
|
|
|
955
977
|
if self.info.get('locked'):
|
|
956
978
|
return False
|
|
@@ -958,6 +980,9 @@ class HiveUser(HiveRuler):
|
|
|
958
980
|
if self.info.get('admin'):
|
|
959
981
|
return True
|
|
960
982
|
|
|
983
|
+
if deepdeny and self._hasDeepDeny(perm, gateiden):
|
|
984
|
+
return False
|
|
985
|
+
|
|
961
986
|
# 1. check authgate user rules
|
|
962
987
|
if gateiden is not None:
|
|
963
988
|
|
|
@@ -1055,6 +1080,58 @@ class HiveUser(HiveRuler):
|
|
|
1055
1080
|
|
|
1056
1081
|
return _allowedReason(default, default=True)
|
|
1057
1082
|
|
|
1083
|
+
def _hasDeepDeny(self, perm, gateiden):
|
|
1084
|
+
|
|
1085
|
+
permlen = len(perm)
|
|
1086
|
+
|
|
1087
|
+
# 1. check authgate user rules
|
|
1088
|
+
if gateiden is not None:
|
|
1089
|
+
|
|
1090
|
+
info = self.authgates.get(gateiden)
|
|
1091
|
+
if info is not None:
|
|
1092
|
+
|
|
1093
|
+
if info.get('admin'):
|
|
1094
|
+
return False
|
|
1095
|
+
|
|
1096
|
+
for allow, path in info.get('rules', ()):
|
|
1097
|
+
if allow:
|
|
1098
|
+
continue
|
|
1099
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1100
|
+
return True
|
|
1101
|
+
|
|
1102
|
+
# 2. check user rules
|
|
1103
|
+
for allow, path in self.info.get('rules', ()):
|
|
1104
|
+
if allow:
|
|
1105
|
+
continue
|
|
1106
|
+
|
|
1107
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1108
|
+
return True
|
|
1109
|
+
|
|
1110
|
+
# 3. check authgate role rules
|
|
1111
|
+
if gateiden is not None:
|
|
1112
|
+
|
|
1113
|
+
for role in self.getRoles():
|
|
1114
|
+
|
|
1115
|
+
info = role.authgates.get(gateiden)
|
|
1116
|
+
if info is None:
|
|
1117
|
+
continue
|
|
1118
|
+
|
|
1119
|
+
for allow, path in info.get('rules', ()):
|
|
1120
|
+
if allow:
|
|
1121
|
+
continue
|
|
1122
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1123
|
+
return True
|
|
1124
|
+
|
|
1125
|
+
# 4. check role rules
|
|
1126
|
+
for role in self.getRoles():
|
|
1127
|
+
for allow, path in role.info.get('rules', ()):
|
|
1128
|
+
if allow:
|
|
1129
|
+
continue
|
|
1130
|
+
if path[:permlen] == perm and len(path) > permlen:
|
|
1131
|
+
return True
|
|
1132
|
+
|
|
1133
|
+
return False
|
|
1134
|
+
|
|
1058
1135
|
def clearAuthCache(self):
|
|
1059
1136
|
self.permcache.clear()
|
|
1060
1137
|
self.allowedcache.clear()
|
|
@@ -4095,9 +4095,6 @@ class Layer(s_nexus.Pusher):
|
|
|
4095
4095
|
yield prop[0]
|
|
4096
4096
|
|
|
4097
4097
|
async def confirmLayerEditPerms(self, user, gateiden, delete=False):
|
|
4098
|
-
if user.allowed(('node',), gateiden=gateiden):
|
|
4099
|
-
return
|
|
4100
|
-
|
|
4101
4098
|
if delete:
|
|
4102
4099
|
perm_forms = ('node', 'del')
|
|
4103
4100
|
perm_props = ('node', 'prop', 'del')
|
|
@@ -4111,11 +4108,14 @@ class Layer(s_nexus.Pusher):
|
|
|
4111
4108
|
perm_ndata = ('node', 'data', 'set')
|
|
4112
4109
|
perm_edges = ('node', 'edge', 'add')
|
|
4113
4110
|
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4111
|
+
if user.allowed(('node',), gateiden=gateiden, deepdeny=True):
|
|
4112
|
+
return
|
|
4113
|
+
|
|
4114
|
+
allow_forms = user.allowed(perm_forms, gateiden=gateiden, deepdeny=True)
|
|
4115
|
+
allow_props = user.allowed(perm_props, gateiden=gateiden, deepdeny=True)
|
|
4116
|
+
allow_tags = user.allowed(perm_tags, gateiden=gateiden, deepdeny=True)
|
|
4117
|
+
allow_ndata = user.allowed(perm_ndata, gateiden=gateiden, deepdeny=True)
|
|
4118
|
+
allow_edges = user.allowed(perm_edges, gateiden=gateiden, deepdeny=True)
|
|
4119
4119
|
|
|
4120
4120
|
if all((allow_forms, allow_props, allow_tags, allow_ndata, allow_edges)):
|
|
4121
4121
|
return
|
|
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
|
|
|
223
223
|
##############################################################################
|
|
224
224
|
# The following are touched during the release process by bumpversion.
|
|
225
225
|
# Do not modify these directly.
|
|
226
|
-
version = (2,
|
|
226
|
+
version = (2, 173, 1)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = '06b04fd5f58964b7897442d4c88cbfed145093d9'
|
|
@@ -1026,8 +1026,11 @@ class OuModule(s_module.CoreModule):
|
|
|
1026
1026
|
}),
|
|
1027
1027
|
('name', ('str', {'lower': True}), {
|
|
1028
1028
|
'doc': 'The full name of the conference.',
|
|
1029
|
-
'ex': '
|
|
1030
|
-
|
|
1029
|
+
'ex': 'defcon 2017'}),
|
|
1030
|
+
|
|
1031
|
+
('names', ('array', {'type': 'str', 'typeopts': {'lower': True}, 'uniq': True, 'sorted': True}), {
|
|
1032
|
+
'doc': 'An array of alternate names for the conference.'}),
|
|
1033
|
+
|
|
1031
1034
|
('desc', ('str', {'lower': True}), {
|
|
1032
1035
|
'doc': 'A description of the conference.',
|
|
1033
1036
|
'ex': 'annual cybersecurity conference',
|
|
@@ -356,8 +356,11 @@ class PsModule(s_module.CoreModule):
|
|
|
356
356
|
'doc': 'A description of this contact.',
|
|
357
357
|
}),
|
|
358
358
|
('title', ('ou:jobtitle', {}), {
|
|
359
|
-
'doc': 'The job/org title listed for this contact.',
|
|
360
|
-
|
|
359
|
+
'doc': 'The job/org title listed for this contact.'}),
|
|
360
|
+
|
|
361
|
+
('titles', ('array', {'type': 'ou:jobtitle', 'sorted': True, 'uniq': True}), {
|
|
362
|
+
'doc': 'An array of alternate titles for the contact.'}),
|
|
363
|
+
|
|
361
364
|
('photo', ('file:bytes', {}), {
|
|
362
365
|
'doc': 'The photo listed for this contact.',
|
|
363
366
|
}),
|
|
@@ -28,6 +28,11 @@ class PlanModule(s_module.CoreModule):
|
|
|
28
28
|
'doc': 'A link between steps in a procedure.'}),
|
|
29
29
|
),
|
|
30
30
|
|
|
31
|
+
'edges': (
|
|
32
|
+
(('plan:procedure:step', 'uses', None), {
|
|
33
|
+
'doc': 'The step in the procedure makes use of the target node.'}),
|
|
34
|
+
),
|
|
35
|
+
|
|
31
36
|
'forms': (
|
|
32
37
|
('plan:system', {}, (
|
|
33
38
|
|
|
@@ -2,9 +2,10 @@ import pathlib
|
|
|
2
2
|
|
|
3
3
|
import synapse.exc as s_exc
|
|
4
4
|
import synapse.telepath as s_telepath
|
|
5
|
+
import synapse.lib.hiveauth as s_hiveauth
|
|
5
6
|
|
|
6
7
|
import synapse.tests.utils as s_test
|
|
7
|
-
|
|
8
|
+
|
|
8
9
|
|
|
9
10
|
class AuthTest(s_test.SynTest):
|
|
10
11
|
|
|
@@ -371,3 +372,140 @@ class AuthTest(s_test.SynTest):
|
|
|
371
372
|
await core.auth.allrole.setRules([(True, ('hehe', 'haha'), 'newp')])
|
|
372
373
|
with self.raises(s_exc.SchemaViolation):
|
|
373
374
|
await core.auth.allrole.setRules([(True, )])
|
|
375
|
+
|
|
376
|
+
async def test_hive_auth_deepdeny(self):
|
|
377
|
+
async with self.getTestCore() as core:
|
|
378
|
+
|
|
379
|
+
# Create an authgate we can later test against
|
|
380
|
+
fork = await core.callStorm('return( $lib.view.get().fork().iden )')
|
|
381
|
+
await core.callStorm('auth.user.add lowuser')
|
|
382
|
+
await core.callStorm('auth.user.addrule lowuser "!hehe.haha.specific"')
|
|
383
|
+
await core.callStorm('auth.user.addrule lowuser "hehe.something.else"')
|
|
384
|
+
await core.callStorm('auth.user.addrule lowuser "hehe.haha"')
|
|
385
|
+
await core.callStorm('auth.user.addrule lowuser "some.perm"')
|
|
386
|
+
await core.callStorm('auth.role.add ninjas')
|
|
387
|
+
await core.callStorm('auth.role.add clowns')
|
|
388
|
+
await core.callStorm('auth.user.grant --index 0 lowuser ninjas')
|
|
389
|
+
await core.callStorm('auth.user.grant --index 1 lowuser clowns')
|
|
390
|
+
await core.callStorm('auth.role.addrule ninjas some.rule')
|
|
391
|
+
await core.callStorm('auth.role.addrule ninjas --gate $gate another.rule',
|
|
392
|
+
opts={'vars': {'gate': fork}})
|
|
393
|
+
|
|
394
|
+
user = await core.auth.getUserByName('lowuser') # type: s_hiveauth.HiveUser
|
|
395
|
+
self.false(user.allowed(('hehe',)))
|
|
396
|
+
self.false(user.allowed(('hehe',), deepdeny=True))
|
|
397
|
+
self.true(user.allowed(('hehe', 'haha')))
|
|
398
|
+
self.false(user.allowed(('hehe', 'haha'), deepdeny=True))
|
|
399
|
+
self.true(user.allowed(('hehe', 'haha', 'wow')))
|
|
400
|
+
self.true(user.allowed(('hehe', 'haha', 'wow'), deepdeny=True))
|
|
401
|
+
self.true(user.allowed(('some', 'perm')))
|
|
402
|
+
self.true(user.allowed(('some', 'perm'), deepdeny=True))
|
|
403
|
+
self.true(user.allowed(('some', 'perm', 'here')))
|
|
404
|
+
self.true(user.allowed(('some', 'perm', 'here'), deepdeny=True))
|
|
405
|
+
|
|
406
|
+
await core.callStorm('auth.user.delrule lowuser hehe.haha')
|
|
407
|
+
await core.callStorm('auth.user.addrule lowuser hehe')
|
|
408
|
+
self.true(user.allowed(('hehe',)))
|
|
409
|
+
self.false(user.allowed(('hehe',), deepdeny=True))
|
|
410
|
+
self.true(user.allowed(('hehe', 'haha')))
|
|
411
|
+
self.false(user.allowed(('hehe', 'haha'), deepdeny=True))
|
|
412
|
+
self.true(user.allowed(('hehe', 'haha', 'wow')))
|
|
413
|
+
self.true(user.allowed(('hehe', 'haha', 'wow'), deepdeny=True))
|
|
414
|
+
self.false(user.allowed(('weee',)))
|
|
415
|
+
self.false(user.allowed(('weee',), deepdeny=True))
|
|
416
|
+
await core.callStorm('auth.user.delrule lowuser hehe')
|
|
417
|
+
|
|
418
|
+
await core.callStorm('auth.role.addrule all "!hehe.something.else.very.specific"')
|
|
419
|
+
self.false(user.allowed(('hehe',)))
|
|
420
|
+
self.false(user.allowed(('hehe',), deepdeny=True))
|
|
421
|
+
|
|
422
|
+
self.false(user.allowed(('hehe', 'something')))
|
|
423
|
+
self.true(user.allowed(('hehe', 'something', 'else')))
|
|
424
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very')))
|
|
425
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific')))
|
|
426
|
+
|
|
427
|
+
self.false(user.allowed(('hehe', 'something')))
|
|
428
|
+
self.false(user.allowed(('hehe', 'something', 'else'), deepdeny=True))
|
|
429
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very'), deepdeny=True))
|
|
430
|
+
|
|
431
|
+
# There is NOT a deeper permission here, even though there is a deny rule on the role.
|
|
432
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), deepdeny=True))
|
|
433
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific', 'more')))
|
|
434
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific', 'more'), deepdeny=True))
|
|
435
|
+
await core.callStorm('auth.role.delrule all "!hehe.something.else.very.specific"')
|
|
436
|
+
|
|
437
|
+
await core.callStorm('auth.role.addrule --gate $gate all "beep.boop"',
|
|
438
|
+
opts={'vars': {'gate': fork}})
|
|
439
|
+
await core.callStorm('auth.role.addrule --gate $gate all "!hehe.something.else.very.specific"',
|
|
440
|
+
opts={'vars': {'gate': fork}})
|
|
441
|
+
self.false(user.allowed(('hehe',), gateiden=fork))
|
|
442
|
+
self.false(user.allowed(('hehe', 'something'), gateiden=fork))
|
|
443
|
+
self.true(user.allowed(('hehe', 'something', 'else'), gateiden=fork))
|
|
444
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork))
|
|
445
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork))
|
|
446
|
+
self.false(user.allowed(('hehe',), gateiden=fork, deepdeny=True))
|
|
447
|
+
self.false(user.allowed(('hehe', 'something'), gateiden=fork, deepdeny=True))
|
|
448
|
+
self.false(user.allowed(('hehe', 'something', 'else'), gateiden=fork, deepdeny=True))
|
|
449
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork, deepdeny=True))
|
|
450
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork, deepdeny=True))
|
|
451
|
+
await core.callStorm('auth.role.delrule --gate $gate all "!hehe.something.else.very.specific"',
|
|
452
|
+
opts={'vars': {'gate': fork}})
|
|
453
|
+
await core.callStorm('auth.role.delrule --gate $gate all "beep.boop"',
|
|
454
|
+
opts={'vars': {'gate': fork}})
|
|
455
|
+
|
|
456
|
+
await core.callStorm('auth.user.addrule --gate $gate lowuser "beep.boop"',
|
|
457
|
+
opts={'vars': {'gate': fork}})
|
|
458
|
+
await core.callStorm('auth.user.addrule --gate $gate lowuser "!hehe.something.else.very.specific"',
|
|
459
|
+
opts={'vars': {'gate': fork}})
|
|
460
|
+
self.false(user.allowed(('hehe',), gateiden=fork))
|
|
461
|
+
self.false(user.allowed(('hehe', 'something'), gateiden=fork))
|
|
462
|
+
self.true(user.allowed(('hehe', 'something', 'else'), gateiden=fork))
|
|
463
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork))
|
|
464
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork))
|
|
465
|
+
self.false(user.allowed(('hehe',), gateiden=fork, deepdeny=True))
|
|
466
|
+
self.false(user.allowed(('hehe', 'something'), gateiden=fork, deepdeny=True))
|
|
467
|
+
self.false(user.allowed(('hehe', 'something', 'else'), gateiden=fork, deepdeny=True))
|
|
468
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork, deepdeny=True))
|
|
469
|
+
# This differs from earlier check as the dd is false; but the user authgate deny is earlier in precedence
|
|
470
|
+
# than the user specific allow
|
|
471
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork, deepdeny=True))
|
|
472
|
+
|
|
473
|
+
await core.callStorm('auth.user.delrule --gate $gate lowuser "!hehe.something.else.very.specific"',
|
|
474
|
+
opts={'vars': {'gate': fork}})
|
|
475
|
+
await core.callStorm('auth.user.delrule --gate $gate lowuser "beep.boop"',
|
|
476
|
+
opts={'vars': {'gate': fork}})
|
|
477
|
+
|
|
478
|
+
await core.callStorm('auth.user.mod --admin (true) lowuser --gate $gate', opts={'vars': {'gate': fork}})
|
|
479
|
+
self.true(user.allowed(('hehe',), gateiden=fork))
|
|
480
|
+
self.true(user.allowed(('hehe', 'something'), gateiden=fork))
|
|
481
|
+
self.true(user.allowed(('hehe', 'something', 'else'), gateiden=fork))
|
|
482
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork))
|
|
483
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork))
|
|
484
|
+
|
|
485
|
+
self.true(user.allowed(('hehe',), gateiden=fork, deepdeny=True))
|
|
486
|
+
self.true(user.allowed(('hehe', 'something'), gateiden=fork, deepdeny=True))
|
|
487
|
+
self.true(user.allowed(('hehe', 'something', 'else'), gateiden=fork, deepdeny=True))
|
|
488
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very'), gateiden=fork, deepdeny=True))
|
|
489
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), gateiden=fork, deepdeny=True))
|
|
490
|
+
|
|
491
|
+
await core.callStorm('auth.user.mod --admin (false) lowuser --gate $gate', opts={'vars': {'gate': fork}})
|
|
492
|
+
|
|
493
|
+
await core.callStorm('auth.user.mod --admin (true) lowuser')
|
|
494
|
+
self.true(user.allowed(('hehe',)))
|
|
495
|
+
self.true(user.allowed(('hehe', 'something')))
|
|
496
|
+
self.true(user.allowed(('hehe', 'something', 'else')))
|
|
497
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very')))
|
|
498
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific')))
|
|
499
|
+
self.true(user.allowed(('hehe',), deepdeny=True))
|
|
500
|
+
self.true(user.allowed(('hehe', 'something')))
|
|
501
|
+
self.true(user.allowed(('hehe', 'something', 'else'), deepdeny=True))
|
|
502
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very'), deepdeny=True))
|
|
503
|
+
self.true(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), deepdeny=True))
|
|
504
|
+
await core.callStorm('auth.user.mod --admin (false) lowuser')
|
|
505
|
+
|
|
506
|
+
await core.callStorm('auth.user.mod --locked (true) lowuser')
|
|
507
|
+
self.false(user.allowed(('hehe',), deepdeny=True))
|
|
508
|
+
self.false(user.allowed(('hehe', 'something'), deepdeny=True))
|
|
509
|
+
self.false(user.allowed(('hehe', 'something', 'else'), deepdeny=True))
|
|
510
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very'), deepdeny=True))
|
|
511
|
+
self.false(user.allowed(('hehe', 'something', 'else', 'very', 'specific'), deepdeny=True))
|
|
@@ -1920,6 +1920,19 @@ class LayerTest(s_t_utils.SynTest):
|
|
|
1920
1920
|
async def __anit__(self, dirn=None, size=1, cell=None):
|
|
1921
1921
|
await super().__anit__(dirn=dirn, size=size, cell=cell)
|
|
1922
1922
|
|
|
1923
|
+
seen = set()
|
|
1924
|
+
def confirm(self, perm, default=None, gateiden=None):
|
|
1925
|
+
seen.add(perm)
|
|
1926
|
+
return True
|
|
1927
|
+
|
|
1928
|
+
def confirmPropSet(self, user, prop, layriden):
|
|
1929
|
+
seen.add(prop.setperms[0])
|
|
1930
|
+
seen.add(prop.setperms[1])
|
|
1931
|
+
|
|
1932
|
+
def confirmPropDel(self, user, prop, layriden):
|
|
1933
|
+
seen.add(prop.delperms[0])
|
|
1934
|
+
seen.add(prop.delperms[1])
|
|
1935
|
+
|
|
1923
1936
|
with mock.patch('synapse.lib.spooled.Dict', Dict):
|
|
1924
1937
|
async with self.getTestCore() as core:
|
|
1925
1938
|
|
|
@@ -1952,19 +1965,7 @@ class LayerTest(s_t_utils.SynTest):
|
|
|
1952
1965
|
|
|
1953
1966
|
parent = core.view.layers[0]
|
|
1954
1967
|
|
|
1955
|
-
seen
|
|
1956
|
-
def confirm(self, perm, default=None, gateiden=None):
|
|
1957
|
-
seen.add(perm)
|
|
1958
|
-
return True
|
|
1959
|
-
|
|
1960
|
-
def confirmPropSet(self, user, prop, layriden):
|
|
1961
|
-
seen.add(prop.setperms[0])
|
|
1962
|
-
seen.add(prop.setperms[1])
|
|
1963
|
-
|
|
1964
|
-
def confirmPropDel(self, user, prop, layriden):
|
|
1965
|
-
seen.add(prop.delperms[0])
|
|
1966
|
-
seen.add(prop.delperms[1])
|
|
1967
|
-
|
|
1968
|
+
seen.clear()
|
|
1968
1969
|
with mock.patch.object(s_hiveauth.HiveUser, 'confirm', confirm):
|
|
1969
1970
|
with mock.patch.object(s_cortex.Cortex, 'confirmPropSet', confirmPropSet):
|
|
1970
1971
|
with mock.patch.object(s_cortex.Cortex, 'confirmPropDel', confirmPropDel):
|
|
@@ -2075,6 +2076,59 @@ class LayerTest(s_t_utils.SynTest):
|
|
|
2075
2076
|
('node', 'tag', 'del', 'foo', 'bar'),
|
|
2076
2077
|
})
|
|
2077
2078
|
|
|
2079
|
+
async with self.getTestCore() as core:
|
|
2080
|
+
|
|
2081
|
+
user = await core.auth.addUser('blackout@vertex.link')
|
|
2082
|
+
await user.addRule((False, ('node', 'edge', 'add', 'haha')))
|
|
2083
|
+
await user.addRule((False, ('node', 'data', 'set', 'hehe')))
|
|
2084
|
+
await user.addRule((True, ('node',)))
|
|
2085
|
+
|
|
2086
|
+
viewiden = await core.callStorm('''
|
|
2087
|
+
$lyr = $lib.layer.add()
|
|
2088
|
+
$view = $lib.view.add(($lyr.iden,))
|
|
2089
|
+
return($view.iden)
|
|
2090
|
+
''')
|
|
2091
|
+
|
|
2092
|
+
layr = core.views[viewiden].layers[0]
|
|
2093
|
+
|
|
2094
|
+
opts = {'view': viewiden}
|
|
2095
|
+
|
|
2096
|
+
await core.nodes('[ test:str=bar +#foo.bar ]', opts=opts)
|
|
2097
|
+
|
|
2098
|
+
await core.nodes('''
|
|
2099
|
+
[ test:str=foo
|
|
2100
|
+
:hehe=bar
|
|
2101
|
+
+#foo.bar.baz
|
|
2102
|
+
<(refs)+ { test:str=bar }
|
|
2103
|
+
]
|
|
2104
|
+
$node.data.set(foo, bar)
|
|
2105
|
+
''', opts=opts)
|
|
2106
|
+
|
|
2107
|
+
parent = core.view.layers[0]
|
|
2108
|
+
|
|
2109
|
+
seen.clear()
|
|
2110
|
+
with mock.patch.object(s_hiveauth.HiveUser, 'confirm', confirm):
|
|
2111
|
+
with mock.patch.object(s_cortex.Cortex, 'confirmPropSet', confirmPropSet):
|
|
2112
|
+
with mock.patch.object(s_cortex.Cortex, 'confirmPropDel', confirmPropDel):
|
|
2113
|
+
await layr.confirmLayerEditPerms(user, parent.iden)
|
|
2114
|
+
|
|
2115
|
+
self.eq(seen, {
|
|
2116
|
+
# node.edge.add.* and node.data.set.* because of the deny rules
|
|
2117
|
+
('node', 'edge', 'add', 'refs'),
|
|
2118
|
+
('node', 'data', 'set', 'foo'),
|
|
2119
|
+
})
|
|
2120
|
+
|
|
2121
|
+
await user.delRule((False, ('node', 'edge', 'add', 'haha')))
|
|
2122
|
+
await user.delRule((False, ('node', 'data', 'set', 'hehe')))
|
|
2123
|
+
|
|
2124
|
+
seen.clear()
|
|
2125
|
+
with mock.patch.object(s_hiveauth.HiveUser, 'confirm', confirm):
|
|
2126
|
+
with mock.patch.object(s_cortex.Cortex, 'confirmPropSet', confirmPropSet):
|
|
2127
|
+
with mock.patch.object(s_cortex.Cortex, 'confirmPropDel', confirmPropDel):
|
|
2128
|
+
await layr.confirmLayerEditPerms(user, parent.iden)
|
|
2129
|
+
|
|
2130
|
+
self.eq(seen, set())
|
|
2131
|
+
|
|
2078
2132
|
async def test_layer_v9(self):
|
|
2079
2133
|
async with self.getRegrCore('2.101.1-hugenum-indxprec') as core:
|
|
2080
2134
|
|
|
@@ -375,19 +375,25 @@ class OuModelTest(s_t_utils.SynTest):
|
|
|
375
375
|
props = {
|
|
376
376
|
'org': guid0,
|
|
377
377
|
'name': 'arrowcon 2018',
|
|
378
|
+
'names': ('Arrow Conference 2018', 'ArrCon18', 'ArrCon18'),
|
|
378
379
|
'base': 'arrowcon',
|
|
379
380
|
'start': '20180301',
|
|
380
381
|
'end': '20180303',
|
|
381
382
|
'place': place0,
|
|
382
383
|
'url': 'http://arrowcon.org/2018',
|
|
383
384
|
}
|
|
384
|
-
q = '''[
|
|
385
|
-
:
|
|
385
|
+
q = '''[
|
|
386
|
+
ou:conference=$valu
|
|
387
|
+
:org=$p.org :name=$p.name :names=$p.names
|
|
388
|
+
:base=$p.base :start=$p.start :end=$p.end
|
|
389
|
+
:place=$p.place :url=$p.url
|
|
390
|
+
]'''
|
|
386
391
|
nodes = await core.nodes(q, opts={'vars': {'valu': c0, 'p': props}})
|
|
387
392
|
self.len(1, nodes)
|
|
388
393
|
node = nodes[0]
|
|
389
394
|
self.eq(node.ndef[1], c0)
|
|
390
395
|
self.eq(node.get('name'), 'arrowcon 2018')
|
|
396
|
+
self.eq(node.get('names'), ('arrcon18', 'arrow conference 2018',))
|
|
391
397
|
self.eq(node.get('base'), 'arrowcon')
|
|
392
398
|
self.eq(node.get('org'), guid0)
|
|
393
399
|
self.eq(node.get('start'), 1519862400000)
|
|
@@ -153,6 +153,7 @@ class PsModelTest(s_t_utils.SynTest):
|
|
|
153
153
|
:org=$p.org :asof=$p.asof :person=$p.person
|
|
154
154
|
:place=$p.place :place:name=$p."place:name" :name=$p.name
|
|
155
155
|
:title=$p.title :orgname=$p.orgname :user=$p.user
|
|
156
|
+
:titles=('hehe', 'hehe', 'haha')
|
|
156
157
|
:web:acct=$p."web:acct" :web:group=$p."web:group"
|
|
157
158
|
:dob=$p.dob :dod=$p.dod :url=$p.url
|
|
158
159
|
:email=$p.email :email:work=$p."email:work"
|
|
@@ -177,6 +178,7 @@ class PsModelTest(s_t_utils.SynTest):
|
|
|
177
178
|
self.eq(node.get('place:name'), 'the shire')
|
|
178
179
|
self.eq(node.get('name'), 'tony stark')
|
|
179
180
|
self.eq(node.get('title'), 'ceo')
|
|
181
|
+
self.eq(node.get('titles'), ('haha', 'hehe'))
|
|
180
182
|
self.eq(node.get('orgname'), 'stark industries, inc')
|
|
181
183
|
self.eq(node.get('user'), 'ironman')
|
|
182
184
|
self.eq(node.get('web:acct'), ('twitter.com', 'ironman'))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{synapse-2.172.0 → synapse-2.173.1}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|