From 7ae0fad3563e99bcc51e8e17bbfcd357f4f8fa7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 28 Jan 2024 19:50:59 +0100 Subject: [PATCH] Allow to create attachments and parameters via PATCH operations on their owning elemens as direct POST operations are not possible yet This partly fixes issue #502 --- src/Entity/Attachments/Attachment.php | 2 +- src/Entity/Attachments/AttachmentType.php | 2 +- src/Entity/Parts/Category.php | 2 +- src/Entity/Parts/Footprint.php | 2 +- src/Entity/Parts/Manufacturer.php | 2 +- src/Entity/Parts/MeasurementUnit.php | 2 +- src/Entity/Parts/Part.php | 2 +- src/Entity/Parts/StorageLocation.php | 2 +- src/Entity/Parts/Supplier.php | 2 +- src/Entity/PriceInformations/Currency.php | 2 +- src/Entity/ProjectSystem/Project.php | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Entity/Attachments/Attachment.php b/src/Entity/Attachments/Attachment.php index 9e367450..4e02e5db 100644 --- a/src/Entity/Attachments/Attachment.php +++ b/src/Entity/Attachments/Attachment.php @@ -153,7 +153,7 @@ abstract class Attachment extends AbstractNamedDBElement #[ORM\ManyToOne(targetEntity: AttachmentType::class, inversedBy: 'attachments_with_type')] #[ORM\JoinColumn(name: 'type_id', nullable: false)] #[Selectable()] - #[Groups(['attachment:read', 'attachment_write'])] + #[Groups(['attachment:read', 'attachment:write'])] protected ?AttachmentType $attachment_type = null; #[Groups(['attachment:read'])] diff --git a/src/Entity/Attachments/AttachmentType.php b/src/Entity/Attachments/AttachmentType.php index 241f3d18..d8f00e37 100644 --- a/src/Entity/Attachments/AttachmentType.php +++ b/src/Entity/Attachments/AttachmentType.php @@ -66,7 +66,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['attachment_type:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['attachment_type:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['attachment_type:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/attachment_types/{id}/children.{_format}', diff --git a/src/Entity/Parts/Category.php b/src/Entity/Parts/Category.php index e5e1f907..c54a0a79 100644 --- a/src/Entity/Parts/Category.php +++ b/src/Entity/Parts/Category.php @@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['category:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['category:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['category:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/categories/{id}/children.{_format}', diff --git a/src/Entity/Parts/Footprint.php b/src/Entity/Parts/Footprint.php index d02d010d..7a871bea 100644 --- a/src/Entity/Parts/Footprint.php +++ b/src/Entity/Parts/Footprint.php @@ -72,7 +72,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['footprint:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['footprint:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['footprint:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/footprints/{id}/children.{_format}', diff --git a/src/Entity/Parts/Manufacturer.php b/src/Entity/Parts/Manufacturer.php index 1a5db9ba..3a6b41b4 100644 --- a/src/Entity/Parts/Manufacturer.php +++ b/src/Entity/Parts/Manufacturer.php @@ -67,7 +67,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['manufacturer:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['manufacturer:write', 'company:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['manufacturer:write', 'company:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/manufacturers/{id}/children.{_format}', diff --git a/src/Entity/Parts/MeasurementUnit.php b/src/Entity/Parts/MeasurementUnit.php index 299c230d..a52bc502 100644 --- a/src/Entity/Parts/MeasurementUnit.php +++ b/src/Entity/Parts/MeasurementUnit.php @@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['measurement_unit:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['measurement_unit:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['measurement_unit:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/footprints/{id}/children.{_format}', diff --git a/src/Entity/Parts/Part.php b/src/Entity/Parts/Part.php index e5281ddc..a2e0b534 100644 --- a/src/Entity/Parts/Part.php +++ b/src/Entity/Parts/Part.php @@ -89,7 +89,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['part:read', 'provider_reference:read', 'api:basic:read', 'part_lot:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['part:write', 'api:basic:write', 'eda_info:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['part:write', 'api:basic:write', 'eda_info:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiFilter(PropertyFilter::class)] #[ApiFilter(EntityFilter::class, properties: ["category", "footprint", "manufacturer", "partUnit"])] diff --git a/src/Entity/Parts/StorageLocation.php b/src/Entity/Parts/StorageLocation.php index 564f30ce..ae4dceb6 100644 --- a/src/Entity/Parts/StorageLocation.php +++ b/src/Entity/Parts/StorageLocation.php @@ -67,7 +67,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['location:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['location:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['location:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/storage_locations/{id}/children.{_format}', diff --git a/src/Entity/Parts/Supplier.php b/src/Entity/Parts/Supplier.php index 5103a565..14ffa24c 100644 --- a/src/Entity/Parts/Supplier.php +++ b/src/Entity/Parts/Supplier.php @@ -72,7 +72,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['supplier:read', 'company:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['supplier:write', 'company:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['supplier:write', 'company:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/suppliers/{id}/children.{_format}', diff --git a/src/Entity/PriceInformations/Currency.php b/src/Entity/PriceInformations/Currency.php index 2e95dc09..06ac8460 100644 --- a/src/Entity/PriceInformations/Currency.php +++ b/src/Entity/PriceInformations/Currency.php @@ -71,7 +71,7 @@ use Symfony\Component\Validator\Constraints as Assert; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['currency:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['currency:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['currency:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/currencies/{id}/children.{_format}', diff --git a/src/Entity/ProjectSystem/Project.php b/src/Entity/ProjectSystem/Project.php index b18706d7..fd371a2f 100644 --- a/src/Entity/ProjectSystem/Project.php +++ b/src/Entity/ProjectSystem/Project.php @@ -70,7 +70,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface; new Delete(security: 'is_granted("delete", object)'), ], normalizationContext: ['groups' => ['project:read', 'api:basic:read'], 'openapi_definition_name' => 'Read'], - denormalizationContext: ['groups' => ['project:write', 'api:basic:write'], 'openapi_definition_name' => 'Write'], + denormalizationContext: ['groups' => ['project:write', 'api:basic:write', 'attachment:write', 'parameter:write'], 'openapi_definition_name' => 'Write'], )] #[ApiResource( uriTemplate: '/projects/{id}/children.{_format}',