maziggy
732b1d7034
fix(backup): gate every restore category on the permission owning its rows ( #2656 )
...
settings was gated on settings:update because a restore rewrites rows
PUT /api/v1/settings/ owns. The same argument applies to the other three
categories, and gating one but not the rest is the only state that is
not defensible: a role holding Backup alone could still write spools,
archives and K-profiles through a restore that it cannot write through
the endpoints that own them.
Each category now also requires that endpoint's write permission -
inventory:update, archives:update_all and kprofiles:update. archives
takes update_all rather than create because a restore writes rows owned
by other users, which is exactly what update_all means.
All missing permissions are reported in one refusal: a restore is a
multi-select, so naming them one at a time turns picking four categories
into four round trips.
2026-08-15 14:25:46 +02:00
..
2025-12-11 10:03:40 +01:00
2026-04-13 13:24:28 +02:00
2026-01-02 15:00:21 +01:00
2026-03-05 08:46:39 +01:00
2026-05-02 08:10:47 +02:00
2026-05-17 10:54:28 +02:00
2026-08-03 14:53:21 +02:00
2026-06-25 15:19:28 +02:00
2026-07-30 21:35:01 +02:00
2026-03-06 08:35:06 +01:00
2026-06-26 12:31:48 +02:00
2026-07-16 08:38:42 +02:00
2026-07-11 13:38:15 +02:00
2026-04-13 13:24:28 +02:00
2026-07-28 15:05:28 +02:00
2026-07-10 08:24:20 +02:00
2026-06-11 14:49:52 +02:00
2026-04-11 12:10:45 +02:00
2026-05-15 15:43:37 +02:00
2026-07-28 14:49:50 +02:00
2026-02-08 12:17:20 +01:00
2026-07-11 09:33:52 +02:00
2026-02-18 11:58:17 +01:00
2026-07-27 11:01:43 +02:00
2026-01-02 15:00:21 +01:00
2026-02-18 11:58:17 +01:00
2026-08-05 21:25:46 +02:00
2026-05-06 14:23:39 +02:00
2026-05-17 15:30:05 +02:00
2026-08-05 16:10:04 -04:00
2026-04-22 19:10:18 +02:00
2026-08-05 14:26:38 +02:00
2026-07-17 07:26:24 +02:00
2026-06-23 11:34:15 +02:00
2026-06-08 09:30:16 +02:00
2026-06-25 09:57:15 +02:00
2026-07-07 10:31:19 +02:00
2026-05-12 16:12:58 +02:00
2026-06-25 20:10:25 +02:00
2026-06-27 09:47:35 +02:00
2026-08-03 14:10:02 +02:00
2026-06-22 12:27:58 +02:00
2026-05-11 13:30:27 +02:00
2026-08-03 11:10:11 +02:00
2026-08-01 11:37:01 +02:00
2026-06-17 11:33:23 +02:00
2026-04-25 10:44:37 +02:00
2026-06-02 14:58:10 +02:00
2026-07-14 11:29:56 +02:00
2026-01-27 16:49:28 +01:00
2026-06-02 10:23:21 +02:00
2026-03-24 11:31:32 +01:00
2026-07-28 11:37:36 +02:00
2026-08-01 09:17:33 +00:00
2026-07-28 21:05:29 +00:00
2026-07-28 21:05:29 +00:00
2026-05-15 08:57:03 +02:00
2026-07-09 09:02:34 +02:00
2026-05-15 08:50:37 +02:00
2026-05-13 13:23:21 +02:00
2026-07-17 08:16:35 +02:00
2026-08-04 12:38:36 +02:00
2026-08-04 11:11:36 +02:00
2026-05-11 13:30:27 +02:00
2026-06-28 11:18:18 +02:00
2026-07-28 13:36:55 +02:00
2026-08-04 11:11:36 +02:00
2026-07-30 21:51:13 +02:00
2026-08-05 21:25:46 +02:00
2026-08-03 08:52:23 +02:00
2026-07-31 14:50:25 +02:00
2026-06-09 13:32:15 +02:00
2026-08-03 12:33:19 +02:00
2026-06-28 11:18:18 +02:00
2026-07-30 21:35:01 +02:00
2026-08-04 12:38:36 +02:00
2026-05-30 13:49:09 +02:00
2026-06-16 12:00:27 +02:00
2026-05-08 14:28:41 +02:00
2026-07-20 17:55:56 +02:00
2026-05-15 13:12:41 +02:00
2026-06-21 11:55:37 +02:00
2026-04-19 09:48:10 +02:00
2026-06-27 13:56:18 +02:00
2026-04-01 10:06:01 +02:00
2026-06-20 15:50:58 +02:00
2026-06-22 10:14:31 +02:00
2026-06-05 09:22:05 +02:00
2026-05-08 11:52:42 +02:00
2026-05-26 10:36:37 +02:00
2026-05-08 11:52:42 +02:00
2026-05-21 09:33:47 +02:00
2026-05-08 11:52:42 +02:00
2026-06-17 11:33:23 +02:00
2026-06-23 11:34:15 +02:00
2026-06-17 11:33:23 +02:00
2026-06-17 11:33:23 +02:00
2026-05-21 09:15:10 +02:00
2026-05-20 11:00:54 +02:00
2026-05-20 11:16:56 +02:00
2026-05-05 14:35:08 +02:00
2026-07-18 09:58:21 +02:00
2026-05-22 16:31:16 +02:00
2026-06-22 14:23:30 +02:00
2026-04-24 09:59:09 +02:00
2026-07-29 11:51:30 +02:00
2026-04-26 10:01:17 +02:00
2026-08-03 15:12:02 +02:00
2026-03-17 12:24:36 +01:00
2026-05-13 13:23:21 +02:00
2026-06-12 13:27:17 +02:00
2026-06-19 11:29:07 +02:00
2026-06-02 12:57:51 +02:00
2026-07-20 17:55:56 +02:00