diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 54c7b03..24788d0 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -17,6 +17,7 @@ namespace Modules\Exchange\Controller; use Modules\Exchange\Models\ExchangeLogMapper; use Modules\Exchange\Models\InterfaceManagerMapper; use phpOMS\Contract\RenderableInterface; +use phpOMS\Message\Http\RequestStatusCode; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Views\View; @@ -168,8 +169,6 @@ final class BackendController extends Controller public function viewExchangeExport(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/Exchange/Theme/Backend/exchange-export'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007001001, $request, $response); /** @var \Modules\Exchange\Models\InterfaceManager $interface */ $interface = InterfaceManagerMapper::get() @@ -179,6 +178,16 @@ final class BackendController extends Controller ->where('id', (int) $request->getData('id')) ->execute(); + if ($interface->id === 0) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } + + $view->setTemplate('/Modules/Exchange/Theme/Backend/exchange-export'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007001001, $request, $response); + $view->data['interface'] = $interface; $view->data['db'] = $this->app->dbPool->get(); @@ -206,8 +215,6 @@ final class BackendController extends Controller public function viewExchangeImport(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); - $view->setTemplate('/Modules/Exchange/Theme/Backend/exchange-import'); - $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007001001, $request, $response); /** @var \Modules\Exchange\Models\InterfaceManager $interface */ $interface = InterfaceManagerMapper::get() @@ -217,6 +224,16 @@ final class BackendController extends Controller ->where('id', (int) $request->getData('id')) ->execute(); + if ($interface->id === 0) { + $response->header->status = RequestStatusCode::R_404; + $view->setTemplate('/Web/Backend/Error/404'); + + return $view; + } + + $view->setTemplate('/Modules/Exchange/Theme/Backend/exchange-import'); + $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007001001, $request, $response); + $view->data['interface'] = $interface; $view->data['db'] = $this->app->dbPool->get(); diff --git a/Models/ExchangeLog.php b/Models/ExchangeLog.php index cc12a48..abd6639 100755 --- a/Models/ExchangeLog.php +++ b/Models/ExchangeLog.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\Exchange\Models; use Modules\Admin\Models\Account; +use Modules\Admin\Models\NullAccount; /** * Exchange class. @@ -90,7 +91,7 @@ class ExchangeLog implements \JsonSerializable * @var int|Account * @since 1.0.0 */ - public int | Account $createdBy = 0; + public Account $createdBy; /** * Constructor. @@ -100,6 +101,7 @@ class ExchangeLog implements \JsonSerializable public function __construct() { $this->createdAt = new \DateTimeImmutable('now'); + $this->createdBy = new NullAccount(); } /**