in kinto-remote-settings/src/kinto_remote_settings/signer/listeners.py [0:0]
def check_collection_tracking(event, resources):
"""Make sure tracking fields are not changed manually/removed."""
if event.request.prefixed_userid == PLUGIN_USERID:
return
for impacted in event.impacted_objects:
old_collection = impacted.get("old", {})
new_collection = impacted["new"]
resource, _ = pick_resource_and_signer(
event.request,
resources,
bucket_id=event.payload["bucket_id"],
collection_id=new_collection["id"],
)
# Skip if resource is not configured.
if resource is None:
continue
for field in TRACKING_FIELDS:
old = old_collection.get(field.value)
new = new_collection.get(field.value)
if old != new:
raise_invalid(message="Cannot change %r" % field)