12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?php
- declare(strict_types=1);
- namespace PhpMyAdmin\Controllers\Server\Privileges;
- use PhpMyAdmin\Controllers\AbstractController;
- use PhpMyAdmin\Http\ServerRequest;
- use PhpMyAdmin\Message;
- use PhpMyAdmin\ResponseRenderer;
- use PhpMyAdmin\Server\Privileges\AccountLocking;
- use PhpMyAdmin\Template;
- use Throwable;
- use function __;
- final class AccountUnlockController extends AbstractController
- {
- /** @var AccountLocking */
- private $model;
- public function __construct(ResponseRenderer $response, Template $template, AccountLocking $accountLocking)
- {
- parent::__construct($response, $template);
- $this->model = $accountLocking;
- }
- public function __invoke(ServerRequest $request): void
- {
- $this->response->setAjax(true);
- /** @var string $userName */
- $userName = $request->getParsedBodyParam('username');
- /** @var string $hostName */
- $hostName = $request->getParsedBodyParam('hostname');
- try {
- $this->model->unlock($userName, $hostName);
- } catch (Throwable $exception) {
- $this->response->setHttpResponseCode(400);
- $this->response->setRequestStatus(false);
- $this->response->addJSON(['message' => Message::error($exception->getMessage())]);
- return;
- }
- $message = Message::success(__('The account %s@%s has been successfully unlocked.'));
- $message->addParam($userName);
- $message->addParam($hostName);
- $this->response->addJSON(['message' => $message]);
- }
- }
|