L-10: E-16 answers not_found for another user's device (D-156)

A member naming the other user's device now gets the same 404 not_found
body as an unknown id, so E-16 no longer reveals whose a device id is.
The admin keeps revoking any device except the current one (AC-3.2, §8.4).
contracts/openapi.yaml drops the 403 on E-16 and states the rule;
web/src/api/schema.d.ts regenerated. The forbidden test becomes a
not_found test, plus one asserting the body equals the unknown-id body
and that nothing was revoked.

Also bumps ctutils 0.4.3 -> 0.4.4 (lockfile only) for RUSTSEC-2026-0385,
published 2026-10-23, which failed cargo audit on main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
This commit is contained in:
2026-10-24 11:03:19 +02:00
parent 593c7275a6
commit 07c36d24a2
5 changed files with 48 additions and 18 deletions
+1 -4
View File
@@ -626,7 +626,7 @@ paths:
delete:
operationId: revokeDevice
summary: E-16 Revoke a device
description: Revoking an already revoked device is 204. Admin any device except the current one; member own devices except the current one (SPEC §8.4).
description: Revoking an already revoked device is 204. Admin any device except the current one; member own devices except the current one, and a device of the other user is 404 `not_found`, the same answer as an unknown id (SPEC §8.4, D-156).
parameters:
- $ref: '#/components/parameters/DeviceId'
- $ref: '#/components/parameters/Protocol'
@@ -641,9 +641,6 @@ paths:
$ref: '#/components/headers/ServerVersion'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
description: '`forbidden`.'
'404':
$ref: '#/components/responses/NotFound'
description: '`not_found`.'