DeleteController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. declare(strict_types=1);
  3. namespace PhpMyAdmin\Controllers\Export\Template;
  4. use PhpMyAdmin\ConfigStorage\Relation;
  5. use PhpMyAdmin\Controllers\AbstractController;
  6. use PhpMyAdmin\Export\TemplateModel;
  7. use PhpMyAdmin\Http\ServerRequest;
  8. use PhpMyAdmin\ResponseRenderer;
  9. use PhpMyAdmin\Template;
  10. final class DeleteController extends AbstractController
  11. {
  12. /** @var TemplateModel */
  13. private $model;
  14. /** @var Relation */
  15. private $relation;
  16. public function __construct(
  17. ResponseRenderer $response,
  18. Template $template,
  19. TemplateModel $model,
  20. Relation $relation
  21. ) {
  22. parent::__construct($response, $template);
  23. $this->model = $model;
  24. $this->relation = $relation;
  25. }
  26. public function __invoke(ServerRequest $request): void
  27. {
  28. global $cfg;
  29. $templateId = (int) $request->getParsedBodyParam('templateId');
  30. $exportTemplatesFeature = $this->relation->getRelationParameters()->exportTemplatesFeature;
  31. if ($exportTemplatesFeature === null) {
  32. return;
  33. }
  34. $result = $this->model->delete(
  35. $exportTemplatesFeature->database,
  36. $exportTemplatesFeature->exportTemplates,
  37. $cfg['Server']['user'],
  38. $templateId
  39. );
  40. if ($result !== '') {
  41. $this->response->setRequestStatus(false);
  42. $this->response->addJSON('message', $result);
  43. return;
  44. }
  45. $this->response->setRequestStatus(true);
  46. }
  47. }