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
+5
View File
@@ -53,6 +53,11 @@ include_once 'php/controller/showArticle-controller.php';
Bei der Validierung deiner Daten ist ein Fehler aufgetreten. Bitte versuche es erneut.
</p>
<?php endif; ?>
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "unauthorized_access"): ?>
<p class="alert-message is-error">
Sie sind nicht berechtigt, diesen Beitrag zu bearbeiten.
</p>
<?php endif; ?>
<?php
unset($_SESSION["message"]);
?>
+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");
}
}