Commit eec7f04
committed
Close is_public-extract parity gap in source visibility builders
Reviewing the visible_extracts_for docstring surfaced a latent
filter/check parity violation (same class as the group-grant drift this
PR fixes): user_can's privacy recursion delegates to
Extract.objects.user_can, which grants READ on is_public extracts for
authenticated users, while the list-side privacy gates omitted the flag
for extracts (analyses always included it). An extract-rooted row on a
public extract therefore passed user_can(READ) but never surfaced in
visible_to_user or service listings — a public-extract fixture would
have failed the parity invariant.
visible_extracts_for now includes is_public on the authenticated branch
(anonymous still gets none — ExtractManager denies outright), mirroring
visible_analyses_for. No practical exposure today: no user-facing flow
sets Extract.is_public. Pinned by
test_public_extract_source_passes_both_surfaces; changelog updated.1 parent 3b7df6f commit eec7f04
3 files changed
Lines changed: 61 additions & 5 deletions
File tree
- changelog.d
- opencontractserver
- tests/permissioning
- utils
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
Lines changed: 44 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1623 | 1623 | | |
1624 | 1624 | | |
1625 | 1625 | | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
1626 | 1670 | | |
1627 | 1671 | | |
1628 | 1672 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
78 | | - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
79 | 91 | | |
80 | 92 | | |
81 | 93 | | |
| |||
88 | 100 | | |
89 | 101 | | |
90 | 102 | | |
91 | | - | |
| 103 | + | |
92 | 104 | | |
93 | 105 | | |
94 | 106 | | |
| |||
0 commit comments