From 3462caa2b6d141a5d56f756d35f5df280610f0bf Mon Sep 17 00:00:00 2001 From: Michiel de Jong Date: Wed, 29 Jun 2022 14:23:35 +0200 Subject: [PATCH] Require Write on c/r for PATCH-to-create, fix https://github.com/solid-contrib/test-suite/issues/146 --- src/authorization/permissions/N3PatchModesExtractor.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/authorization/permissions/N3PatchModesExtractor.ts b/src/authorization/permissions/N3PatchModesExtractor.ts index 659346dc1f..b446bbea22 100644 --- a/src/authorization/permissions/N3PatchModesExtractor.ts +++ b/src/authorization/permissions/N3PatchModesExtractor.ts @@ -45,7 +45,11 @@ export class N3PatchModesExtractor extends ModesExtractor { // When ?insertions is non-empty, servers MUST (also) treat the request as an Append operation. if (inserts.length > 0) { accessModes.add(AccessMode.append); + // require Write on c/r and Append-or-Write on c/ + // for PATCH-to-create c/r + // ref https://github.com/solid-contrib/test-suite/issues/146 if (!await this.resourceSet.hasResource(target)) { + accessModes.add(AccessMode.write); accessModes.add(AccessMode.create); } }