You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b3682d4
Browse filesBrowse the repository at this point in the historyBrowse files
-**A member with no active organization.** Under `group`, such a member with a non-empty membership set can now insert a row naming one of those organizations: it is stored there. It used to be refused `403 PERMISSION_DENIED` under ADR-0123 D2, because the value was taken and the row then named no organization. A row naming none is still refused under D2, and one naming an organization outside the set is still refused by the wall.
33
33
-**An on-behalf-of insert (ADR-0090 D10).** Take a platform operator who crosses the wall and acts for a walled delegator. The named organization is held to the delegator's wall: stored as sent where that wall admits it, refused `403` where it does not. Before, an admitted value was taken and the active organization stored.
34
34
-**An explicit empty value in an array insert.** A row naming `organization_id: null` or `''` is no longer taken, reported, or refused under strict. It is still stored as the active organization, because the driver's stamp fills an empty value.
35
+
-**Only the platform's injected column is spared.** On an object whose author declares its own `organization_id` with `readonly: true`, a caller's value is still taken, reported, and refused under strict, exactly as before. The wall still judges that column. The author's declaration is what keeps the strip, and the injected column is told apart by the registry's provenance reader (`resolveInjectedColumnProvenance`).
35
36
-**Where no wall judges the column, nothing changes.** The value is still taken and reported, and strict still refuses it. That includes `single`, a composition without the security plugin, a tenancy-disabled object, and a platform operator crossing the wall on its own behalf.
// [#24822] Tenancy switched off, and an AUTHORED read-only `organization_id`:
112
125
// Layer 0 composes nothing on it, so no wall judges the column.
113
126
{
@@ -629,6 +642,26 @@ describe('[#24822] an explicit organization_id the wall judges is stored as sent
629
642
});
630
643
});
631
644
645
+
describe('an AUTHORED read-only organization_id on a walled object (F4)',()=>{
646
+
// [#24822] F4: the wall judges this column too (the object stays walled on
647
+
// an authored `organization_id`), and the seam declares it. But the
648
+
// author declared the column read-only, and declaration is enforcement:
649
+
// only the platform's injected column is spared.
650
+
it('an AUTHORED read-only organization_id on a walled object keeps the strip: taken, reported, the active organization stored, and refused under strict',async()=>{
0 commit comments