deleteArticle -> Autorisierungsprüfung

This commit is contained in:
2026-06-05 10:31:09 +02:00
parent 793d9632b2
commit 4cd0383322
2 changed files with 27 additions and 18 deletions
+16 -6
View File
@@ -66,7 +66,7 @@ class LocalArticleManager implements ArticleManagerDAO {
public function updateArticle($id, $article, $author)
{
if (empty($article)) {
throw new InternalServerErrorException("internal_error");
throw new NotFoundException("not_found_article");
}
// Berechtigungsprüfung:
@@ -102,8 +102,18 @@ class LocalArticleManager implements ArticleManagerDAO {
}
}
public function deleteArticle($id)
public function deleteArticle($id, $author)
{
$article = getArticle($id);
if (empty($article)) {
throw new NotFoundException("not_found_article");
}
// Berechtigungsprüfung:
if ($article->getAuthor() !== $author) {
throw new UnauthorizedAccessException("unauthorized_access");
}
$articles = $this->getAllArticles();
$articleFound = false;
@@ -168,7 +178,7 @@ class LocalArticleManager implements ArticleManagerDAO {
}
public function search(string $keyword): array
public function search(string $keyword): array
{
$articles = $this->getAllArticles();
$filteredArticles = [];
@@ -183,9 +193,9 @@ class LocalArticleManager implements ArticleManagerDAO {
$title = isset($article['title']) ? strtolower((string)$article['title']) : '';
$content = isset($article['content']) ? strtolower((string)$article['content']) : '';
if (($cleanKeyword !== '' && strpos($title, $cleanKeyword) !== false) ||
if (($cleanKeyword !== '' && strpos($title, $cleanKeyword) !== false) ||
($cleanKeyword !== '' && strpos($content, $cleanKeyword) !== false)) {
$filteredArticles[] = new Article(
intval($article['id'] ?? 0),
$article['title'] ?? '',
@@ -198,7 +208,7 @@ class LocalArticleManager implements ArticleManagerDAO {
}
}
return $filteredArticles;
return $filteredArticles;
}
public function getArticlesByCategory($category)