diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 0c9efbc..9e56c19 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -90,7 +90,7 @@ final class ApiController extends Controller { $old = clone NewsArticleMapper::get((int) $request->getData('id')); $new = $this->updateNewsFromRequest($request); - $this->updateModel($request->getHeader()->getAccount(), $old, $new, NewsArticleMapper::class, 'news', $request->getOrigin()); + $this->updateModel($request->header->account, $old, $new, NewsArticleMapper::class, 'news', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully updated', $new); } @@ -105,11 +105,12 @@ final class ApiController extends Controller */ private function updateNewsFromRequest(RequestAbstract $request) : NewsArticle { + /** @var NewsArticle $newsArticle */ $newsArticle = NewsArticleMapper::get((int) $request->getData('id')); $newsArticle->setPublish(new \DateTime((string) ($request->getData('publish') ?? $newsArticle->getPublish()->format('Y-m-d H:i:s')))); - $newsArticle->setTitle((string) ($request->getData('title') ?? $newsArticle->getTitle())); - $newsArticle->setPlain($request->getData('plain') ?? $newsArticle->getPlain()); - $newsArticle->setContent(Markdown::parse((string) ($request->getData('plain') ?? $newsArticle->getPlain()))); + $newsArticle->title = (string) ($request->getData('title') ?? $newsArticle->title); + $newsArticle->plaint = $request->getData('plain') ?? $newsArticle->plain; + $newsArticle->content = Markdown::parse((string) ($request->getData('plain') ?? $newsArticle->plain)); $newsArticle->setLanguage(\strtolower((string) ($request->getData('lang') ?? $newsArticle->getLanguage()))); $newsArticle->setType((int) ($request->getData('type') ?? $newsArticle->getType())); $newsArticle->setStatus((int) ($request->getData('status') ?? $newsArticle->getStatus())); @@ -135,13 +136,13 @@ final class ApiController extends Controller { if (!empty($val = $this->validateNewsCreate($request))) { $response->set('news_create', new FormValidation($val)); - $response->getHeader()->setStatusCode(RequestStatusCode::R_400); + $response->header->status = RequestStatusCode::R_400; return; } $newsArticle = $this->createNewsArticleFromRequest($request); - $this->createModel($request->getHeader()->getAccount(), $newsArticle, NewsArticleMapper::class, 'news', $request->getOrigin()); + $this->createModel($request->header->account, $newsArticle, NewsArticleMapper::class, 'news', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully created', $newsArticle); } @@ -157,11 +158,11 @@ final class ApiController extends Controller private function createNewsArticleFromRequest(RequestAbstract $request) : NewsArticle { $newsArticle = new NewsArticle(); - $newsArticle->setCreatedBy(new NullAccount($request->getHeader()->getAccount())); + $newsArticle->createdBy = new NullAccount($request->header->account); $newsArticle->setPublish(new \DateTime((string) ($request->getData('publish') ?? 'now'))); - $newsArticle->setTitle((string) ($request->getData('title') ?? '')); - $newsArticle->setPlain($request->getData('plain') ?? ''); - $newsArticle->setContent(Markdown::parse((string) ($request->getData('plain') ?? ''))); + $newsArticle->title = (string) ($request->getData('title') ?? ''); + $newsArticle->plain = $request->getData('plain') ?? ''; + $newsArticle->content = Markdown::parse((string) ($request->getData('plain') ?? '')); $newsArticle->setLanguage(\strtolower((string) ($request->getData('lang') ?? $request->getLanguage()))); $newsArticle->setType((int) ($request->getData('type') ?? NewsType::ARTICLE)); $newsArticle->setStatus((int) ($request->getData('status') ?? NewsStatus::VISIBLE)); @@ -185,7 +186,7 @@ final class ApiController extends Controller $internalResponse = new HttpResponse(); $this->app->moduleManager->get('Tag')->apiTagCreate($request, $internalResponse, null); - $newsArticle->addTag($internalResponse->get($request->getUri()->__toString())['response']); + $newsArticle->addTag($internalResponse->get($request->uri->__toString())['response']); } else { $newsArticle->addTag(new NullTag((int) $tag['id'])); } @@ -230,7 +231,7 @@ final class ApiController extends Controller public function apiNewsDelete(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { $news = NewsArticleMapper::get((int) $request->getData('id')); - $this->deleteModel($request->getHeader()->getAccount(), $news, NewsArticleMapper::class, 'news', $request->getOrigin()); + $this->deleteModel($request->header->account, $news, NewsArticleMapper::class, 'news', $request->getOrigin()); $this->fillJsonResponse($request, $response, NotificationLevel::OK, 'News', 'News successfully deleted', $news); } } diff --git a/Controller/BackendController.php b/Controller/BackendController.php index cdf19bf..a0e08e1 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -116,14 +116,14 @@ final class BackendController extends Controller implements DashboardElementInte $view = new View($this->app->l11nManager, $request, $response); $article = NewsArticleMapper::get((int) $request->getData('id')); - $accountId = $request->getHeader()->getAccount(); + $accountId = $request->header->account; - if ($article->getCreatedBy()->getId() !== $accountId + if ($article->createdBy->getId() !== $accountId && !$this->app->accountManager->get($accountId)->hasPermission( PermissionType::READ, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::NEWS, $article->getId()) ) { $view->setTemplate('/Web/Backend/Error/403_inline'); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); + $response->header->status = RequestStatusCode::R_403; return $view; } diff --git a/Models/NewsArticle.php b/Models/NewsArticle.php index c56d3e3..001052a 100755 --- a/Models/NewsArticle.php +++ b/Models/NewsArticle.php @@ -45,7 +45,7 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface * @var string * @since 1.0.0 */ - private string $title = ''; + public string $title = ''; /** * Content. @@ -53,7 +53,7 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface * @var string * @since 1.0.0 */ - private string $content = ''; + public string $content = ''; /** * Unparsed. @@ -61,7 +61,7 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface * @var string * @since 1.0.0 */ - private string $plain = ''; + public string $plain = ''; /** * News type. @@ -93,7 +93,7 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface * @var \DateTimeImmutable * @since 1.0.0 */ - private \DateTimeImmutable $createdAt; + public \DateTimeImmutable $createdAt; /** * Creator. @@ -101,7 +101,7 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface * @var Account * @since 1.0.0 */ - private Account $createdBy; + public Account $createdBy; /** * Publish. @@ -147,58 +147,6 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface $this->publish = new \DateTime('now'); } - /** - * Get content - * - * @return string - * - * @since 1.0.0 - */ - public function getContent() : string - { - return $this->content; - } - - /** - * Set content - * - * @param string $content News article content - * - * @return void - * - * @since 1.0.0 - */ - public function setContent(string $content) : void - { - $this->content = $content; - } - - /** - * Set plain content - * - * @param string $plain Plain/raw content - * - * @return void - * - * @since 1.0.0 - */ - public function setPlain(string $plain) : void - { - $this->plain = $plain; - } - - /** - * Get plain/raw content - * - * @return string - * - * @since 1.0.0 - */ - public function getPlain() : string - { - return $this->plain; - } - /** * Set comment list * @@ -225,18 +173,6 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface return $this->comments; } - /** - * Get date of creation - * - * @return \DateTimeImmutable - * - * @since 1.0.0 - */ - public function getCreatedAt() : \DateTimeImmutable - { - return $this->createdAt; - } - /** * Get id * @@ -305,56 +241,6 @@ class NewsArticle implements \JsonSerializable, ArrayableInterface $this->publish = $publish; } - /** - * Get created by - * - * @return Account - * - * @since 1.0.0 - */ - public function getCreatedBy() : Account - { - return $this->createdBy; - } - - /** - * Set created by - * - * @param Account $account Created by - * - * @return void - * - * @since 1.0.0 - */ - public function setCreatedBy(Account $account) : void - { - $this->createdBy = $account; - } - - /** - * @return string - * - * @since 1.0.0 - */ - public function getTitle() : string - { - return $this->title; - } - - /** - * Set news article title - * - * @param string $title News article title - * - * @return void - * - * @since 1.0.0 - */ - public function setTitle(string $title) : void - { - $this->title = $title; - } - /** * Get news article type * diff --git a/Theme/Backend/dashboard-news.tpl.php b/Theme/Backend/dashboard-news.tpl.php index 8b4e656..3ce50fc 100755 --- a/Theme/Backend/dashboard-news.tpl.php +++ b/Theme/Backend/dashboard-news.tpl.php @@ -50,7 +50,7 @@ $newsList = $this->getData('news') ?? [];