xarmian
9ad718178d
fix(store): workspace-scope the item-grant lookup (TASK-2403)
...
ResolveUserPermission matched item grants on item_id alone, so a grant on
an item in workspace B resolved for a request scoped to workspace A. This
is the underlying lookup behind the delete escalation PLAN-2382 fixed at
the handler; closing it here means the next caller does not have to
remember the workspace-identity guard.
The adjacent collection-grant lookup had the identical defect and the
identical safety argument, so it is scoped in the same commit rather than
leaving a second unscoped lookup three lines below the one DR-5 names.
Safe for every caller: all three (requireEditPermission, the collab
access check, crossWorkspaceEditAllowed) already pass the workspace the
item/collection was resolved in, and grant rows carry the workspace they
were minted in — the same scoping listUserItemGrants already uses.
Claude-Session: https://claude.ai/code/session_01LmbFxQFDjcYKBLcTnor6DC
2026-08-01 23:59:38 +00:00
..
2026-07-31 12:45:58 +00:00
2026-07-30 12:20:38 +00:00
2026-07-21 18:00:49 -04:00
2026-05-30 12:38:57 -04:00
2026-07-05 19:23:02 -04:00
2026-07-08 16:26:41 -04:00
2026-05-20 17:07:57 -04:00
2026-07-08 16:26:41 -04:00
2026-05-01 20:39:10 -04:00
2026-05-11 12:51:49 -04:00
2026-06-15 11:31:45 -04:00
2026-07-14 23:24:55 -04:00
2026-07-30 14:37:51 +00:00
2026-07-31 00:59:25 +00:00
2026-08-01 23:05:26 +00:00
2026-08-01 18:11:35 +00:00
2026-08-01 23:05:26 +00:00
2026-05-27 10:37:30 -04:00
2026-04-28 12:26:39 -04:00
2026-05-18 00:03:20 -04:00
2026-06-15 14:44:58 -04:00
2026-06-20 23:51:43 -04:00
2026-05-16 11:58:56 -04:00
2026-07-31 16:02:52 +00:00
2026-07-31 16:02:52 +00:00
2026-05-30 12:38:57 -04:00
2026-05-18 03:32:42 -04:00
2026-05-18 08:33:39 -04:00
2026-07-07 17:18:54 -04:00
2026-05-29 08:24:05 -04:00
2026-05-29 23:43:02 -04:00
2026-04-28 16:21:43 -04:00
2026-07-21 09:43:05 -04:00
2026-04-13 09:14:04 -04:00
2026-07-04 01:19:41 -04:00
2026-07-04 03:32:48 -04:00
2026-04-28 12:26:39 -04:00
2026-07-11 00:10:27 -04:00
2026-07-21 16:16:15 -04:00
2026-08-01 23:59:38 +00:00
2026-08-01 23:59:38 +00:00
2026-06-05 18:12:56 -04:00
2026-04-28 12:26:39 -04:00
2026-04-28 12:26:39 -04:00
2026-04-28 12:26:39 -04:00
2026-06-15 14:44:58 -04:00
2026-07-31 17:28:05 +00:00
2026-07-31 17:28:05 +00:00
2026-07-21 15:21:57 -04:00
2026-07-30 13:03:16 +00:00
2026-07-31 16:50:37 +00:00
2026-07-31 17:28:05 +00:00
2026-07-31 16:02:52 +00:00
2026-07-08 16:47:34 -04:00
2026-07-21 15:21:57 -04:00
2026-07-21 16:16:15 -04:00
2026-05-16 10:15:59 -04:00
2026-07-31 00:59:25 +00:00
2026-05-25 09:24:57 -04:00
2026-07-30 15:50:18 +00:00
2026-07-30 20:15:00 +00:00
2026-07-03 10:15:49 -04:00
2026-05-02 22:56:10 -04:00
2026-05-02 22:56:10 -04:00
2026-05-15 23:57:38 -04:00
2026-07-07 16:32:20 -04:00
2026-07-07 16:32:20 -04:00
2026-05-30 19:57:45 -04:00
2026-07-07 16:45:00 -04:00
2026-05-18 03:32:42 -04:00
2026-05-18 03:32:42 -04:00
2026-05-18 00:03:20 -04:00
2026-07-05 12:05:24 -04:00
2026-05-03 16:37:49 -04:00
2026-05-03 16:37:49 -04:00
2026-07-08 14:46:15 -04:00
2026-04-28 12:26:39 -04:00
2026-04-28 12:26:39 -04:00
2026-04-05 18:50:50 +00:00
2026-04-28 12:26:39 -04:00
2026-05-29 15:00:34 -04:00
2026-05-29 15:00:34 -04:00
2026-05-29 18:56:13 -04:00
2026-05-29 18:56:13 -04:00
2026-04-28 12:26:39 -04:00
2026-05-11 12:51:49 -04:00
2026-06-14 21:15:35 -04:00
2026-06-14 21:15:35 -04:00
2026-04-28 12:26:39 -04:00
2026-04-28 12:26:39 -04:00
2026-06-02 09:39:22 -04:00
2026-05-29 17:30:23 -04:00
2026-07-03 10:15:49 -04:00
2026-07-30 13:03:16 +00:00
2026-04-23 20:26:02 -04:00
2026-04-23 20:26:02 -04:00
2026-05-29 23:43:02 -04:00
2026-04-28 12:26:39 -04:00
2026-05-12 10:01:14 -04:00
2026-05-30 12:38:57 -04:00
2026-04-08 20:30:39 +00:00
2026-07-04 00:45:48 -04:00
2026-05-20 17:13:28 -04:00
2026-05-20 16:50:16 -04:00
2026-07-10 23:56:59 -04:00
2026-07-10 23:56:59 -04:00
2026-04-28 12:26:39 -04:00
2026-05-16 10:15:59 -04:00
2026-07-11 00:10:27 -04:00
2026-07-14 23:24:55 -04:00
2026-05-23 23:09:44 -04:00
2026-05-24 21:27:38 -04:00
2026-05-27 10:37:30 -04:00
2026-05-27 10:37:30 -04:00
2026-05-23 11:36:16 -04:00
2026-07-01 23:25:24 -04:00
2026-07-05 22:23:12 -04:00
2026-07-30 12:20:38 +00:00
2026-07-01 23:25:24 -04:00
2026-07-06 10:07:34 -04:00
2026-07-06 10:07:34 -04:00
2026-05-08 13:28:55 -04:00
2026-07-21 15:21:57 -04:00