Skip to content

Commit

Permalink
Remove the Core::isValid method
Browse files Browse the repository at this point in the history
This improves the type checking and simplifies the code.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
  • Loading branch information
MauricioFauth committed Sep 2, 2021
1 parent 5725516 commit 8f2f3ef
Show file tree
Hide file tree
Showing 32 changed files with 229 additions and 778 deletions.
20 changes: 14 additions & 6 deletions libraries/classes/Common.php
Expand Up @@ -24,6 +24,7 @@
use function implode;
use function ini_get;
use function ini_set;
use function is_scalar;
use function mb_internal_encoding;
use function mb_strlen;
use function mb_strpos;
Expand Down Expand Up @@ -461,9 +462,9 @@ public static function checkTokenRequestParam(): void
return;
}

if (Core::isValid($_POST['token'])) {
if (isset($_POST['token']) && is_scalar($_POST['token']) && strlen((string) $_POST['token']) > 0) {
$token_provided = true;
$token_mismatch = ! @hash_equals($_SESSION[' PMA_token '], $_POST['token']);
$token_mismatch = ! @hash_equals($_SESSION[' PMA_token '], (string) $_POST['token']);
}

if (! $token_mismatch) {
Expand Down Expand Up @@ -493,11 +494,18 @@ private static function setDatabaseAndTableFromRequest(ContainerInterface $conta
{
global $db, $table, $urlParams;

$databaseFromRequest = $_POST['db'] ?? $_GET['db'] ?? $_REQUEST['db'] ?? null;
$tableFromRequest = $_POST['table'] ?? $_GET['table'] ?? $_REQUEST['table'] ?? null;
$databaseFromRequest = $_POST['db'] ?? $_GET['db'] ?? $_REQUEST['db'] ?? '';
$tableFromRequest = $_POST['table'] ?? $_GET['table'] ?? $_REQUEST['table'] ?? '';

$db = Core::isValid($databaseFromRequest) ? $databaseFromRequest : '';
$table = Core::isValid($tableFromRequest) ? $tableFromRequest : '';
$db = '';
if (is_scalar($databaseFromRequest) && strlen((string) $databaseFromRequest) > 0) {
$db = (string) $databaseFromRequest;
}

$table = '';
if (is_scalar($tableFromRequest) && strlen((string) $tableFromRequest) > 0) {
$table = (string) $tableFromRequest;
}

$urlParams['db'] = $db;
$urlParams['table'] = $table;
Expand Down
Expand Up @@ -7,14 +7,14 @@

namespace PhpMyAdmin\Controllers\Database;

use PhpMyAdmin\Core;
use PhpMyAdmin\Database\CentralColumns;
use PhpMyAdmin\Message;
use PhpMyAdmin\ResponseRenderer;
use PhpMyAdmin\Template;

use function __;
use function is_bool;
use function is_numeric;
use function parse_str;
use function sprintf;

Expand Down Expand Up @@ -132,7 +132,7 @@ public function index(): void
]);

$pos = 0;
if (Core::isValid($_POST['pos'], 'integer')) {
if (isset($_POST['pos']) && is_numeric($_POST['pos'])) {
$pos = (int) $_POST['pos'];
}

Expand All @@ -158,17 +158,14 @@ public function main(array $params): void
{
global $text_dir;

if (
! empty($params['total_rows'])
&& Core::isValid($params['total_rows'], 'integer')
) {
if (! empty($params['total_rows']) && is_numeric($params['total_rows'])) {
$totalRows = (int) $params['total_rows'];
} else {
$totalRows = $this->centralColumns->getCount($this->db);
}

$pos = 0;
if (Core::isValid($params['pos'], 'integer')) {
if (isset($params['pos']) && is_numeric($params['pos'])) {
$pos = (int) $params['pos'];
}

Expand Down
4 changes: 2 additions & 2 deletions libraries/classes/Controllers/Database/ImportController.php
Expand Up @@ -7,7 +7,6 @@
use PhpMyAdmin\Charsets;
use PhpMyAdmin\Charsets\Charset;
use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\Import;
Expand All @@ -22,6 +21,7 @@

use function __;
use function intval;
use function is_numeric;

final class ImportController extends AbstractController
{
Expand Down Expand Up @@ -82,7 +82,7 @@ public function __invoke(): void
}

$offset = null;
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
if (isset($_REQUEST['offset']) && is_numeric($_REQUEST['offset'])) {
$offset = intval($_REQUEST['offset']);
}

Expand Down
Expand Up @@ -5,7 +5,6 @@
namespace PhpMyAdmin\Controllers\Database;

use PhpMyAdmin\CheckUserPrivileges;
use PhpMyAdmin\Core;
use PhpMyAdmin\Database\Routines;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
Expand Down Expand Up @@ -102,7 +101,7 @@ public function __invoke(): void
$routines->handleExecute();
$routines->export();

if (! Core::isValid($type, ['FUNCTION', 'PROCEDURE'])) {
if (! isset($type) || ! in_array($type, ['FUNCTION', 'PROCEDURE'])) {
$type = null;
}

Expand Down
3 changes: 2 additions & 1 deletion libraries/classes/Controllers/NormalizationController.php
Expand Up @@ -12,6 +12,7 @@

use function __;
use function _pgettext;
use function in_array;
use function intval;
use function json_decode;
use function json_encode;
Expand Down Expand Up @@ -108,7 +109,7 @@ public function __invoke(): void
$this->addScriptFiles(['normalization.js', 'vendor/jquery/jquery.uitablefilter.js']);

$normalForm = '1nf';
if (Core::isValid($_POST['normalizeTo'], ['1nf', '2nf', '3nf'])) {
if (isset($_POST['normalizeTo']) && in_array($_POST['normalizeTo'], ['1nf', '2nf', '3nf'])) {
$normalForm = $_POST['normalizeTo'];
}

Expand Down
4 changes: 2 additions & 2 deletions libraries/classes/Controllers/Server/ImportController.php
Expand Up @@ -8,7 +8,6 @@
use PhpMyAdmin\Charsets\Charset;
use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Controllers\AbstractController;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Encoding;
use PhpMyAdmin\Import;
Expand All @@ -23,6 +22,7 @@

use function __;
use function intval;
use function is_numeric;

final class ImportController extends AbstractController
{
Expand Down Expand Up @@ -67,7 +67,7 @@ public function __invoke(): void
}

$offset = null;
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
if (isset($_REQUEST['offset']) && is_numeric($_REQUEST['offset'])) {
$offset = intval($_REQUEST['offset']);
}

Expand Down
5 changes: 3 additions & 2 deletions libraries/classes/Controllers/Setup/ConfigController.php
Expand Up @@ -4,9 +4,10 @@

namespace PhpMyAdmin\Controllers\Setup;

use PhpMyAdmin\Core;
use PhpMyAdmin\Setup\ConfigGenerator;

use function is_scalar;

class ConfigController extends AbstractController
{
/**
Expand All @@ -28,7 +29,7 @@ public function __invoke(array $params): string
return $this->template->render('setup/config/index', [
'formset' => $params['formset'] ?? '',
'pages' => $pages,
'eol' => Core::isValid($params['eol'], 'similar', 'unix') ? $params['eol'] : 'unix',
'eol' => isset($params['eol']) && is_scalar($params['eol']) ? $params['eol'] : 'unix',
'config' => $config,
'has_check_page_refresh' => $hasCheckPageRefresh,
]);
Expand Down
3 changes: 2 additions & 1 deletion libraries/classes/Controllers/Setup/FormController.php
Expand Up @@ -10,6 +10,7 @@
use PhpMyAdmin\Setup\FormProcessing;

use function __;
use function is_scalar;
use function ob_get_clean;
use function ob_start;

Expand All @@ -24,7 +25,7 @@ public function __invoke(array $params): string
{
$pages = $this->getPages();

$formset = Core::isValid($params['formset'], 'scalar') ? $params['formset'] : null;
$formset = isset($params['formset']) && is_scalar($params['formset']) ? (string) $params['formset'] : '';

$formClass = SetupFormList::get($formset);
if ($formClass === null) {
Expand Down
12 changes: 6 additions & 6 deletions libraries/classes/Controllers/Setup/HomeController.php
Expand Up @@ -5,12 +5,12 @@
namespace PhpMyAdmin\Controllers\Setup;

use PhpMyAdmin\Config\ServerConfigChecks;
use PhpMyAdmin\Core;
use PhpMyAdmin\LanguageManager;
use PhpMyAdmin\Sanitize;
use PhpMyAdmin\Setup\Index;

use function __;
use function is_scalar;
use function preg_replace;
use function uniqid;

Expand All @@ -26,7 +26,9 @@ public function __invoke(array $params): string
$pages = $this->getPages();

// Handle done action info
$actionDone = Core::isValid($params['action_done'], 'scalar') ? $params['action_done'] : '';
$actionDone = isset($params['action_done']) && is_scalar($params['action_done'])
? (string) $params['action_done']
: '';
$actionDone = preg_replace('/[^a-z_]/', '', $actionDone);

// message handling
Expand Down Expand Up @@ -132,8 +134,6 @@ public function __invoke(array $params): string
$hasCheckPageRefresh = true;
}

$isWindows = (bool) $GLOBALS['config']->get('PMA_IS_WINDOWS');

return $this->template->render('setup/home/index', [
'formset' => $params['formset'] ?? '',
'languages' => $languages,
Expand All @@ -142,9 +142,9 @@ public function __invoke(array $params): string
'servers' => $servers,
'pages' => $pages,
'has_check_page_refresh' => $hasCheckPageRefresh,
'eol' => Core::isValid($_SESSION['eol'], 'similar', $isWindows ? 'win' : 'unix')
'eol' => isset($_SESSION['eol']) && is_scalar($_SESSION['eol'])
? $_SESSION['eol']
: ($isWindows ? 'win' : 'unix'),
: ($GLOBALS['config']->get('PMA_IS_WINDOWS') ? 'win' : 'unix'),
]);
}
}
6 changes: 3 additions & 3 deletions libraries/classes/Controllers/Setup/ServersController.php
Expand Up @@ -5,9 +5,9 @@
namespace PhpMyAdmin\Controllers\Setup;

use PhpMyAdmin\Config\Forms\Setup\ServersForm;
use PhpMyAdmin\Core;
use PhpMyAdmin\Setup\FormProcessing;

use function is_numeric;
use function ob_get_clean;
use function ob_start;

Expand All @@ -22,7 +22,7 @@ public function index(array $params): string
{
$pages = $this->getPages();

$id = Core::isValid($params['id'], 'numeric') ? (int) $params['id'] : null;
$id = isset($params['id']) && is_numeric($params['id']) ? (int) $params['id'] : null;
$hasServer = ! empty($id) && $this->config->get('Servers/' . $id) !== null;

if (! $hasServer && ($params['mode'] !== 'revert' && $params['mode'] !== 'edit')) {
Expand All @@ -49,7 +49,7 @@ public function index(array $params): string
*/
public function destroy(array $params): void
{
$id = Core::isValid($params['id'], 'numeric') ? (int) $params['id'] : null;
$id = isset($params['id']) && is_numeric($params['id']) ? (int) $params['id'] : null;

$hasServer = ! empty($id) && $this->config->get('Servers/' . $id) !== null;

Expand Down
Expand Up @@ -16,6 +16,7 @@

use function __;
use function array_merge;
use function is_array;

/**
* Handles creation of the GIS visualizations.
Expand Down Expand Up @@ -92,9 +93,9 @@ public function __invoke(): void
// Get settings if any posted
$visualizationSettings = [];
// Download as PNG/SVG/PDF use _GET and the normal form uses _POST
if (Core::isValid($_POST['visualizationSettings'], 'array')) {
if (isset($_POST['visualizationSettings']) && is_array($_POST['visualizationSettings'])) {
$visualizationSettings = $_POST['visualizationSettings'];
} elseif (Core::isValid($_GET['visualizationSettings'], 'array')) {
} elseif (isset($_GET['visualizationSettings']) && is_array($_GET['visualizationSettings'])) {
$visualizationSettings = $_GET['visualizationSettings'];
}

Expand Down
4 changes: 2 additions & 2 deletions libraries/classes/Controllers/Table/ImportController.php
Expand Up @@ -7,7 +7,6 @@
use PhpMyAdmin\Charsets;
use PhpMyAdmin\Charsets\Charset;
use PhpMyAdmin\Config\PageSettings;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\DbTableExists;
use PhpMyAdmin\Encoding;
Expand All @@ -23,6 +22,7 @@

use function __;
use function intval;
use function is_numeric;

final class ImportController extends AbstractController
{
Expand Down Expand Up @@ -75,7 +75,7 @@ public function __invoke(): void
}

$offset = null;
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
if (isset($_REQUEST['offset']) && is_numeric($_REQUEST['offset'])) {
$offset = intval($_REQUEST['offset']);
}

Expand Down
6 changes: 3 additions & 3 deletions libraries/classes/Controllers/ViewCreateController.php
Expand Up @@ -5,7 +5,6 @@
namespace PhpMyAdmin\Controllers;

use PhpMyAdmin\Controllers\Table\StructureController;
use PhpMyAdmin\Core;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
Expand All @@ -22,6 +21,7 @@
use function explode;
use function htmlspecialchars;
use function in_array;
use function is_array;
use function is_string;
use function sprintf;
use function str_contains;
Expand Down Expand Up @@ -109,7 +109,7 @@ public function __invoke(): void
$sql_query = 'ALTER';
}

if (Core::isValid($_POST['view']['algorithm'], $view_algorithm_options)) {
if (isset($_POST['view']['algorithm']) && in_array($_POST['view']['algorithm'], $view_algorithm_options)) {
$sql_query .= $sep . ' ALGORITHM = ' . $_POST['view']['algorithm'];
}

Expand Down Expand Up @@ -273,7 +273,7 @@ public function __invoke(): void
}
}

if (Core::isValid($_POST['view'], 'array')) {
if (isset($_POST['view']) && is_array($_POST['view'])) {
$view = array_merge($view, $_POST['view']);
}

Expand Down

0 comments on commit 8f2f3ef

Please sign in to comment.