From 4e974c5e647b8a56652af87581d022d66e340772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Nowak?= Date: Mon, 29 Jun 2026 11:34:05 +0200 Subject: [PATCH 1/3] Added ContentTypeOwnedBySomeoneElseException for content type draft owned by another user --- ...ContentTypeOwnedBySomeoneElseException.php | 23 +++++++++++++++++++ src/lib/Repository/ContentTypeService.php | 5 ++-- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php diff --git a/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php b/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php new file mode 100644 index 0000000000..cf8fd58d6f --- /dev/null +++ b/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php @@ -0,0 +1,23 @@ +modifierId != $this->permissionResolver->getCurrentUserReference()->getUserId()) { - throw new NotFoundException('The content type is owned by someone else', $contentTypeId); + throw new ContentTypeOwnedBySomeoneElseException($contentTypeId); } return $this->contentTypeDomainMapper->buildContentTypeDraftDomainObject($spiContentType); From 951f1ca5d93467d22d90a63e2317b28f89206a73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Nowak?= Date: Mon, 29 Jun 2026 11:38:22 +0200 Subject: [PATCH 2/3] Removed not needed exception description --- .../Exception/ContentTypeOwnedBySomeoneElseException.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php b/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php index cf8fd58d6f..941213087e 100644 --- a/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php +++ b/src/lib/Repository/ContentType/Exception/ContentTypeOwnedBySomeoneElseException.php @@ -11,9 +11,6 @@ use Ibexa\Core\Base\Exceptions\NotFoundException; use Throwable; -/** - * Exception thrown when a Content Type draft is owned by a different user than the current one. - */ final class ContentTypeOwnedBySomeoneElseException extends NotFoundException { public function __construct(int $contentTypeId, ?Throwable $previous = null) From f330a79c3cfba182e5228f6db8cfc30cb0afa1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Nowak?= Date: Tue, 30 Jun 2026 10:53:02 +0200 Subject: [PATCH 3/3] Added exception contract --- .../ContentTypeOwnedBySomeoneElseException.php | 13 +++++++++++++ .../ContentTypeOwnedBySomeoneElseException.php | 6 +++--- src/lib/Repository/ContentTypeService.php | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 src/contracts/Repository/Exceptions/ContentTypeOwnedBySomeoneElseException.php rename src/lib/{Repository/ContentType/Exception => Base/Exceptions}/ContentTypeOwnedBySomeoneElseException.php (67%) diff --git a/src/contracts/Repository/Exceptions/ContentTypeOwnedBySomeoneElseException.php b/src/contracts/Repository/Exceptions/ContentTypeOwnedBySomeoneElseException.php new file mode 100644 index 0000000000..84e4abeae7 --- /dev/null +++ b/src/contracts/Repository/Exceptions/ContentTypeOwnedBySomeoneElseException.php @@ -0,0 +1,13 @@ +