From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/prefs_forms.php | 112 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 srcs/phpmyadmin/prefs_forms.php (limited to 'srcs/phpmyadmin/prefs_forms.php') diff --git a/srcs/phpmyadmin/prefs_forms.php b/srcs/phpmyadmin/prefs_forms.php new file mode 100644 index 0000000..7ac9261 --- /dev/null +++ b/srcs/phpmyadmin/prefs_forms.php @@ -0,0 +1,112 @@ +get('template'); +$userPreferences = new UserPreferences(); + +$cf = new ConfigFile($GLOBALS['PMA_Config']->base_settings); +$userPreferences->pageInit($cf); + +// handle form processing + +$form_param = isset($_GET['form']) ? $_GET['form'] : null; +$form_class = UserFormList::get($form_param); +if ($form_class === null) { + Core::fatalError(__('Incorrect form specified!')); +} + +/** @var BaseForm $form_display */ +$form_display = new $form_class($cf, 1); + +if (isset($_POST['revert'])) { + // revert erroneous fields to their default values + $form_display->fixErrors(); + // redirect + $url_params = ['form' => $form_param]; + Core::sendHeaderLocation( + './prefs_forms.php' + . Url::getCommonRaw($url_params) + ); + exit; +} + +$error = null; +if ($form_display->process(false) && ! $form_display->hasErrors()) { + // Load 2FA settings + $twoFactor = new TwoFactor($GLOBALS['cfg']['Server']['user']); + // save settings + $result = $userPreferences->save($cf->getConfigArray()); + // save back the 2FA setting only + $twoFactor->save(); + if ($result === true) { + // reload config + $GLOBALS['PMA_Config']->loadUserPreferences(); + $tabHash = isset($_POST['tab_hash']) ? $_POST['tab_hash'] : null; + $hash = ltrim($tabHash, '#'); + $userPreferences->redirect( + 'prefs_forms.php', + ['form' => $form_param], + $hash + ); + exit; + } else { + $error = $result; + } +} + +// display forms +$response = Response::getInstance(); +$header = $response->getHeader(); +$scripts = $header->getScripts(); +$scripts->addFile('config.js'); + +/** @var Relation $relation */ +$relation = $containerBuilder->get('relation'); +echo UserPreferencesHeader::getContent($template, $relation); + +if ($form_display->hasErrors()) { + $formErrors = $form_display->displayErrors(); +} + +echo $template->render('preferences/forms/main', [ + 'error' => $error ? $error->getDisplay() : '', + 'has_errors' => $form_display->hasErrors(), + 'errors' => $formErrors ?? null, + 'form' => $form_display->getDisplay(true, true, true, 'prefs_forms.php?form=' . $form_param, [ + 'server' => $GLOBALS['server'], + ]), +]); + +if ($response->isAjax()) { + $response->addJSON('disableNaviSettings', true); +} else { + define('PMA_DISABLE_NAVI_SETTINGS', true); +} -- cgit