From 1da72529351fd723045c9443450379df98d24c6f Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 2 Dec 2018 16:54:46 +0100 Subject: [PATCH] Add audit tests --- Controller/ApiController.php | 24 +++++++++++++++++++++++- Models/Badge.php | 10 +++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 901c182..ea98d77 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -16,6 +16,7 @@ namespace Modules\News\Controller; use phpOMS\Model\Message\FormValidation; +use Modules\News\Models\Badge; use Modules\News\Models\BadgeMapper; use Modules\News\Models\NewsArticle; use Modules\News\Models\NewsArticleMapper; @@ -151,7 +152,14 @@ final class ApiController extends Controller $newsArticle = $this->createNewsArticleFromRequest($request); + $this->app->eventManager->trigger('PRE:Module:News-article-create', '', $newsArticle); NewsArticleMapper::create($newsArticle); + $this->app->eventManager->trigger('POST:Module:News-article-create', '', [ + $request->getHeader()->getAccount(), + null, + $newsArticle, + ]); + $response->set($request->getUri()->__toString(), [ 'status' => NotificationLevel::OK, 'title' => 'News', @@ -252,7 +260,14 @@ final class ApiController extends Controller $badge = $this->createBadgeFromRequest($request); + $this->app->eventManager->trigger('PRE:Module:News-badge-create', '', $badge); BadgeMapper::create($badge); + $this->app->eventManager->trigger('POST:Module:News-badge-create', '', [ + $request->getHeader()->getAccount(), + null, + $badge, + ]); + $response->set('badge', $badge->jsonSerialize()); } @@ -340,8 +355,15 @@ final class ApiController extends Controller */ public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - $news = NewsArticleMapper::get((int) $request->getData('id')); + $news = NewsArticleMapper::get((int) $request->getData('id')); + + $this->app->eventManager->trigger('PRE:Module:News-article-delete', '', $news); $status = NewsArticleMapper::delete($news); + $this->app->eventManager->trigger('POST:Module:News-article-delete', '', [ + $request->getHeader()->getAccount(), + $news, + null, + ]); $response->set($request->getUri()->__toString(), [ 'status' => NotificationLevel::OK, diff --git a/Models/Badge.php b/Models/Badge.php index ec78320..fa68720 100644 --- a/Models/Badge.php +++ b/Models/Badge.php @@ -22,7 +22,7 @@ namespace Modules\News\Models; * @link http://website.orange-management.de * @since 1.0.0 */ -class Badge +class Badge implements \JsonSerializable { private $id = 0; @@ -47,4 +47,12 @@ class Badge { return $this->name; } + + public function jsonSerialize() + { + return [ + 'id' => $this->id, + 'name' => $this->name, + ]; + } }