updateArticle-Exceptions

This commit is contained in:
2026-06-02 15:31:02 +02:00
parent c6b55030cf
commit fb54ba2462
4 changed files with 12 additions and 6 deletions
+1 -1
View File
@@ -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();
}
+2
View File
@@ -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
* /
+4 -5
View File
@@ -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");
}
}