+22
−1
+122
−0
Loading
Permissions referencing hard-deleted objects can remain in project snapshots. Restoration previously mapped their missing targets to object_pk=None, turning scoped permissions into class-wide grants or denials and potentially exposing unrelated project data. Skip permissions whose targets cannot be remapped while preserving valid scoped permissions and intentional class-wide permissions. Report skipped entries in one warning with at most five examples, without adding database queries. Add round-trip regression coverage for stale grants and denials, valid target ID remapping, preservation of class-wide permissions, and bounded warning output. Validation: all 18 ProjectSnapshotTestCase tests passed; Ruff and git diff --check passed.