Repository navigation
Allow a delegator to revoke its delegation with a proof that grants no revoke - #443
Conversation
A valid proof that carries no revoke grant for the target was treated as a denial, so a delegator could not revoke a sub-delegation it issued when its own delegation arrived as that proof. A valid proof with no grant now adds no authority and leaves the signer's party authority in force. Invalid and revoked proofs are still refused. Details: TC-721
Cover the share-link shape: a session grant carrying notes/ and kv/get, read-OK before revoke, read-refused after, owner still reads. Add core tests for the Scoped fallthrough when a proof's space does not cover the target, and a status-path test for the Ungranted arm. Details: TC-721
|
APPROVE: see TC-721 (reviewed exact head 1ad7ba6) |
|
APPROVE: see TC-721 (reviewed exact head 49b30f6) |
|
APPROVE: see TC-2132 (reviewed exact head 1197ecb) |
Details: TC-2132
|
APPROVE: see TC-2132 (reviewed exact head 3202ffc) |
Session-signed revocation of a sub-delegation failed when the session delegation was carried as a proof granting no revoke ability.
Change: a valid proof with no grant for the target now yields
ControlProofDecision::Ungranted, which adds no authority and falls back to "revoker == delegator". Invalid, expired and revoked proofs remain Denied.delegation_statusdoes not widen.Tests: unit tests in the revocation module and route tests in
revocation_scope. Three refusal tests, each returning 403: the recipient presents the target itself as its proof; the delegator presents an expired proof (the proofless form still works); the space owner presents a valid grantless proof for a delegation it did not issue. Existing assertions are unchanged.Details: TC-2132