3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Controllers\Sql
;
7 use PhpMyAdmin\CheckUserPrivileges
;
8 use PhpMyAdmin\Controllers\AbstractController
;
9 use PhpMyAdmin\ResponseRenderer
;
11 use PhpMyAdmin\Template
;
14 use function htmlentities
;
18 final class EnumValuesController
extends AbstractController
23 /** @var CheckUserPrivileges */
24 private $checkUserPrivileges;
26 public function __construct(
27 ResponseRenderer
$response,
30 CheckUserPrivileges
$checkUserPrivileges
32 parent
::__construct($response, $template);
34 $this->checkUserPrivileges
= $checkUserPrivileges;
38 * Get possible values for enum fields during grid edit.
40 public function __invoke(): void
42 $this->checkUserPrivileges
->getPrivileges();
44 $column = $_POST['column'];
45 $curr_value = $_POST['curr_value'];
46 $values = $this->sql
->getValuesForColumn($GLOBALS['db'], $GLOBALS['table'], $column);
48 if ($values === null) {
49 $this->response
->addJSON('message', __('Error in processing request'));
50 $this->response
->setRequestStatus(false);
55 // Converts characters of $curr_value to HTML entities.
56 $convertedCurrentValue = htmlentities($curr_value, ENT_COMPAT
, 'UTF-8');
58 $dropdown = $this->template
->render('sql/enum_column_dropdown', [
60 'selected_values' => [$convertedCurrentValue],
63 $this->response
->addJSON('dropdown', $dropdown);