diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/libraries/classes/Config/Forms | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Config/Forms')
27 files changed, 1432 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php new file mode 100644 index 0000000..2049070 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseForm.php @@ -0,0 +1,89 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Base class for preferences. + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms; + +use PhpMyAdmin\Config\ConfigFile; +use PhpMyAdmin\Config\FormDisplay; + +/** + * Base form for user preferences + * + * @package PhpMyAdmin + */ +abstract class BaseForm extends FormDisplay +{ + /** + * Constructor + * + * @param ConfigFile $cf Config file instance + * @param int|null $serverId 0 if new server, validation; >= 1 if editing a server + */ + public function __construct(ConfigFile $cf, $serverId = null) + { + parent::__construct($cf); + foreach (static::getForms() as $formName => $form) { + $this->registerForm($formName, $form, $serverId); + } + } + + /** + * List of available forms, each form is described as an array of fields to display. + * Fields MUST have their counterparts in the $cfg array. + * + * To define form field, use the notation below: + * $forms['Form group']['Form name'] = array('Option/path'); + * + * You can assign default values set by special button ("set value: ..."), eg.: + * 'Servers/1/pmadb' => 'phpmyadmin' + * + * To group options, use: + * ':group:' . __('group name') // just define a group + * or + * 'option' => ':group' // group starting from this option + * End group blocks with: + * ':group:end' + * + * @todo This should be abstract, but that does not work in PHP 5 + * + * @return array + */ + public static function getForms() + { + return []; + } + + /** + * Returns list of fields used in the form. + * + * @return string[] + */ + public static function getFields() + { + $names = []; + foreach (static::getForms() as $form) { + foreach ($form as $k => $v) { + $names[] = is_int($k) ? $v : $k; + } + } + return $names; + } + + /** + * Returns name of the form + * + * @todo This should be abstract, but that does not work in PHP 5 + * + * @return string + */ + public static function getName() + { + return ''; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php new file mode 100644 index 0000000..f4a5d32 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/BaseFormList.php @@ -0,0 +1,150 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms; + +use PhpMyAdmin\Config\ConfigFile; + +/** + * Class BaseFormList + * @package PhpMyAdmin\Config\Forms + */ +class BaseFormList +{ + /** + * List of all forms + */ + protected static $all = []; + + /** + * @var string + */ + protected static $ns = 'PhpMyAdmin\\Config\\Forms\\'; + + /** + * @var array + */ + private $_forms; + + /** + * @return array + */ + public static function getAll() + { + return static::$all; + } + + /** + * @param string $name Name + * @return bool + */ + public static function isValid($name) + { + return in_array($name, static::$all); + } + + /** + * @param string $name Name + * @return null|string + */ + public static function get($name) + { + if (static::isValid($name)) { + return static::$ns . $name . 'Form'; + } + return null; + } + + /** + * Constructor + * + * @param ConfigFile $cf Config file instance + */ + public function __construct(ConfigFile $cf) + { + $this->_forms = []; + foreach (static::$all as $form) { + $class = static::get($form); + $this->_forms[] = new $class($cf); + } + } + + /** + * Processes forms, returns true on successful save + * + * @param bool $allowPartialSave allows for partial form saving + * on failed validation + * @param bool $checkFormSubmit whether check for $_POST['submit_save'] + * + * @return boolean whether processing was successful + */ + public function process($allowPartialSave = true, $checkFormSubmit = true) + { + $ret = true; + foreach ($this->_forms as $form) { + $ret = $ret && $form->process($allowPartialSave, $checkFormSubmit); + } + return $ret; + } + + /** + * Displays errors + * + * @return string HTML for errors + */ + public function displayErrors() + { + $ret = ''; + foreach ($this->_forms as $form) { + $ret .= $form->displayErrors(); + } + return $ret; + } + + /** + * Reverts erroneous fields to their default values + * + * @return void + */ + public function fixErrors() + { + foreach ($this->_forms as $form) { + $form->fixErrors(); + } + } + + /** + * Tells whether form validation failed + * + * @return boolean + */ + public function hasErrors() + { + $ret = false; + foreach ($this->_forms as $form) { + $ret = $ret || $form->hasErrors(); + } + return $ret; + } + + /** + * Returns list of fields used in the form. + * + * @return string[] + */ + public static function getFields() + { + $names = []; + foreach (static::$all as $form) { + $class = static::get($form); + $names = array_merge($names, $class::getFields()); + } + return $names; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php new file mode 100644 index 0000000..eee578a --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/BrowseForm.php @@ -0,0 +1,30 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +use PhpMyAdmin\Config\Forms\BaseForm; +use PhpMyAdmin\Config\Forms\User\MainForm; + +/** + * Class BrowseForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class BrowseForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Browse' => MainForm::getForms()['Browse'], + ]; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php new file mode 100644 index 0000000..4f9a8e4 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/DbStructureForm.php @@ -0,0 +1,30 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +use PhpMyAdmin\Config\Forms\BaseForm; +use PhpMyAdmin\Config\Forms\User\MainForm; + +/** + * Class DbStructureForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class DbStructureForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'DbStructure' => MainForm::getForms()['DbStructure'], + ]; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php new file mode 100644 index 0000000..ad2fd46 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/EditForm.php @@ -0,0 +1,32 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +use PhpMyAdmin\Config\Forms\BaseForm; +use PhpMyAdmin\Config\Forms\User\FeaturesForm; +use PhpMyAdmin\Config\Forms\User\MainForm; + +/** + * Class EditForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class EditForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Edit' => MainForm::getForms()['Edit'], + 'Text_fields' => FeaturesForm::getForms()['Text_fields'], + ]; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php new file mode 100644 index 0000000..584b2fd --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ExportForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +/** + * Class ExportForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class ExportForm extends \PhpMyAdmin\Config\Forms\User\ExportForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php new file mode 100644 index 0000000..78e429a --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/ImportForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +/** + * Class ImportForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class ImportForm extends \PhpMyAdmin\Config\Forms\User\ImportForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php new file mode 100644 index 0000000..02350eb --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/NaviForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +/** + * Class NaviForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class NaviForm extends \PhpMyAdmin\Config\Forms\User\NaviForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php new file mode 100644 index 0000000..f4cae3d --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/PageFormList.php @@ -0,0 +1,37 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Page preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +use PhpMyAdmin\Config\Forms\BaseFormList; + +/** + * Class PageFormList + * @package PhpMyAdmin\Config\Forms\Page + */ +class PageFormList extends BaseFormList +{ + /** + * @var array + */ + protected static $all = [ + 'Browse', + 'DbStructure', + 'Edit', + 'Export', + 'Import', + 'Navi', + 'Sql', + 'TableStructure', + ]; + /** + * @var string + */ + protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\Page\\'; +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php new file mode 100644 index 0000000..4ed85ff --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/SqlForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +/** + * Class SqlForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class SqlForm extends \PhpMyAdmin\Config\Forms\User\SqlForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php new file mode 100644 index 0000000..05af064 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Page/TableStructureForm.php @@ -0,0 +1,30 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Page; + +use PhpMyAdmin\Config\Forms\BaseForm; +use PhpMyAdmin\Config\Forms\User\MainForm; + +/** + * Class TableStructureForm + * @package PhpMyAdmin\Config\Forms\Page + */ +class TableStructureForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'TableStructure' => MainForm::getForms()['TableStructure'], + ]; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php new file mode 100644 index 0000000..6fd4515 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ConfigForm.php @@ -0,0 +1,32 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class ConfigForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class ConfigForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Config' => [ + 'DefaultLang', + 'ServerDefault', + ], + ]; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php new file mode 100644 index 0000000..adf7ce4 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ExportForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class ExportForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class ExportForm extends \PhpMyAdmin\Config\Forms\User\ExportForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php new file mode 100644 index 0000000..54f6cf2 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/FeaturesForm.php @@ -0,0 +1,77 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class FeaturesForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class FeaturesForm extends \PhpMyAdmin\Config\Forms\User\FeaturesForm +{ + /** + * @return array + */ + public static function getForms() + { + // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified + $result = parent::getForms(); + /* Remove only_db/hide_db, we have proper Server form in setup */ + $result['Databases'] = array_diff( + $result['Databases'], + [ + 'Servers/1/only_db', + 'Servers/1/hide_db', + ] + ); + /* Following are not available to user */ + $result['Import_export'] = [ + 'UploadDir', + 'SaveDir', + 'RecodingEngine' => ':group', + 'IconvExtraParams', + ':group:end', + 'ZipDump', + 'GZipDump', + 'BZipDump', + 'CompressOnFly', + ]; + $result['Security'] = [ + 'blowfish_secret', + 'CheckConfigurationPermissions', + 'TrustedProxies', + 'AllowUserDropDatabase', + 'AllowArbitraryServer', + 'ArbitraryServerRegexp', + 'LoginCookieRecall', + 'LoginCookieStore', + 'LoginCookieDeleteAll', + 'CaptchaLoginPublicKey', + 'CaptchaLoginPrivateKey', + ]; + $result['Developer'] = [ + 'UserprefsDeveloperTab', + 'DBG/sql', + ]; + $result['Other_core_settings'] = [ + 'OBGzip', + 'PersistentConnections', + 'ExecTimeLimit', + 'MemoryLimit', + 'UseDbSearch', + 'ProxyUrl', + 'ProxyUser', + 'ProxyPass', + 'AllowThirdPartyFraming', + 'ZeroConf', + ]; + return $result; + // phpcs:enable + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php new file mode 100644 index 0000000..06adf35 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ImportForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class ImportForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class ImportForm extends \PhpMyAdmin\Config\Forms\User\ImportForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php new file mode 100644 index 0000000..ebdc1cd --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/MainForm.php @@ -0,0 +1,29 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class MainForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class MainForm extends \PhpMyAdmin\Config\Forms\User\MainForm +{ + /** + * @return array + */ + public static function getForms() + { + $result = parent::getForms(); + /* Following are not available to user */ + $result['Startup'][] = 'ShowPhpInfo'; + $result['Startup'][] = 'ShowChgPassword'; + return $result; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php new file mode 100644 index 0000000..da1e9ed --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/NaviForm.php @@ -0,0 +1,18 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class NaviForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class NaviForm extends \PhpMyAdmin\Config\Forms\User\NaviForm +{ +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php new file mode 100644 index 0000000..553447f --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/ServersForm.php @@ -0,0 +1,116 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class ServersForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class ServersForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified + return [ + 'Server' => [ + 'Servers' => [ + 1 => [ + 'verbose', + 'host', + 'port', + 'socket', + 'ssl', + 'compress', + ], + ], + ], + 'Server_auth' => [ + 'Servers' => [ + 1 => [ + 'auth_type', + ':group:' . __('Config authentication'), + 'user', + 'password', + ':group:end', + ':group:' . __('HTTP authentication'), + 'auth_http_realm', + ':group:end', + ':group:' . __('Signon authentication'), + 'SignonSession', + 'SignonURL', + 'LogoutURL', + ], + ], + ], + 'Server_config' => [ + 'Servers' => [ + 1 => [ + 'only_db', + 'hide_db', + 'AllowRoot', + 'AllowNoPassword', + 'DisableIS', + 'AllowDeny/order', + 'AllowDeny/rules', + 'SessionTimeZone', + ], + ], + ], + 'Server_pmadb' => [ + 'Servers' => [ + 1 => [ + 'pmadb' => 'phpmyadmin', + 'controlhost', + 'controlport', + 'controluser', + 'controlpass', + 'bookmarktable' => 'pma__bookmark', + 'relation' => 'pma__relation', + 'userconfig' => 'pma__userconfig', + 'users' => 'pma__users', + 'usergroups' => 'pma__usergroups', + 'navigationhiding' => 'pma__navigationhiding', + 'table_info' => 'pma__table_info', + 'column_info' => 'pma__column_info', + 'history' => 'pma__history', + 'recent' => 'pma__recent', + 'favorite' => 'pma__favorite', + 'table_uiprefs' => 'pma__table_uiprefs', + 'tracking' => 'pma__tracking', + 'table_coords' => 'pma__table_coords', + 'pdf_pages' => 'pma__pdf_pages', + 'savedsearches' => 'pma__savedsearches', + 'central_columns' => 'pma__central_columns', + 'designer_settings' => 'pma__designer_settings', + 'export_templates' => 'pma__export_templates', + 'MaxTableUiprefs' => 100, + ], + ], + ], + 'Server_tracking' => [ + 'Servers' => [ + 1 => [ + 'tracking_version_auto_create', + 'tracking_default_statements', + 'tracking_add_drop_view', + 'tracking_add_drop_table', + 'tracking_add_drop_database', + ], + ], + ], + ]; + // phpcs:enable + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php new file mode 100644 index 0000000..91edb27 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SetupFormList.php @@ -0,0 +1,37 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Setup preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +use PhpMyAdmin\Config\Forms\BaseFormList; + +/** + * Class SetupFormList + * @package PhpMyAdmin\Config\Forms\Setup + */ +class SetupFormList extends BaseFormList +{ + /** + * @var array + */ + protected static $all = [ + 'Config', + 'Export', + 'Features', + 'Import', + 'Main', + 'Navi', + 'Servers', + 'Sql', + ]; + /** + * @var string + */ + protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\Setup\\'; +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php new file mode 100644 index 0000000..0cc3a1c --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/Setup/SqlForm.php @@ -0,0 +1,28 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\Setup; + +/** + * Class SqlForm + * @package PhpMyAdmin\Config\Forms\Setup + */ +class SqlForm extends \PhpMyAdmin\Config\Forms\User\SqlForm +{ + /** + * @return array + */ + public static function getForms() + { + $result = parent::getForms(); + /* Following are not available to user */ + $result['Sql_queries'][] = 'QueryHistoryDB'; + return $result; + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php new file mode 100644 index 0000000..f2f853c --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ExportForm.php @@ -0,0 +1,160 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class ExportForm + * @package PhpMyAdmin\Config\Forms\User + */ +class ExportForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + // phpcs:disable Squiz.Arrays.ArrayDeclaration.KeySpecified,Squiz.Arrays.ArrayDeclaration.NoKeySpecified + return [ + 'Export_defaults' => [ + 'Export/method', + ':group:' . __('Quick'), + 'Export/quick_export_onserver', + 'Export/quick_export_onserver_overwrite', + ':group:end', + ':group:' . __('Custom'), + 'Export/format', + 'Export/compression', + 'Export/charset', + 'Export/lock_tables', + 'Export/as_separate_files', + 'Export/asfile' => ':group', + 'Export/onserver', + 'Export/onserver_overwrite', + ':group:end', + 'Export/file_template_table', + 'Export/file_template_database', + 'Export/file_template_server', + ], + 'Sql' => [ + 'Export/sql_include_comments' => ':group', + 'Export/sql_dates', + 'Export/sql_relation', + 'Export/sql_mime', + ':group:end', + 'Export/sql_use_transaction', + 'Export/sql_disable_fk', + 'Export/sql_views_as_tables', + 'Export/sql_metadata', + 'Export/sql_compatibility', + 'Export/sql_structure_or_data', + ':group:' . __('Structure'), + 'Export/sql_drop_database', + 'Export/sql_create_database', + 'Export/sql_drop_table', + 'Export/sql_create_table' => ':group', + 'Export/sql_if_not_exists', + 'Export/sql_auto_increment', + ':group:end', + 'Export/sql_create_view' => ':group', + 'Export/sql_view_current_user', + 'Export/sql_or_replace_view', + ':group:end', + 'Export/sql_procedure_function', + 'Export/sql_create_trigger', + 'Export/sql_backquotes', + ':group:end', + ':group:' . __('Data'), + 'Export/sql_delayed', + 'Export/sql_ignore', + 'Export/sql_type', + 'Export/sql_insert_syntax', + 'Export/sql_max_query_size', + 'Export/sql_hex_for_binary', + 'Export/sql_utc_time', + ], + 'CodeGen' => [ + 'Export/codegen_format', + ], + 'Csv' => [ + ':group:' . __('CSV'), + 'Export/csv_separator', + 'Export/csv_enclosed', + 'Export/csv_escaped', + 'Export/csv_terminated', + 'Export/csv_null', + 'Export/csv_removeCRLF', + 'Export/csv_columns', + ':group:end', + ':group:' . __('CSV for MS Excel'), + 'Export/excel_null', + 'Export/excel_removeCRLF', + 'Export/excel_columns', + 'Export/excel_edition', + ], + 'Latex' => [ + 'Export/latex_caption', + 'Export/latex_structure_or_data', + ':group:' . __('Structure'), + 'Export/latex_structure_caption', + 'Export/latex_structure_continued_caption', + 'Export/latex_structure_label', + 'Export/latex_relation', + 'Export/latex_comments', + 'Export/latex_mime', + ':group:end', + ':group:' . __('Data'), + 'Export/latex_columns', + 'Export/latex_data_caption', + 'Export/latex_data_continued_caption', + 'Export/latex_data_label', + 'Export/latex_null', + ], + 'Microsoft_Office' => [ + ':group:' . __('Microsoft Word 2000'), + 'Export/htmlword_structure_or_data', + 'Export/htmlword_null', + 'Export/htmlword_columns', + ], + 'Open_Document' => [ + ':group:' . __('OpenDocument Spreadsheet'), + 'Export/ods_columns', + 'Export/ods_null', + ':group:end', + ':group:' . __('OpenDocument Text'), + 'Export/odt_structure_or_data', + ':group:' . __('Structure'), + 'Export/odt_relation', + 'Export/odt_comments', + 'Export/odt_mime', + ':group:end', + ':group:' . __('Data'), + 'Export/odt_columns', + 'Export/odt_null', + ], + 'Texy' => [ + 'Export/texytext_structure_or_data', + ':group:' . __('Data'), + 'Export/texytext_null', + 'Export/texytext_columns', + ], + ]; + // phpcs:enable + } + + /** + * @return string + */ + public static function getName() + { + return __('Export'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php new file mode 100644 index 0000000..58d3c24 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/FeaturesForm.php @@ -0,0 +1,95 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class FeaturesForm + * @package PhpMyAdmin\Config\Forms\User + */ +class FeaturesForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + $result = [ + 'General' => [ + 'VersionCheck', + 'NaturalOrder', + 'InitialSlidersState', + 'SkipLockedTables', + 'DisableMultiTableMaintenance', + 'ShowHint', + 'SendErrorReports', + 'ConsoleEnterExecutes', + 'DisableShortcutKeys', + ], + 'Databases' => [ + 'Servers/1/only_db', // saves to Server/only_db + 'Servers/1/hide_db', // saves to Server/hide_db + 'MaxDbList', + 'MaxTableList', + 'DefaultConnectionCollation', + ], + 'Text_fields' => [ + 'CharEditing', + 'MinSizeForInputField', + 'MaxSizeForInputField', + 'CharTextareaCols', + 'CharTextareaRows', + 'TextareaCols', + 'TextareaRows', + 'LongtextDoubleTextarea', + ], + 'Page_titles' => [ + 'TitleDefault', + 'TitleTable', + 'TitleDatabase', + 'TitleServer', + ], + 'Warnings' => [ + 'PmaNoRelation_DisableWarning', + 'SuhosinDisableWarning', + 'LoginCookieValidityDisableWarning', + 'ReservedWordDisableWarning', + ], + 'Console' => [ + 'Console/Mode', + 'Console/StartHistory', + 'Console/AlwaysExpand', + 'Console/CurrentQuery', + 'Console/EnterExecutes', + 'Console/DarkTheme', + 'Console/Height', + 'Console/GroupQueries', + 'Console/OrderBy', + 'Console/Order', + ], + ]; + // skip Developer form if no setting is available + if ($GLOBALS['cfg']['UserprefsDeveloperTab']) { + $result['Developer'] = [ + 'DBG/sql', + ]; + } + return $result; + } + + /** + * @return string + */ + public static function getName() + { + return __('Features'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php new file mode 100644 index 0000000..c447567 --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/ImportForm.php @@ -0,0 +1,73 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class ImportForm + * @package PhpMyAdmin\Config\Forms\User + */ +class ImportForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Import_defaults' => [ + 'Import/format', + 'Import/charset', + 'Import/allow_interrupt', + 'Import/skip_queries', + 'enable_drag_drop_import', + ], + 'Sql' => [ + 'Import/sql_compatibility', + 'Import/sql_no_auto_value_on_zero', + 'Import/sql_read_as_multibytes', + ], + 'Csv' => [ + ':group:' . __('CSV'), + 'Import/csv_replace', + 'Import/csv_ignore', + 'Import/csv_terminated', + 'Import/csv_enclosed', + 'Import/csv_escaped', + 'Import/csv_col_names', + ':group:end', + ':group:' . __('CSV using LOAD DATA'), + 'Import/ldi_replace', + 'Import/ldi_ignore', + 'Import/ldi_terminated', + 'Import/ldi_enclosed', + 'Import/ldi_escaped', + 'Import/ldi_local_option', + ], + 'Open_Document' => [ + ':group:' . __('OpenDocument Spreadsheet'), + 'Import/ods_col_names', + 'Import/ods_empty_rows', + 'Import/ods_recognize_percentages', + 'Import/ods_recognize_currency', + ], + + ]; + } + + /** + * @return string + */ + public static function getName() + { + return __('Import'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php new file mode 100644 index 0000000..907bbaa --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/MainForm.php @@ -0,0 +1,98 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class MainForm + * @package PhpMyAdmin\Config\Forms\User + */ +class MainForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Startup' => [ + 'ShowCreateDb', + 'ShowStats', + 'ShowServerInfo', + ], + 'DbStructure' => [ + 'ShowDbStructureCharset', + 'ShowDbStructureComment', + 'ShowDbStructureCreation', + 'ShowDbStructureLastUpdate', + 'ShowDbStructureLastCheck', + ], + 'TableStructure' => [ + 'HideStructureActions', + 'ShowColumnComments', + ':group:' . __('Default transformations'), + 'DefaultTransformations/Hex', + 'DefaultTransformations/Substring', + 'DefaultTransformations/Bool2Text', + 'DefaultTransformations/External', + 'DefaultTransformations/PreApPend', + 'DefaultTransformations/DateFormat', + 'DefaultTransformations/Inline', + 'DefaultTransformations/TextImageLink', + 'DefaultTransformations/TextLink', + ':group:end', + ], + 'Browse' => [ + 'TableNavigationLinksMode', + 'ActionLinksMode', + 'ShowAll', + 'MaxRows', + 'Order', + 'BrowsePointerEnable', + 'BrowseMarkerEnable', + 'GridEditing', + 'SaveCellsAtOnce', + 'RepeatCells', + 'LimitChars', + 'RowActionLinks', + 'RowActionLinksWithoutUnique', + 'TablePrimaryKeyOrder', + 'RememberSorting', + 'RelationalDisplay', + ], + 'Edit' => [ + 'ProtectBinary', + 'ShowFunctionFields', + 'ShowFieldTypesInDataEditView', + 'InsertRows', + 'ForeignKeyDropdownOrder', + 'ForeignKeyMaxLimit', + ], + 'Tabs' => [ + 'TabsMode', + 'DefaultTabServer', + 'DefaultTabDatabase', + 'DefaultTabTable', + ], + 'DisplayRelationalSchema' => [ + 'PDFDefaultPageSize', + ], + ]; + } + + /** + * @return string + */ + public static function getName() + { + return __('Main panel'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php new file mode 100644 index 0000000..e2d373c --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/NaviForm.php @@ -0,0 +1,74 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class NaviForm + * @package PhpMyAdmin\Config\Forms\User + */ +class NaviForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Navi_panel' => [ + 'ShowDatabasesNavigationAsTree', + 'NavigationLinkWithMainPanel', + 'NavigationDisplayLogo', + 'NavigationLogoLink', + 'NavigationLogoLinkWindow', + 'NavigationTreePointerEnable', + 'FirstLevelNavigationItems', + 'NavigationTreeDisplayItemFilterMinimum', + 'NumRecentTables', + 'NumFavoriteTables', + 'NavigationWidth', + ], + 'Navi_tree' => [ + 'MaxNavigationItems', + 'NavigationTreeEnableGrouping', + 'NavigationTreeEnableExpansion', + 'NavigationTreeShowTables', + 'NavigationTreeShowViews', + 'NavigationTreeShowFunctions', + 'NavigationTreeShowProcedures', + 'NavigationTreeShowEvents', + 'NavigationTreeAutoexpandSingleDb', + ], + 'Navi_servers' => [ + 'NavigationDisplayServers', + 'DisplayServersList', + ], + 'Navi_databases' => [ + 'NavigationTreeDisplayDbFilterMinimum', + 'NavigationTreeDbSeparator', + ], + 'Navi_tables' => [ + 'NavigationTreeDefaultTabTable', + 'NavigationTreeDefaultTabTable2', + 'NavigationTreeTableSeparator', + 'NavigationTreeTableLevel', + ], + ]; + } + + /** + * @return string + */ + public static function getName() + { + return __('Navigation panel'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php new file mode 100644 index 0000000..3d8ac7a --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/SqlForm.php @@ -0,0 +1,54 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseForm; + +/** + * Class SqlForm + * @package PhpMyAdmin\Config\Forms\User + */ +class SqlForm extends BaseForm +{ + /** + * @return array + */ + public static function getForms() + { + return [ + 'Sql_queries' => [ + 'ShowSQL', + 'Confirm', + 'QueryHistoryMax', + 'IgnoreMultiSubmitErrors', + 'MaxCharactersInDisplayedSQL', + 'RetainQueryBox', + 'CodemirrorEnable', + 'LintEnable', + 'EnableAutocompleteForTablesAndColumns', + 'DefaultForeignKeyChecks', + ], + 'Sql_box' => [ + 'SQLQuery/Edit', + 'SQLQuery/Explain', + 'SQLQuery/ShowAsPHP', + 'SQLQuery/Refresh', + ], + ]; + } + + /** + * @return string + */ + public static function getName() + { + return __('SQL queries'); + } +} diff --git a/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php new file mode 100644 index 0000000..92294ed --- /dev/null +++ b/srcs/phpmyadmin/libraries/classes/Config/Forms/User/UserFormList.php @@ -0,0 +1,35 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * User preferences form + * + * @package PhpMyAdmin + */ +declare(strict_types=1); + +namespace PhpMyAdmin\Config\Forms\User; + +use PhpMyAdmin\Config\Forms\BaseFormList; + +/** + * Class UserFormList + * @package PhpMyAdmin\Config\Forms\User + */ +class UserFormList extends BaseFormList +{ + /** + * @var array + */ + protected static $all = [ + 'Features', + 'Sql', + 'Navi', + 'Main', + 'Export', + 'Import', + ]; + /** + * @var string + */ + protected static $ns = '\\PhpMyAdmin\\Config\\Forms\\User\\'; +} |
