in kinto-remote-settings/src/kinto_remote_settings/signer/listeners.py [0:0]
def pick_resource_and_signer(request, resources, bucket_id, collection_id):
bucket_key = instance_uri(request, "bucket", id=bucket_id)
collection_key = instance_uri(
request, "collection", bucket_id=bucket_id, id=collection_id
)
resource = signer = None
# Review might have been configured explictly for this collection,
if collection_key in resources:
resource = resources[collection_key]
elif bucket_key in resources:
# Or via its bucket.
resource = copy.deepcopy(resources[bucket_key])
# Since it was configured per bucket, we want to make this
# resource look as if it was configured explicitly for this
# collection.
resource["source"]["collection"] = collection_id
resource["destination"]["collection"] = collection_id
if "preview" in resource:
resource["preview"]["collection"] = collection_id
if collection_key in request.registry.signers:
signer = request.registry.signers[collection_key]
elif bucket_key in request.registry.signers:
signer = request.registry.signers[bucket_key]
return resource, signer