fix: Do not show PUT in Allow header for existing containers

This commit is contained in:
Joachim Van Herwegen
2023-07-18 10:33:38 +02:00
parent a47cc8a5ee
commit 6f6784a288
2 changed files with 19 additions and 11 deletions

View File

@@ -50,10 +50,14 @@ export class AllowAcceptHeaderWriter extends MetadataWriter {
// POST is only allowed on containers.
// Metadata only has the resource URI in case it has resource metadata.
if (this.isPostAllowed(metadata)) {
if (!this.isPostAllowed(metadata)) {
allowedMethods.delete('POST');
}
if (!this.isPutAllowed(metadata)) {
allowedMethods.delete('PUT');
}
if (!this.isDeleteAllowed(metadata)) {
allowedMethods.delete('DELETE');
}
@@ -76,7 +80,14 @@ export class AllowAcceptHeaderWriter extends MetadataWriter {
* otherwise it is just a blank node.
*/
private isPostAllowed(metadata: RepresentationMetadata): boolean {
return metadata.has(RDF.terms.type, LDP.terms.Resource) && !isContainerPath(metadata.identifier.value);
return !metadata.has(RDF.terms.type, LDP.terms.Resource) || isContainerPath(metadata.identifier.value);
}
/**
* PUT is not allowed on existing containers.
*/
private isPutAllowed(metadata: RepresentationMetadata): boolean {
return !metadata.has(RDF.terms.type, LDP.terms.Resource) || !isContainerPath(metadata.identifier.value);
}
/**