From 99c4d34db2d313b76efb7996c4487468a95bd040 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 14 May 2024 14:12:29 +0200 Subject: [PATCH 1/3] Create MessageType enum Signed-off-by: Kamil Tekiela --- src/Controllers/Import/ImportController.php | 3 ++- src/Controllers/Operations/ViewController.php | 5 +++-- .../Server/Databases/CreateController.php | 3 ++- src/Controllers/Table/AddFieldController.php | 3 ++- .../Table/FindReplaceController.php | 3 ++- .../Table/IndexRenameController.php | 3 ++- src/Controllers/Table/IndexesController.php | 3 ++- .../Table/Maintenance/AnalyzeController.php | 3 ++- .../Table/Maintenance/CheckController.php | 3 ++- .../Table/Maintenance/ChecksumController.php | 3 ++- .../Table/Maintenance/OptimizeController.php | 3 ++- .../Table/Maintenance/RepairController.php | 3 ++- .../Table/Partition/AnalyzeController.php | 3 ++- .../Table/Partition/CheckController.php | 3 ++- .../Table/Partition/DropController.php | 5 +++-- .../Table/Partition/OptimizeController.php | 3 ++- .../Table/Partition/RebuildController.php | 5 +++-- .../Table/Partition/RepairController.php | 3 ++- .../Table/Partition/TruncateController.php | 5 +++-- src/Controllers/Table/RelationController.php | 7 ++++--- .../Table/Structure/PartitioningController.php | 3 ++- .../Table/Structure/SaveController.php | 5 +++-- src/Controllers/UserPasswordController.php | 9 +++++++-- src/Display/Results.php | 5 +++-- src/Html/Generator.php | 18 ++++++++---------- src/MessageType.php | 12 ++++++++++++ src/Sql.php | 6 +++--- tests/unit/Display/ResultsTest.php | 5 +++-- 28 files changed, 87 insertions(+), 48 deletions(-) create mode 100644 src/MessageType.php diff --git a/src/Controllers/Import/ImportController.php b/src/Controllers/Import/ImportController.php index 80cbd73c90..70efd2659b 100644 --- a/src/Controllers/Import/ImportController.php +++ b/src/Controllers/Import/ImportController.php @@ -20,6 +20,7 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Import\Import; use PhpMyAdmin\Import\ImportSettings; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ParseAnalyze; use PhpMyAdmin\Plugins\Import\ImportFormat; use PhpMyAdmin\ResponseRenderer; @@ -705,7 +706,7 @@ final class ImportController implements InvocableController $this->response->addJSON('message', Message::success(ImportSettings::$message)); $this->response->addJSON( 'sql_query', - Generator::getMessage(ImportSettings::$message, $GLOBALS['sql_query'], 'success'), + Generator::getMessage(ImportSettings::$message, $GLOBALS['sql_query'], MessageType::Success), ); } elseif ($GLOBALS['result'] === false) { $this->response->setRequestStatus(false); diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index 3afcf62558..1c215a6d22 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Url; use PhpMyAdmin\Util; @@ -86,7 +87,7 @@ final class ViewController implements InvocableController $GLOBALS['urlParams']['goto'] = $GLOBALS['urlParams']['back'] = Url::getFromRoute('/view/operations'); $message = new Message(); - $type = 'success'; + $type = MessageType::Success; $newname = $request->getParsedBodyParam('new_name'); $warningMessages = []; @@ -118,7 +119,7 @@ final class ViewController implements InvocableController $message->addText(__('Error')); } - $type = $result ? 'success' : 'error'; + $type = $result ? MessageType::Success : MessageType::Error; } if ($warningMessages !== []) { diff --git a/src/Controllers/Server/Databases/CreateController.php b/src/Controllers/Server/Databases/CreateController.php index b08160aab8..779b58e4ba 100644 --- a/src/Controllers/Server/Databases/CreateController.php +++ b/src/Controllers/Server/Databases/CreateController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Url; use PhpMyAdmin\Util; @@ -85,7 +86,7 @@ final class CreateController implements InvocableController $json = [ 'message' => $message, - 'sql_query' => Generator::getMessage('', $sqlQuery, 'success'), + 'sql_query' => Generator::getMessage('', $sqlQuery, MessageType::Success), 'url' => $scriptName . Url::getCommon( ['db' => $newDb], ! str_contains($scriptName, '?') ? '?' : '&', diff --git a/src/Controllers/Table/AddFieldController.php b/src/Controllers/Table/AddFieldController.php index 118af2e9b3..67bf9a2032 100644 --- a/src/Controllers/Table/AddFieldController.php +++ b/src/Controllers/Table/AddFieldController.php @@ -17,6 +17,7 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\ColumnsDefinition; use PhpMyAdmin\Transformations; @@ -136,7 +137,7 @@ final class AddFieldController implements InvocableController $GLOBALS['message']->addParam(Current::$table); $this->response->addJSON( 'message', - Generator::getMessage($GLOBALS['message'], $GLOBALS['sql_query'], 'success'), + Generator::getMessage($GLOBALS['message'], $GLOBALS['sql_query'], MessageType::Success), ); // Give an URL to call and use to appends the structure after the success message diff --git a/src/Controllers/Table/FindReplaceController.php b/src/Controllers/Table/FindReplaceController.php index 1ac36db4f9..659e1b5d28 100644 --- a/src/Controllers/Table/FindReplaceController.php +++ b/src/Controllers/Table/FindReplaceController.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; use PhpMyAdmin\Url; @@ -118,7 +119,7 @@ final class FindReplaceController implements InvocableController Generator::getMessage( __('Your SQL query has been executed successfully.'), null, - 'success', + MessageType::Success, ), ); } diff --git a/src/Controllers/Table/IndexRenameController.php b/src/Controllers/Table/IndexRenameController.php index 4e70b5a0df..3823d4d337 100644 --- a/src/Controllers/Table/IndexRenameController.php +++ b/src/Controllers/Table/IndexRenameController.php @@ -16,6 +16,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Index; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Indexes; use PhpMyAdmin\Template; @@ -131,7 +132,7 @@ final class IndexRenameController implements InvocableController $message->addParam($tableName->getName()); $this->response->addJSON( 'message', - Generator::getMessage($message, $sqlQuery, 'success'), + Generator::getMessage($message, $sqlQuery, MessageType::Success), ); $indexes = Index::getFromTable($this->dbi, $tableName->getName(), $databaseName->getName()); diff --git a/src/Controllers/Table/IndexesController.php b/src/Controllers/Table/IndexesController.php index 1e98e150e7..2102cbba54 100644 --- a/src/Controllers/Table/IndexesController.php +++ b/src/Controllers/Table/IndexesController.php @@ -17,6 +17,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Index; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Indexes; use PhpMyAdmin\Template; @@ -143,7 +144,7 @@ final class IndexesController implements InvocableController $message->addParam(Current::$table); $this->response->addJSON( 'message', - Generator::getMessage($message, $sqlQuery, 'success'), + Generator::getMessage($message, $sqlQuery, MessageType::Success), ); $indexes = Index::getFromTable($this->dbi, Current::$table, Current::$database); diff --git a/src/Controllers/Table/Maintenance/AnalyzeController.php b/src/Controllers/Table/Maintenance/AnalyzeController.php index 3600a2feb0..79b039277c 100644 --- a/src/Controllers/Table/Maintenance/AnalyzeController.php +++ b/src/Controllers/Table/Maintenance/AnalyzeController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Maintenance; use Webmozart\Assert\Assert; @@ -71,7 +72,7 @@ final class AnalyzeController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/maintenance/analyze', ['message' => $message, 'rows' => $rows]); diff --git a/src/Controllers/Table/Maintenance/CheckController.php b/src/Controllers/Table/Maintenance/CheckController.php index edf1621477..755290fe2b 100644 --- a/src/Controllers/Table/Maintenance/CheckController.php +++ b/src/Controllers/Table/Maintenance/CheckController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Maintenance; use Webmozart\Assert\Assert; @@ -71,7 +72,7 @@ final class CheckController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $indexesProblems = $this->model->getIndexesProblems($database, $selectedTables); diff --git a/src/Controllers/Table/Maintenance/ChecksumController.php b/src/Controllers/Table/Maintenance/ChecksumController.php index cc4ee31b90..54f116dc9a 100644 --- a/src/Controllers/Table/Maintenance/ChecksumController.php +++ b/src/Controllers/Table/Maintenance/ChecksumController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Maintenance; use Webmozart\Assert\Assert; @@ -71,7 +72,7 @@ final class ChecksumController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/maintenance/checksum', [ diff --git a/src/Controllers/Table/Maintenance/OptimizeController.php b/src/Controllers/Table/Maintenance/OptimizeController.php index 460a8ee7f6..ab03154c73 100644 --- a/src/Controllers/Table/Maintenance/OptimizeController.php +++ b/src/Controllers/Table/Maintenance/OptimizeController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Maintenance; use Webmozart\Assert\Assert; @@ -71,7 +72,7 @@ final class OptimizeController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/maintenance/optimize', ['message' => $message, 'rows' => $rows]); diff --git a/src/Controllers/Table/Maintenance/RepairController.php b/src/Controllers/Table/Maintenance/RepairController.php index ea71ffdee6..5f7256ee4b 100644 --- a/src/Controllers/Table/Maintenance/RepairController.php +++ b/src/Controllers/Table/Maintenance/RepairController.php @@ -13,6 +13,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Maintenance; use Webmozart\Assert\Assert; @@ -71,7 +72,7 @@ final class RepairController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/maintenance/repair', ['message' => $message, 'rows' => $rows]); diff --git a/src/Controllers/Table/Partition/AnalyzeController.php b/src/Controllers/Table/Partition/AnalyzeController.php index 9ac18f7a08..5b4f8a46ef 100644 --- a/src/Controllers/Table/Partition/AnalyzeController.php +++ b/src/Controllers/Table/Partition/AnalyzeController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -45,7 +46,7 @@ final class AnalyzeController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/partition/analyze', [ diff --git a/src/Controllers/Table/Partition/CheckController.php b/src/Controllers/Table/Partition/CheckController.php index f7116384a7..66cc2a94e1 100644 --- a/src/Controllers/Table/Partition/CheckController.php +++ b/src/Controllers/Table/Partition/CheckController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -45,7 +46,7 @@ final class CheckController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/partition/check', [ diff --git a/src/Controllers/Table/Partition/DropController.php b/src/Controllers/Table/Partition/DropController.php index d86c33a47b..57463118b1 100644 --- a/src/Controllers/Table/Partition/DropController.php +++ b/src/Controllers/Table/Partition/DropController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -46,13 +47,13 @@ final class DropController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); } else { $message = Generator::getMessage( __('Error'), $query, - 'error', + MessageType::Error, ); } diff --git a/src/Controllers/Table/Partition/OptimizeController.php b/src/Controllers/Table/Partition/OptimizeController.php index ce46bb5e38..13bc8aad5e 100644 --- a/src/Controllers/Table/Partition/OptimizeController.php +++ b/src/Controllers/Table/Partition/OptimizeController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -45,7 +46,7 @@ final class OptimizeController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/partition/optimize', [ diff --git a/src/Controllers/Table/Partition/RebuildController.php b/src/Controllers/Table/Partition/RebuildController.php index 51a5f94513..6475cdcccc 100644 --- a/src/Controllers/Table/Partition/RebuildController.php +++ b/src/Controllers/Table/Partition/RebuildController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -46,13 +47,13 @@ final class RebuildController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); } else { $message = Generator::getMessage( __('Error'), $query, - 'error', + MessageType::Error, ); } diff --git a/src/Controllers/Table/Partition/RepairController.php b/src/Controllers/Table/Partition/RepairController.php index 54f06ba4a1..d07e013db9 100644 --- a/src/Controllers/Table/Partition/RepairController.php +++ b/src/Controllers/Table/Partition/RepairController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -45,7 +46,7 @@ final class RepairController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); $this->response->render('table/partition/repair', [ diff --git a/src/Controllers/Table/Partition/TruncateController.php b/src/Controllers/Table/Partition/TruncateController.php index 8770509898..381562d1e8 100644 --- a/src/Controllers/Table/Partition/TruncateController.php +++ b/src/Controllers/Table/Partition/TruncateController.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidIdentifier; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\Maintenance; use PhpMyAdmin\ResponseRenderer; use Webmozart\Assert\Assert; @@ -46,13 +47,13 @@ final class TruncateController implements InvocableController $message = Generator::getMessage( __('Your SQL query has been executed successfully.'), $query, - 'success', + MessageType::Success, ); } else { $message = Generator::getMessage( __('Error'), $query, - 'error', + MessageType::Error, ); } diff --git a/src/Controllers/Table/RelationController.php b/src/Controllers/Table/RelationController.php index 01212835f3..eadfe73923 100644 --- a/src/Controllers/Table/RelationController.php +++ b/src/Controllers/Table/RelationController.php @@ -16,6 +16,7 @@ use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Index; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Table; use PhpMyAdmin\Template; @@ -139,7 +140,7 @@ final class RelationController implements InvocableController Generator::getMessage( __('Your SQL query has been executed successfully.'), null, - 'success', + MessageType::Success, ), ); } @@ -324,7 +325,7 @@ final class RelationController implements InvocableController Generator::getMessage( __('Display column was successfully updated.'), '', - 'success', + MessageType::Success, ), ); } @@ -358,7 +359,7 @@ final class RelationController implements InvocableController Generator::getMessage( __('Internal relationships were successfully updated.'), '', - 'success', + MessageType::Success, ), ); } diff --git a/src/Controllers/Table/Structure/PartitioningController.php b/src/Controllers/Table/Structure/PartitioningController.php index d6e2471296..40c23d6ecf 100644 --- a/src/Controllers/Table/Structure/PartitioningController.php +++ b/src/Controllers/Table/Structure/PartitioningController.php @@ -14,6 +14,7 @@ use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Partitioning\TablePartitionDefinition; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\SqlParser\Parser; @@ -266,7 +267,7 @@ final class PartitioningController implements InvocableController ); $message->addParam(Current::$table); $this->response->addHTML( - Generator::getMessage($message, $sqlQuery, 'success'), + Generator::getMessage($message, $sqlQuery, MessageType::Success), ); } } diff --git a/src/Controllers/Table/Structure/SaveController.php b/src/Controllers/Table/Structure/SaveController.php index 1df732fe06..86b4bbddd7 100644 --- a/src/Controllers/Table/Structure/SaveController.php +++ b/src/Controllers/Table/Structure/SaveController.php @@ -16,6 +16,7 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Index; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Table\Table; use PhpMyAdmin\Table\UiProperty; @@ -219,7 +220,7 @@ final class SaveController implements InvocableController $message->addParam(Current::$table); $this->response->addHTML( - Generator::getMessage($message, $sqlQuery, 'success'), + Generator::getMessage($message, $sqlQuery, MessageType::Success), ); } else { // An error happened while inserting/updating a table definition @@ -265,7 +266,7 @@ final class SaveController implements InvocableController __('Query error') . ':
' . $origError, ); $this->response->addHTML( - Generator::getMessage($message, $sqlQuery, 'error'), + Generator::getMessage($message, $sqlQuery, MessageType::Error), ); $regenerate = true; } diff --git a/src/Controllers/UserPasswordController.php b/src/Controllers/UserPasswordController.php index e358ef6375..5a4d736252 100644 --- a/src/Controllers/UserPasswordController.php +++ b/src/Controllers/UserPasswordController.php @@ -10,6 +10,7 @@ use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\UserPassword; @@ -76,14 +77,18 @@ final class UserPasswordController implements InvocableController ); if ($request->isAjax()) { - $sqlQuery = Generator::getMessage($GLOBALS['change_password_message']['msg'], $sqlQuery, 'success'); + $sqlQuery = Generator::getMessage( + $GLOBALS['change_password_message']['msg'], + $sqlQuery, + MessageType::Success, + ); $this->response->addJSON('message', $sqlQuery); return null; } $this->response->addHTML('

' . __('Change password') . '

' . "\n\n"); - $this->response->addHTML(Generator::getMessage($message, $sqlQuery, 'success')); + $this->response->addHTML(Generator::getMessage($message, $sqlQuery, MessageType::Success)); $this->response->render('user_password', []); return null; diff --git a/src/Display/Results.php b/src/Display/Results.php index 2dc8c2d967..54b7c57bef 100644 --- a/src/Display/Results.php +++ b/src/Display/Results.php @@ -16,6 +16,7 @@ use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Index; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Plugins\Transformations\Output\Text_Octetstream_Sql; use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Json; use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_Sql; @@ -3143,12 +3144,12 @@ class Results $afterCount, ); - $sqlQueryMessage = Generator::getMessage($message, $this->sqlQuery, 'success'); + $sqlQueryMessage = Generator::getMessage($message, $this->sqlQuery, MessageType::Success); } elseif (! $this->printView && ! $isLimitedDisplay) { $sqlQueryMessage = Generator::getMessage( __('Your SQL query has been executed successfully.'), $this->sqlQuery, - 'success', + MessageType::Success, ); } diff --git a/src/Html/Generator.php b/src/Html/Generator.php index 0ba5ccb3a4..115412ba9f 100644 --- a/src/Html/Generator.php +++ b/src/Html/Generator.php @@ -12,6 +12,7 @@ use PhpMyAdmin\Core; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Profiling; use PhpMyAdmin\Providers\ServerVariables\ServerVariablesProvider; use PhpMyAdmin\Query\Compatibility; @@ -389,7 +390,7 @@ class Generator * * @param Message|string $message the message to display * @param string|null $sqlQuery the query to display - * @param string $type the type (level) of the message + * @param MessageType $type the type (level) of the message * * @throws Throwable * @throws LoaderError @@ -399,7 +400,7 @@ class Generator public static function getMessage( Message|string $message, string|null $sqlQuery = null, - string $type = 'notice', + MessageType $type = MessageType::Notice, ): string { $retval = ''; @@ -422,14 +423,11 @@ class Generator } if (is_string($message)) { - $context = Message::NOTICE; - if ($type === 'error') { - $context = Message::ERROR; - } elseif ($type === 'success') { - $context = Message::SUCCESS; - } - - $message = new Message($message, $context); + $message = new Message($message, match($type) { + MessageType::Error => Message::ERROR, + MessageType::Notice => Message::NOTICE, + MessageType::Success => Message::SUCCESS, + }); } if (isset($GLOBALS['special_message'])) { diff --git a/src/MessageType.php b/src/MessageType.php new file mode 100644 index 0000000000..b637b45cfd --- /dev/null +++ b/src/MessageType.php @@ -0,0 +1,12 @@ +getMessageForNoRowsReturned($messageToShow, $statementInfo, $numRows); } - $queryMessage = Generator::getMessage($message, $GLOBALS['sql_query'], 'success'); + $queryMessage = Generator::getMessage($message, $GLOBALS['sql_query'], MessageType::Success); if (isset($GLOBALS['show_as_php'])) { return $queryMessage; @@ -1184,7 +1184,7 @@ class Sql Message|string $displayMessage, ): string { if ($displayQuery !== null && $showSql && $sqlData === []) { - return Generator::getMessage($displayMessage, $displayQuery, 'success'); + return Generator::getMessage($displayMessage, $displayQuery, MessageType::Success); } return ''; @@ -1556,7 +1556,7 @@ class Sql $message = $this->getMessageForNoRowsReturned($messageToShow, $statementInfo, 0); - return Generator::getMessage($message, $GLOBALS['sql_query'], 'success'); + return Generator::getMessage($message, $GLOBALS['sql_query'], MessageType::Success); } // Handle disable/enable foreign key checks diff --git a/tests/unit/Display/ResultsTest.php b/tests/unit/Display/ResultsTest.php index d9bfe877ad..627a7d8c0f 100644 --- a/tests/unit/Display/ResultsTest.php +++ b/tests/unit/Display/ResultsTest.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Display\Results as DisplayResults; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\Html\Generator; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ParseAnalyze; use PhpMyAdmin\Plugins\Transformations\Output\Text_Plain_External; use PhpMyAdmin\Plugins\Transformations\Text_Plain_Link; @@ -1315,7 +1316,7 @@ class ResultsTest extends AbstractTestCase 'sql_query_message' => Generator::getMessage( Message::success('Showing rows 0 - 2 (3 total, Query took 1.2340 seconds.)'), $query, - 'success', + MessageType::Success, ), 'navigation' => [ 'page_selector' => '', @@ -1584,7 +1585,7 @@ class ResultsTest extends AbstractTestCase 'sql_query_message' => Generator::getMessage( Message::success('Showing rows 0 - 1 (2 total, Query took 1.2340 seconds.)'), $query, - 'success', + MessageType::Success, ), 'navigation' => [ 'page_selector' => '', From d265dbbd9186ed1a3e6807fdac49ae0ad6af4fa1 Mon Sep 17 00:00:00 2001 From: Kamil Tekiela Date: Tue, 14 May 2024 14:30:48 +0200 Subject: [PATCH 2/3] Replace Message constants with enum Signed-off-by: Kamil Tekiela --- src/Controllers/HomeController.php | 3 +- .../Operations/DatabaseController.php | 3 +- .../Operations/TableController.php | 3 +- src/Controllers/Operations/ViewController.php | 2 +- src/Controllers/Table/ReplaceController.php | 7 +-- src/Export/Export.php | 5 +- src/Html/Generator.php | 6 +-- src/Message.php | 47 +++++++------------ src/MessageType.php | 12 +++++ src/Server/Privileges.php | 5 +- tests/unit/MessageTest.php | 29 ++++++------ 11 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/Controllers/HomeController.php b/src/Controllers/HomeController.php index 7e9419cec7..5fb9abdc35 100644 --- a/src/Controllers/HomeController.php +++ b/src/Controllers/HomeController.php @@ -22,6 +22,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\LanguageManager; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Server\Select; use PhpMyAdmin\Theme\ThemeManager; @@ -210,7 +211,7 @@ final class HomeController implements InvocableController $messageInstance->addParamHtml(''); /* Show error if user has configured something, notice elsewhere */ if (! empty($config->settings['Servers'][Current::$server]['pmadb'])) { - $messageInstance->setType(Message::ERROR); + $messageInstance->setType(MessageType::Error); } $configStorageMessage = $messageInstance->getDisplay(); diff --git a/src/Controllers/Operations/DatabaseController.php b/src/Controllers/Operations/DatabaseController.php index 761464d160..f3c4a3c42f 100644 --- a/src/Controllers/Operations/DatabaseController.php +++ b/src/Controllers/Operations/DatabaseController.php @@ -18,6 +18,7 @@ use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\InvalidDatabaseName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Operations; use PhpMyAdmin\Plugins; use PhpMyAdmin\Query\Utilities; @@ -289,7 +290,7 @@ final class DatabaseController implements InvocableController $GLOBALS['message']->addParamHtml(''); /* Show error if user has configured something, notice elsewhere */ if (! empty($config->settings['Servers'][Current::$server]['pmadb'])) { - $GLOBALS['message']->setType(Message::ERROR); + $GLOBALS['message']->setType(MessageType::Error); } } diff --git a/src/Controllers/Operations/TableController.php b/src/Controllers/Operations/TableController.php index 6bcec0df3e..2e16a5be9e 100644 --- a/src/Controllers/Operations/TableController.php +++ b/src/Controllers/Operations/TableController.php @@ -18,6 +18,7 @@ use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Index; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Operations; use PhpMyAdmin\Partitioning\Partition; use PhpMyAdmin\Query\Generator as QueryGenerator; @@ -371,7 +372,7 @@ final class TableController implements InvocableController if ($warningMessages !== []) { $newMessage = new Message(); $newMessage->addMessagesString($warningMessages); - $newMessage->setType(Message::ERROR); + $newMessage->setType(MessageType::Error); if ($request->isAjax()) { $this->response->setRequestStatus(false); $this->response->addJSON('message', $newMessage); diff --git a/src/Controllers/Operations/ViewController.php b/src/Controllers/Operations/ViewController.php index 1c215a6d22..3a68fb05d9 100644 --- a/src/Controllers/Operations/ViewController.php +++ b/src/Controllers/Operations/ViewController.php @@ -124,7 +124,7 @@ final class ViewController implements InvocableController if ($warningMessages !== []) { $message->addMessagesString($warningMessages); - $message->setType(Message::ERROR); + $message->setType(MessageType::Error); } $this->response->addHTML(Generator::getMessage( diff --git a/src/Controllers/Table/ReplaceController.php b/src/Controllers/Table/ReplaceController.php index 95879f25c6..f899e44058 100644 --- a/src/Controllers/Table/ReplaceController.php +++ b/src/Controllers/Table/ReplaceController.php @@ -19,6 +19,7 @@ use PhpMyAdmin\Http\Response; use PhpMyAdmin\Http\ServerRequest; use PhpMyAdmin\InsertEdit; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Plugins\IOTransformationsPlugin; use PhpMyAdmin\Query\Generator as QueryGenerator; use PhpMyAdmin\ResponseRenderer; @@ -324,19 +325,19 @@ final class ReplaceController implements InvocableController if ($rowSkipped) { $gotoInclude = '/table/change'; $GLOBALS['message']->addMessagesString($insertErrors, '
'); - $GLOBALS['message']->setType(Message::ERROR); + $GLOBALS['message']->setType(MessageType::Error); } $GLOBALS['message']->addMessages($lastMessages, '
'); if (! empty($warningMessages)) { $GLOBALS['message']->addMessagesString($warningMessages, '
'); - $GLOBALS['message']->setType(Message::ERROR); + $GLOBALS['message']->setType(MessageType::Error); } if (! empty($errorMessages)) { $GLOBALS['message']->addMessagesString($errorMessages); - $GLOBALS['message']->setType(Message::ERROR); + $GLOBALS['message']->setType(MessageType::Error); } /** diff --git a/src/Export/Export.php b/src/Export/Export.php index d62cf9347d..8f2c90934c 100644 --- a/src/Export/Export.php +++ b/src/Export/Export.php @@ -15,6 +15,7 @@ use PhpMyAdmin\Exceptions\ExportException; use PhpMyAdmin\FlashMessages; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Plugins; use PhpMyAdmin\Plugins\ExportPlugin; use PhpMyAdmin\Plugins\SchemaPlugin; @@ -437,14 +438,14 @@ class Export if ($dumpBuffer !== '' && $writeResult !== strlen($dumpBuffer)) { return new Message( __('Insufficient space to save the file %s.'), - Message::ERROR, + MessageType::Error, [$saveFilename], ); } return new Message( __('Dump has been saved to file %s.'), - Message::SUCCESS, + MessageType::Success, [$saveFilename], ); } diff --git a/src/Html/Generator.php b/src/Html/Generator.php index 115412ba9f..81bbc2cdd0 100644 --- a/src/Html/Generator.php +++ b/src/Html/Generator.php @@ -423,11 +423,7 @@ class Generator } if (is_string($message)) { - $message = new Message($message, match($type) { - MessageType::Error => Message::ERROR, - MessageType::Notice => Message::NOTICE, - MessageType::Success => Message::SUCCESS, - }); + $message = new Message($message, $type); } if (isset($GLOBALS['special_message'])) { diff --git a/src/Message.php b/src/Message.php index 0f22a41ee0..ee1cca1bc7 100644 --- a/src/Message.php +++ b/src/Message.php @@ -47,10 +47,6 @@ use const ENT_COMPAT; */ class Message implements Stringable { - public const SUCCESS = 1; // 0001 - public const NOTICE = 2; // 0010 - public const ERROR = 8; // 1000 - /** * The locale string identifier */ @@ -92,14 +88,11 @@ class Message implements Stringable /** * @param string $string The message to be displayed - * @param int $type A numeric representation of the type of message - * @param mixed[] $params An array of parameters to use in the message - * constant definitions above - * @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type + * @param mixed[] $params An array of parameters to use in the message constant definitions above */ public function __construct( string $string = '', - private int $type = self::NOTICE, + private MessageType $type = MessageType::Notice, array $params = [], ) { $this->setString($string); @@ -129,7 +122,7 @@ class Message implements Stringable $string = __('Your SQL query has been executed successfully.'); } - return new Message($string, self::SUCCESS); + return new Message($string, MessageType::Success); } /** @@ -145,7 +138,7 @@ class Message implements Stringable $string = __('Error'); } - return new Message($string, self::ERROR); + return new Message($string, MessageType::Error); } /** @@ -160,7 +153,7 @@ class Message implements Stringable */ public static function notice(string $string): self { - return new Message($string, self::NOTICE); + return new Message($string, MessageType::Notice); } /** @@ -169,10 +162,8 @@ class Message implements Stringable * shorthand for getting a customized message * * @param string $message A localized string - * @param int $type A numeric representation of the type of message - * @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type */ - public static function raw(string $message, int $type = self::NOTICE): self + public static function raw(string $message, MessageType $type = MessageType::Notice): self { $r = new Message('', $type); $r->setMessage($message); @@ -241,7 +232,7 @@ class Message implements Stringable */ public static function rawError(string $message): self { - return self::raw($message, self::ERROR); + return self::raw($message, MessageType::Error); } /** @@ -265,22 +256,22 @@ class Message implements Stringable */ public static function rawSuccess(string $message): self { - return self::raw($message, self::SUCCESS); + return self::raw($message, MessageType::Success); } public function isSuccess(): bool { - return $this->type === self::SUCCESS; + return $this->type === MessageType::Success; } public function isNotice(): bool { - return $this->type === self::NOTICE; + return $this->type === MessageType::Notice; } public function isError(): bool { - return $this->type === self::ERROR; + return $this->type === MessageType::Error; } /** @@ -313,13 +304,7 @@ class Message implements Stringable $this->string = $string; } - /** - * set message type type - * - * @param int $type message type type to set - * @psalm-param self::SUCCESS|self::NOTICE|self::ERROR $type - */ - public function setType(int $type): void + public function setType(MessageType $type): void { $this->type = $type; } @@ -470,7 +455,7 @@ class Message implements Stringable public function getHash(): string { if ($this->hash === null) { - $this->hash = md5($this->type . $this->string . $this->message); + $this->hash = md5($this->type->getNumericalValue() . $this->string . $this->message); } return $this->hash; @@ -535,9 +520,9 @@ class Message implements Stringable public function getLevel(): string { return match ($this->type) { - self::SUCCESS => 'success', - self::NOTICE => 'notice', - self::ERROR => 'error' + MessageType::Success => 'success', + MessageType::Notice => 'notice', + MessageType::Error => 'error' }; } diff --git a/src/MessageType.php b/src/MessageType.php index b637b45cfd..16f3e4d195 100644 --- a/src/MessageType.php +++ b/src/MessageType.php @@ -9,4 +9,16 @@ enum MessageType case Success; case Notice; case Error; + + /** + * This value is used in generation of MD5 code. + */ + public function getNumericalValue(): string + { + return match ($this) { + self::Success => '1', + self::Notice => '2', + self::Error => '8', + }; + } } diff --git a/src/Server/Privileges.php b/src/Server/Privileges.php index 0b3372a014..a8ddb9025f 100644 --- a/src/Server/Privileges.php +++ b/src/Server/Privileges.php @@ -22,6 +22,7 @@ use PhpMyAdmin\Html\MySQLDocumentation; use PhpMyAdmin\Identifiers\DatabaseName; use PhpMyAdmin\Identifiers\TableName; use PhpMyAdmin\Message; +use PhpMyAdmin\MessageType; use PhpMyAdmin\Query\Compatibility; use PhpMyAdmin\ResponseRenderer; use PhpMyAdmin\Template; @@ -2606,7 +2607,7 @@ class Privileges . 'if they have been changed manually. In this case, ' . 'you should %sreload the privileges%s before you continue.', ), - Message::NOTICE, + MessageType::Notice, ); $flushnote->addParamHtml( '' . "\n"; - $context = $message->getContext(); - $message->isDisplayed(true); - $retval .= '
getContext(); $retval .= ' border-top-0 border-start-0 border-end-0 rounded-bottom-0 mb-0" role="alert">' . "\n"; $retval .= ' ' . $message->getMessage() . "\n"; $retval .= '
' . "\n"; diff --git a/src/Message.php b/src/Message.php index ee1cca1bc7..666dfad239 100644 --- a/src/Message.php +++ b/src/Message.php @@ -512,26 +512,17 @@ class Message implements Stringable return $this->string; } - /** - * returns level of message - * - * @return string level of message - */ - public function getLevel(): string + protected function getLevel(): MessageType { - return match ($this->type) { - MessageType::Success => 'success', - MessageType::Notice => 'notice', - MessageType::Error => 'error' - }; + return $this->type; } public function getContext(): string { return match ($this->getLevel()) { - 'error' => 'danger', - 'success' => 'success', - default => 'primary', + MessageType::Error => 'danger', + MessageType::Success => 'success', + MessageType::Notice => 'primary', }; } @@ -544,11 +535,9 @@ class Message implements Stringable { $this->isDisplayed(true); - $context = $this->getContext(); - $template = new Template(); - return $template->render('message', ['context' => $context, 'message' => $this->getMessage()]); + return $template->render('message', ['context' => $this->getContext(), 'message' => $this->getMessage()]); } /** @@ -577,9 +566,9 @@ class Message implements Stringable public function getMessageWithIcon(string $message): string { $image = match ($this->getLevel()) { - 'error' => 's_error', - 'success' => 's_success', - default =>'s_notice', + MessageType::Error => 's_error', + MessageType::Success => 's_success', + MessageType::Notice =>'s_notice', }; return self::notice(Html\Generator::getImage($image)) . ' ' . $message; diff --git a/tests/unit/MessageTest.php b/tests/unit/MessageTest.php index a5f85849ac..736ac4ca3b 100644 --- a/tests/unit/MessageTest.php +++ b/tests/unit/MessageTest.php @@ -329,16 +329,13 @@ class MessageTest extends AbstractTestCase ); } - /** - * getLevel test - */ - public function testGetLevel(): void + public function testGetContext(): void { - self::assertSame('notice', $this->object->getLevel()); + self::assertSame('primary', $this->object->getContext()); $this->object->setType(MessageType::Success); - self::assertSame('success', $this->object->getLevel()); + self::assertSame('success', $this->object->getContext()); $this->object->setType(MessageType::Error); - self::assertSame('error', $this->object->getLevel()); + self::assertSame('danger', $this->object->getContext()); } /**