Skip to content

Commit

Permalink
Use the router for transformation_wrapper.php
Browse files Browse the repository at this point in the history
Signed-off-by: Maurício Meneghini Fauth <[email protected]>
  • Loading branch information
MauricioFauth committed Aug 21, 2019
1 parent 2ca7148 commit 632a774
Show file tree
Hide file tree
Showing 13 changed files with 60 additions and 46 deletions.
3 changes: 3 additions & 0 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,9 @@
$routes->addRoute(['GET', 'POST'], '/overview', function () {
require_once ROOT_PATH . 'libraries/entry_points/transformation/overview.php';
});
$routes->addRoute(['GET', 'POST'], '/wrapper', function () {
require_once ROOT_PATH . 'libraries/entry_points/transformation/wrapper.php';
});
});
$routes->addRoute(['GET', 'POST'], '/user_password', function () {
require_once ROOT_PATH . 'libraries/entry_points/user_password.php';
Expand Down
3 changes: 0 additions & 3 deletions libraries/classes/Core.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,6 @@ class Core
*/
public static $goto_whitelist = [
'index.php',
'pdf_pages.php',
'pdf_schema.php',
'transformation_wrapper.php',
];

/**
Expand Down
1 change: 1 addition & 0 deletions libraries/classes/Display/Results.php
Original file line number Diff line number Diff line change
Expand Up @@ -2932,6 +2932,7 @@ private function _getRowValues(
}

$transform_options['wrapper_link'] = Url::getCommon($_url_params);
$transform_options['wrapper_params'] = $_url_params;

$display_params = $this->__get('display_params');

Expand Down
5 changes: 3 additions & 2 deletions libraries/classes/InsertEdit.php
Original file line number Diff line number Diff line change
Expand Up @@ -2541,6 +2541,7 @@ public function transformEditedValues(
: ''
);
$transform_options['wrapper_link'] = Url::getCommon($_url_params);
$transform_options['wrapper_params'] = $_url_params;
$class_name = $this->transformations->getClassName($include_file);
if (class_exists($class_name)) {
/** @var TransformationsPlugin $transformation_plugin */
Expand Down Expand Up @@ -3334,8 +3335,8 @@ private function getHtmlForInsertEditFormColumn(
'transform_key' => $column['Field'],
'where_clause' => $where_clause,
];
$transformation_options['wrapper_link']
= Url::getCommon($_url_params);
$transformation_options['wrapper_link'] = Url::getCommon($_url_params);
$transformation_options['wrapper_params'] = $_url_params;
$current_value = '';
if (isset($current_row[$column['Field']])) {
$current_value = $current_row[$column['Field']];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
namespace PhpMyAdmin\Plugins\Transformations\Abs;

use PhpMyAdmin\Plugins\TransformationsPlugin;
use PhpMyAdmin\Url;
use stdClass;

/**
Expand Down Expand Up @@ -68,16 +69,19 @@ public function applyTransformation($buffer, array $options = [], ?stdClass $met
}
}

return sprintf(
'<a href="transformation_wrapper.php%s&amp;ct=application'
. '/octet-stream&amp;cn=%s" title="%s" class="disableAjax">%s</a>',
$options['wrapper_link'],
htmlspecialchars(urlencode($cn)),
htmlspecialchars($cn),
htmlspecialchars($cn)
$link = '<a href="' . Url::getFromRoute(
'/transformation/wrapper',
array_merge($options['wrapper_params'], [
'ct' => 'application/octet-stream',
'cn' => $cn,
])
);
}
$link .= '" title="' . htmlspecialchars($cn);
$link .= '" class="disableAjax">' . htmlspecialchars($cn);
$link .= '</a>';

return $link;
}

/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
namespace PhpMyAdmin\Plugins\Transformations\Abs;

use PhpMyAdmin\Plugins\TransformationsPlugin;
use PhpMyAdmin\Url;
use stdClass;

/**
Expand Down Expand Up @@ -45,8 +46,12 @@ public function applyTransformation($buffer, array $options = [], ?stdClass $met
{
// must disable the page loader, see
// https://wiki.phpmyadmin.net/pma/Page_loader#Bypassing_the_page_loader
return '<a class="disableAjax" target="_blank" rel="noopener noreferrer" href="transformation_wrapper.php'
. $options['wrapper_link'] . '" alt="[' . htmlspecialchars($buffer) . ']">[BLOB]</a>';
$link = '<a class="disableAjax" target="_blank" rel="noopener noreferrer" href="';
$link .= Url::getFromRoute('/transformation/wrapper', $options['wrapper_params']);
$link .= '" alt="[' . htmlspecialchars($buffer);
$link .= ']">[BLOB]</a>';

return $link;
}

/* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
namespace PhpMyAdmin\Plugins\Transformations\Abs;

use PhpMyAdmin\Plugins\IOTransformationsPlugin;
use PhpMyAdmin\Url;
use stdClass;

/**
Expand Down Expand Up @@ -82,7 +83,7 @@ public function getInputHtml(
. '" value="' . bin2hex($value) . '">';
$html .= '<input type="hidden" name="fields' . $column_name_appendix
. '" value="' . bin2hex($value) . '">';
$src = 'transformation_wrapper.php' . $options['wrapper_link'];
$src = Url::getFromRoute('/transformation/wrapper', $options['wrapper_params']);
}
$html .= '<img src="' . $src . '" width="'
. (isset($options[0]) ? intval($options[0]) : '100') . '" height="'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
namespace PhpMyAdmin\Plugins\Transformations\Abs;

use PhpMyAdmin\Plugins\TransformationsPlugin;
use PhpMyAdmin\Url;
use stdClass;

/**
Expand Down Expand Up @@ -48,16 +49,16 @@ public function applyTransformation($buffer, array $options = [], ?stdClass $met
$options = $this->getOptions($options, $cfg['DefaultTransformations']['Inline']);

if (PMA_IS_GD2) {
return '<a href="transformation_wrapper.php'
. $options['wrapper_link']
. '" rel="noopener noreferrer" target="_blank"><img src="transformation_wrapper.php'
. $options['wrapper_link'] . '&amp;resize=jpeg&amp;newWidth='
. intval($options[0]) . '&amp;newHeight='
. intval($options[1])
return '<a href="' . Url::getFromRoute('/transformation/wrapper', $options['wrapper_params'])
. '" rel="noopener noreferrer" target="_blank"><img src="'
. Url::getFromRoute('/transformation/wrapper', array_merge($options['wrapper_params'], [
'resize' => 'jpeg',
'newWidth' => (int) $options[0],
'newHeight' => (int) $options[1],
]))
. '" alt="[' . htmlspecialchars($buffer) . ']" border="0"></a>';
} else {
return '<img src="transformation_wrapper.php'
. $options['wrapper_link']
return '<img src="' . Url::getFromRoute('/transformation/wrapper', $options['wrapper_params'])
. '" alt="[' . htmlspecialchars($buffer) . ']" width="320" height="240">';
}
}
Expand Down
2 changes: 1 addition & 1 deletion libraries/classes/Plugins/TransformationsPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ abstract public function applyTransformation(
* @param string[] $options List of passed options
* @param string[] $defaults List of default values
*
* @return string[] List of options possibly filled in by defaults.
* @return array List of options possibly filled in by defaults.
*/
public function getOptions(array $options, array $defaults)
{
Expand Down
1 change: 1 addition & 0 deletions libraries/config.default.php
Original file line number Diff line number Diff line change
Expand Up @@ -3259,6 +3259,7 @@
100,
];
$cfg['DefaultTransformations']['Inline']['wrapper_link'] = null;
$cfg['DefaultTransformations']['Inline']['wrapper_params'] = [];

/**
* Default transformations for TextImageLink
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,14 @@
use PhpMyAdmin\Response;
use PhpMyAdmin\Transformations;

if (! defined('ROOT_PATH')) {
define('ROOT_PATH', __DIR__ . DIRECTORY_SEPARATOR);
if (! defined('PHPMYADMIN')) {
exit;
}

global $cn, $containerBuilder, $db, $table, $transform_key;

define('IS_TRANSFORMATION_WRAPPER', true);

require_once ROOT_PATH . 'libraries/common.inc.php';

/** @var Response $response */
$response = $containerBuilder->get(Response::class);

Expand Down
3 changes: 0 additions & 3 deletions test/classes/CoreTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ class CoreTest extends PmaTestCase
{
protected $goto_whitelist = [
'index.php',
'pdf_pages.php',
'pdf_schema.php',
'transformation_wrapper.php',
];

/**
Expand Down
33 changes: 19 additions & 14 deletions test/classes/Plugins/Transformations/TransformationPluginsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ public function multiDataProvider()
'<input type="hidden" name="fields_prev2ndtest" '
. 'value="736f6d657468696e67"><input type="hidden" '
. 'name="fields2ndtest" value="736f6d657468696e67">'
. '<img src="transformation_wrapper.php?table=a" width="100" '
. '<img src="index.php?route=/transformation/wrapper&amp;key=value&amp;lang=en" width="100" '
. 'height="100" alt="Image preview here"><br><input type="file" '
. 'name="fields_upload2ndtest" accept="image/*" '
. 'class="image-upload">',
Expand All @@ -142,6 +142,7 @@ public function multiDataProvider()
'2ndtest',
[
'wrapper_link' => '?table=a',
'wrapper_params' => ['key' => 'value'],
],
'something',
'ltr',
Expand Down Expand Up @@ -785,10 +786,11 @@ public function transformationDataProvider()
[
0 => "filename",
'wrapper_link' => 'PMA_wrapper_link',
'wrapper_params' => ['key' => 'value'],
],
],
'<a href="transformation_wrapper.phpPMA_wrapper_link'
. '&amp;ct=application/octet-stream&amp;cn=filename" '
'<a href="index.php?route=/transformation/wrapper&amp;key=value'
. '&amp;ct=application%2Foctet-stream&amp;cn=filename&amp;lang=en" '
. 'title="filename" class="disableAjax">filename</a>',
],
[
Expand All @@ -799,10 +801,11 @@ public function transformationDataProvider()
0 => "",
1 => 'cloumn',
'wrapper_link' => 'PMA_wrapper_link',
'wrapper_params' => ['key' => 'value'],
],
],
'<a href="transformation_wrapper.phpPMA_wrapper_link&amp;'
. 'ct=application/octet-stream&amp;cn=binary_file.dat" '
'<a href="index.php?route=/transformation/wrapper&amp;key=value'
. '&amp;ct=application%2Foctet-stream&amp;cn=binary_file.dat&amp;lang=en" '
. 'title="binary_file.dat" class="disableAjax">binary_file.dat</a>',
],
[
Expand Down Expand Up @@ -837,10 +840,11 @@ public function transformationDataProvider()
0 => "./image/",
1 => "200",
"wrapper_link" => "PMA_wrapper_link",
'wrapper_params' => ['key' => 'value'],
],
],
'<a class="disableAjax" target="_blank" rel="noopener noreferrer"'
. ' href="transformation_wrapper.phpPMA_wrapper_link"'
. ' href="index.php?route=/transformation/wrapper&amp;key=value&amp;lang=en"'
. ' alt="[PMA_IMAGE_LINK]">[BLOB]</a>',
],
[
Expand Down Expand Up @@ -1056,12 +1060,13 @@ public function transformationDataProvider()
0 => "./image/",
1 => "200",
"wrapper_link" => "PMA_wrapper_link",
'wrapper_params' => ['key' => 'value'],
],
],
'<a href="transformation_wrapper.phpPMA_wrapper_link" '
. 'rel="noopener noreferrer" target="_blank"><img src="transformation_wrapper.php'
. 'PMA_wrapper_link&amp;resize=jpeg&amp;newWidth=0&amp;'
. 'newHeight=200" alt="[PMA_JPEG_Inline]" border="0"></a>',
'<a href="index.php?route=/transformation/wrapper&amp;key=value&amp;lang=en" '
. 'rel="noopener noreferrer" target="_blank"><img src="index.php?route=/transformation/wrapper'
. '&amp;key=value&amp;resize=jpeg&amp;newWidth=0&amp;'
. 'newHeight=200&amp;lang=en" alt="[PMA_JPEG_Inline]" border="0"></a>',
];
$result[] = [
new Image_PNG_Inline(),
Expand All @@ -1071,12 +1076,12 @@ public function transformationDataProvider()
0 => "./image/",
1 => "200",
"wrapper_link" => "PMA_wrapper_link",
'wrapper_params' => ['key' => 'value'],
],
],
'<a href="transformation_wrapper.phpPMA_wrapper_link"'
. ' rel="noopener noreferrer" target="_blank"><img src="transformation_wrapper.php'
. 'PMA_wrapper_link&amp;'
. 'resize=jpeg&amp;newWidth=0&amp;newHeight=200" '
'<a href="index.php?route=/transformation/wrapper&amp;key=value&amp;lang=en"'
. ' rel="noopener noreferrer" target="_blank"><img src="index.php?route=/transformation/wrapper'
. '&amp;key=value&amp;resize=jpeg&amp;newWidth=0&amp;newHeight=200&amp;lang=en" '
. 'alt="[PMA_PNG_Inline]" border="0"></a>',
];
}
Expand Down

0 comments on commit 632a774

Please sign in to comment.