From fb54ba24623581f4a0c70b7bb590fe1b528ab64f Mon Sep 17 00:00:00 2001 From: NOrtmann1 Date: Tue, 2 Jun 2026 15:31:02 +0200 Subject: [PATCH] updateArticle-Exceptions --- content/updateArticle.php | 5 +++++ php/controller/updateArticle-controller.php | 2 +- php/model/ArticleManagerDAO.php | 2 ++ php/model/LocalArticleManager.php | 9 ++++----- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/content/updateArticle.php b/content/updateArticle.php index 90e80de..9c66ec8 100644 --- a/content/updateArticle.php +++ b/content/updateArticle.php @@ -53,6 +53,11 @@ include_once 'php/controller/showArticle-controller.php'; Bei der Validierung deiner Daten ist ein Fehler aufgetreten. Bitte versuche es erneut.

+ +

+ Sie sind nicht berechtigt, diesen Beitrag zu bearbeiten. +

+ diff --git a/php/controller/updateArticle-controller.php b/php/controller/updateArticle-controller.php index 34493ac..7546817 100644 --- a/php/controller/updateArticle-controller.php +++ b/php/controller/updateArticle-controller.php @@ -82,7 +82,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { $article->setTags($cleanedTags); $articleManager->updateArticle($id ,$article, $author); } catch (Exception $e){ - $_SESSION["message"] = "internal_error"; + $_SESSION["message"] = $e->getMessage(); header("location: ../../index.php?pfad=updateArticle"); exit(); } diff --git a/php/model/ArticleManagerDAO.php b/php/model/ArticleManagerDAO.php index 46c72a3..72a4a64 100644 --- a/php/model/ArticleManagerDAO.php +++ b/php/model/ArticleManagerDAO.php @@ -3,6 +3,7 @@ require_once "Article.php"; class NotFoundException extends Exception {} class UnauthorizedAccessException extends Exception {} +class InternalServerErrorException extends Exception {} /** * Die Klasse beinhaltet alle Methoden für die Operation mit den Artikel-Daten. @@ -33,6 +34,7 @@ interface ArticleManagerDAO * @param $author * @return void * + * @throws InternalServerErrorException * @throws NotFoundException * @throws UnauthorizedAccessException * / diff --git a/php/model/LocalArticleManager.php b/php/model/LocalArticleManager.php index c9de471..c1cbf39 100644 --- a/php/model/LocalArticleManager.php +++ b/php/model/LocalArticleManager.php @@ -61,16 +61,16 @@ class LocalArticleManager implements ArticleManagerDAO { $this->saveArticle($articles); } - + public function updateArticle($id, $article, $author) { if (empty($article)) { - throw new InvalidArgumentException("Der Beitrag darf nicht leer sein."); + throw new InternalServerErrorException("internal_error"); } // Berechtigungsprüfung: if ($article->getAuthor() !== $author) { - throw new UnauthorizedAccessException("Sie sind nicht berechtigt, diesen Artikel zu bearbeiten."); + throw new UnauthorizedAccessException("unauthorized_access"); } // Beitrag aktualisieren: @@ -97,8 +97,7 @@ class LocalArticleManager implements ArticleManagerDAO { if ($updated) { $this->saveArticle($articles); } else { - throw new NotFoundException("Ein Artikel mit der ID". $id . " wurde nicht gefunden."); - + throw new NotFoundException("missing_id"); } }