Merge pull request #13602 from mauriciofauth/tracking

Refactor tracking functions to static methods
This commit is contained in:
Maurício Meneghini Fauth 2017-08-21 14:02:26 -03:00 committed by GitHub
commit f36ed7237c
5 changed files with 1821 additions and 1816 deletions

View File

@ -5,15 +5,16 @@
*
* @package PhpMyAdmin
*/
use PhpMyAdmin\Message;
use PhpMyAdmin\Response;
use PhpMyAdmin\Tracker;
use PhpMyAdmin\Tracking;
use PhpMyAdmin\Util;
/**
* Run common work
*/
require_once 'libraries/common.inc.php';
require_once './libraries/tracking.lib.php';
require_once 'libraries/display_create_table.lib.php';
//Get some js files needed for Ajax requests
@ -42,21 +43,21 @@ list(
$tooltip_truename,
$tooltip_aliasname,
$pos
) = PhpMyAdmin\Util::getDbInfo($db, isset($sub_part) ? $sub_part : '');
) = Util::getDbInfo($db, isset($sub_part) ? $sub_part : '');
// Work to do?
// (here, do not use $_REQUEST['db] as it can be crafted)
if (isset($_REQUEST['delete_tracking']) && isset($_REQUEST['table'])) {
Tracker::deleteTracking($GLOBALS['db'], $_REQUEST['table']);
PhpMyAdmin\Message::success(
Message::success(
__('Tracking data deleted successfully.')
)->display();
} elseif (isset($_REQUEST['submit_create_version'])) {
PMA_createTrackingForMultipleTables($_REQUEST['selected']);
PhpMyAdmin\Message::success(
Tracking::createTrackingForMultipleTables($_REQUEST['selected']);
Message::success(
sprintf(
__(
'Version %1$s was created for selected tables,'
@ -74,13 +75,13 @@ if (isset($_REQUEST['delete_tracking']) && isset($_REQUEST['table'])) {
foreach ($_REQUEST['selected_tbl'] as $table) {
Tracker::deleteTracking($GLOBALS['db'], $table);
}
PhpMyAdmin\Message::success(
Message::success(
__('Tracking data deleted successfully.')
)->display();
} elseif ($_REQUEST['submit_mult'] == 'track') {
echo PMA_getHtmlForDataDefinitionAndManipulationStatements(
echo Tracking::getHtmlForDataDefinitionAndManipulationStatements(
'db_tracking.php' . $url_query,
0,
$GLOBALS['db'],
@ -89,7 +90,7 @@ if (isset($_REQUEST['delete_tracking']) && isset($_REQUEST['table'])) {
exit;
}
} else {
PhpMyAdmin\Message::notice(
Message::notice(
__('No tables selected.')
)->display();
}
@ -113,8 +114,8 @@ $cfgRelation = PMA_getRelationsParam();
// Prepare statement to get HEAD version
$all_tables_query = ' SELECT table_name, MAX(version) as version FROM ' .
PhpMyAdmin\Util::backquote($cfgRelation['db']) . '.' .
PhpMyAdmin\Util::backquote($cfgRelation['tracking']) .
Util::backquote($cfgRelation['db']) . '.' .
Util::backquote($cfgRelation['tracking']) .
' WHERE db_name = \'' . $GLOBALS['dbi']->escapeString($_REQUEST['db']) .
'\' ' .
' GROUP BY table_name' .
@ -126,17 +127,17 @@ $all_tables_result = PMA_queryAsControlUser($all_tables_query);
if (is_object($all_tables_result)
&& $GLOBALS['dbi']->numRows($all_tables_result) > 0
) {
PMA_displayTrackedTables(
Tracking::displayTrackedTables(
$GLOBALS['db'], $all_tables_result, $url_query, $pmaThemeImage,
$text_dir, $cfgRelation
);
}
$untracked_tables = PMA_getUntrackedTables($GLOBALS['db']);
$untracked_tables = Tracking::getUntrackedTables($GLOBALS['db']);
// If untracked tables exist
if (count($untracked_tables) > 0) {
PMA_displayUntrackedTables(
Tracking::displayUntrackedTables(
$GLOBALS['db'], $untracked_tables, $url_query, $pmaThemeImage, $text_dir
);
}
@ -147,5 +148,5 @@ if (count($data['ddlog']) > 0) {
$log .= '# ' . $entry['date'] . ' ' . $entry['username'] . "\n"
. $entry['statement'] . "\n";
}
echo PhpMyAdmin\Util::getMessage(__('Database Log'), $log);
echo Util::getMessage(__('Database Log'), $log);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,15 +5,13 @@
*
* @package PhpMyAdmin
*/
// Run common work
use PhpMyAdmin\Message;
use PhpMyAdmin\Tracker;
use PhpMyAdmin\Tracking;
use PhpMyAdmin\Response;
require_once './libraries/common.inc.php';
require_once './libraries/tracking.lib.php';
//Get some js files needed for Ajax requests
$response = Response::getInstance();
$header = $response->getHeader();
@ -31,7 +29,7 @@ if (Tracker::isActive()
&& ! (isset($_REQUEST['report_export'])
&& $_REQUEST['export_type'] == 'sqldumpfile')
) {
$msg = PhpMyAdmin\Message::notice(
$msg = Message::notice(
sprintf(
__('Tracking of %s is activated.'),
htmlspecialchars($GLOBALS["db"] . '.' . $GLOBALS["table"])
@ -80,14 +78,14 @@ if (isset($_REQUEST['report']) || isset($_REQUEST['report_export'])) {
// Prepare export
if (isset($_REQUEST['report_export'])) {
$entries = PMA_getEntries($data, $filter_ts_from, $filter_ts_to, $filter_users);
$entries = Tracking::getEntries($data, $filter_ts_from, $filter_ts_to, $filter_users);
}
// Export as file download
if (isset($_REQUEST['report_export'])
&& $_REQUEST['export_type'] == 'sqldumpfile'
) {
PMA_exportAsFileDownload($entries);
Tracking::exportAsFileDownload($entries);
}
$html = '<br />';
@ -99,59 +97,59 @@ if (isset($_REQUEST['submit_mult'])) {
if (! empty($_REQUEST['selected_versions'])) {
if ($_REQUEST['submit_mult'] == 'delete_version') {
foreach ($_REQUEST['selected_versions'] as $version) {
PMA_deleteTrackingVersion($version);
Tracking::deleteTrackingVersion($version);
}
$html .= PhpMyAdmin\Message::success(
$html .= Message::success(
__('Tracking versions deleted successfully.')
)->getDisplay();
}
} else {
$html .= PhpMyAdmin\Message::notice(
$html .= Message::notice(
__('No versions selected.')
)->getDisplay();
}
}
if (isset($_REQUEST['submit_delete_version'])) {
$html .= PMA_deleteTrackingVersion($_REQUEST['version']);
$html .= Tracking::deleteTrackingVersion($_REQUEST['version']);
}
// Create tracking version
if (isset($_REQUEST['submit_create_version'])) {
$html .= PMA_createTrackingVersion();
$html .= Tracking::createTrackingVersion();
}
// Deactivate tracking
if (isset($_REQUEST['toggle_activation'])
&& $_REQUEST['toggle_activation'] == 'deactivate_now'
) {
$html .= PMA_changeTracking('deactivate');
$html .= Tracking::changeTracking('deactivate');
}
// Activate tracking
if (isset($_REQUEST['toggle_activation'])
&& $_REQUEST['toggle_activation'] == 'activate_now'
) {
$html .= PMA_changeTracking('activate');
$html .= Tracking::changeTracking('activate');
}
// Export as SQL execution
if (isset($_REQUEST['report_export']) && $_REQUEST['export_type'] == 'execution') {
$sql_result = PMA_exportAsSQLExecution($entries);
$msg = PhpMyAdmin\Message::success(__('SQL statements executed.'));
$sql_result = Tracking::exportAsSqlExecution($entries);
$msg = Message::success(__('SQL statements executed.'));
$html .= $msg->getDisplay();
}
// Export as SQL dump
if (isset($_REQUEST['report_export']) && $_REQUEST['export_type'] == 'sqldump') {
$html .= PMA_exportAsSQLDump($entries);
$html .= Tracking::exportAsSqlDump($entries);
}
/*
* Schema snapshot
*/
if (isset($_REQUEST['snapshot'])) {
$html .= PMA_getHtmlForSchemaSnapshot($url_query);
$html .= Tracking::getHtmlForSchemaSnapshot($url_query);
}
// end of snapshot report
@ -161,11 +159,11 @@ if (isset($_REQUEST['snapshot'])) {
if (isset($_REQUEST['report'])
&& (isset($_REQUEST['delete_ddlog']) || isset($_REQUEST['delete_dmlog']))
) {
$html .= PMA_deleteTrackingReportRows($data);
$html .= Tracking::deleteTrackingReportRows($data);
}
if (isset($_REQUEST['report']) || isset($_REQUEST['report_export'])) {
$html .= PMA_getHtmlForTrackingReport(
$html .= Tracking::getHtmlForTrackingReport(
$url_query, $data, $url_params, $selection_schema, $selection_data,
$selection_both, $filter_ts_to, $filter_ts_from, $filter_users
);
@ -175,9 +173,9 @@ if (isset($_REQUEST['report']) || isset($_REQUEST['report_export'])) {
/*
* List selectable tables
*/
$selectable_tables_sql_result = PMA_getSQLResultForSelectableTables();
$selectable_tables_sql_result = Tracking::getSqlResultForSelectableTables();
if ($GLOBALS['dbi']->numRows($selectable_tables_sql_result) > 0) {
$html .= PMA_getHtmlForSelectableTables(
$html .= Tracking::getHtmlForSelectableTables(
$selectable_tables_sql_result, $url_query
);
}
@ -186,10 +184,10 @@ $html .= '<br />';
/*
* List versions of current table
*/
$sql_result = PMA_getListOfVersionsOfTable();
$last_version = PMA_getTableLastVersionNumber($sql_result);
$sql_result = Tracking::getListOfVersionsOfTable();
$last_version = Tracking::getTableLastVersionNumber($sql_result);
if ($last_version > 0) {
$html .= PMA_getHtmlForTableVersionDetails(
$html .= Tracking::getHtmlForTableVersionDetails(
$sql_result, $last_version, $url_params,
$url_query, $pmaThemeImage, $text_dir
);
@ -197,7 +195,7 @@ if ($last_version > 0) {
$type = $GLOBALS['dbi']->getTable($GLOBALS['db'], $GLOBALS['table'])
->isView() ? 'view' : 'table';
$html .= PMA_getHtmlForDataDefinitionAndManipulationStatements(
$html .= Tracking::getHtmlForDataDefinitionAndManipulationStatements(
'tbl_tracking.php' . $url_query,
$last_version,
$GLOBALS['db'],

View File

@ -1,30 +1,25 @@
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Tests for libraries/tracking.lib.php
* Tests for PhpMyAdmin\Tracking
*
* @package PhpMyAdmin-test
*/
namespace PhpMyAdmin\Tests;
/*
* Include to test.
*/
use PhpMyAdmin\Theme;
use PhpMyAdmin\Tracking;
use PhpMyAdmin\Url;
require_once 'libraries/tracking.lib.php';
require_once 'libraries/database_interface.inc.php';
require_once 'libraries/relation.lib.php';
/**
* Tests for libraries/tracking.lib.php
* Tests for PhpMyAdmin\Tracking
*
* @package PhpMyAdmin-test
*/
class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
class TrackingTest extends \PHPUnit_Framework_TestCase
{
/**
@ -77,7 +72,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_filterTracking() method.
* Tests for Tracking::filterTracking() method.
*
* @return void
* @test
@ -100,7 +95,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$filter_ts_to = 999999999999;
$filter_users = array("username1");
$ret = PMA_filterTracking(
$ret = Tracking::filterTracking(
$data, $filter_ts_from, $filter_ts_to, $filter_users
);
@ -115,7 +110,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_extractTableNames() method from nested table_list.
* Tests for Tracking::extractTableNames() method from nested table_list.
*
* @return void
* @test
@ -139,7 +134,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
)
)
);
$untracked_tables = PMA_extractTableNames($table_list, 'db', true);
$untracked_tables = Tracking::extractTableNames($table_list, 'db', true);
$this->assertContains(
"hello_world",
$untracked_tables
@ -155,7 +150,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForDataDefinitionAndManipulationStatements() method.
* Tests for Tracking::getHtmlForDataDefinitionAndManipulationStatements() method.
*
* @return void
* @test
@ -164,7 +159,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
{
$url_query = "url_query";
$last_version = 10;
$html = PMA_getHtmlForDataDefinitionAndManipulationStatements(
$html = Tracking::getHtmlForDataDefinitionAndManipulationStatements(
$url_query, $last_version, $GLOBALS['db'], array($GLOBALS['table'])
);
@ -207,7 +202,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForActivateDeactivateTracking() method.
* Tests for Tracking::getHtmlForActivateDeactivateTracking() method.
*
* @return void
* @test
@ -216,7 +211,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
{
$url_query = "url_query";
$last_version = "10";
$html = PMA_getHtmlForActivateDeactivateTracking(
$html = Tracking::getHtmlForActivateDeactivateTracking(
'activate', $url_query, $last_version
);
@ -244,7 +239,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$html
);
$html = PMA_getHtmlForActivateDeactivateTracking(
$html = Tracking::getHtmlForActivateDeactivateTracking(
'deactivate', $url_query, $last_version
);
@ -274,7 +269,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getTableLastVersionNumber() method.
* Tests for Tracking::getTableLastVersionNumber() method.
*
* @return void
* @test
@ -282,7 +277,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
public function testPMAGetTableLastVersionNumber()
{
$sql_result = "sql_result";
$last_version = PMA_getTableLastVersionNumber($sql_result);
$last_version = Tracking::getTableLastVersionNumber($sql_result);
$this->assertEquals(
"10",
@ -291,14 +286,14 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getSQLResultForSelectableTables() method.
* Tests for Tracking::getSqlResultForSelectableTables() method.
*
* @return void
* @test
*/
public function testPMAGetSQLResultForSelectableTables()
{
$ret = PMA_getSQLResultForSelectableTables();
$ret = Tracking::getSqlResultForSelectableTables();
$this->assertEquals(
true,
@ -307,7 +302,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForColumns() method.
* Tests for Tracking::getHtmlForColumns() method.
*
* @return void
* @test
@ -335,7 +330,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
),
);
$html = PMA_getHtmlForColumns($columns);
$html = Tracking::getHtmlForColumns($columns);
$this->assertContains(
__('Column'),
@ -406,14 +401,14 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getListOfVersionsOfTable() method.
* Tests for Tracking::getListOfVersionsOfTable() method.
*
* @return void
* @test
*/
public function testPMAGetListOfVersionsOfTable()
{
$ret = PMA_getListOfVersionsOfTable();
$ret = Tracking::getListOfVersionsOfTable();
$this->assertEquals(
true,
@ -422,7 +417,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForTableVersionDetails() method.
* Tests for Tracking::getHtmlForTableVersionDetails() method.
*
* @return void
* @test
@ -461,7 +456,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$GLOBALS['dbi'] = $dbi;
$ret = PMA_getHtmlForTableVersionDetails(
$ret = Tracking::getHtmlForTableVersionDetails(
$sql_result, $last_version, $url_params, $url_query,
$pmaThemeImage, $text_dir
);
@ -524,7 +519,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForSelectableTables() method.
* Tests for Tracking::getHtmlForSelectableTables() method.
*
* @return void
* @test
@ -559,7 +554,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$GLOBALS['dbi'] = $dbi;
$ret = PMA_getHtmlForSelectableTables(
$ret = Tracking::getHtmlForSelectableTables(
$selectable_tables_sql_result, $url_query
);
@ -577,7 +572,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForTrackingReport() method.
* Tests for Tracking::getHtmlForTrackingReport() method.
*
* @return void
* @test
@ -603,7 +598,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$filter_ts_from = array();
$filter_users = array();
$html = PMA_getHtmlForTrackingReport(
$html = Tracking::getHtmlForTrackingReport(
$url_query, $data, $url_params,
$selection_schema, $selection_data,
$selection_both, $filter_ts_to,
@ -679,7 +674,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForDataManipulationStatements() method.
* Tests for Tracking::getHtmlForDataManipulationStatements() method.
*
* @return void
* @test
@ -705,7 +700,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$filter_ts_from = 0;
$filter_users = array("*");
$html = PMA_getHtmlForDataManipulationStatements(
$html = Tracking::getHtmlForDataManipulationStatements(
$data, $filter_users,
$filter_ts_from, $filter_ts_to, $url_params,
$ddlog_count, $drop_image_or_text
@ -738,7 +733,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForDataDefinitionStatements() method.
* Tests for Tracking::getHtmlForDataDefinitionStatements() method.
*
* @return void
* @test
@ -764,7 +759,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$url_params = array();
$drop_image_or_text = "text";
list($html, $count) = PMA_getHtmlForDataDefinitionStatements(
list($html, $count) = Tracking::getHtmlForDataDefinitionStatements(
$data, $filter_users,
$filter_ts_from, $filter_ts_to, $url_params, $drop_image_or_text
);
@ -803,7 +798,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getHtmlForIndexes() method.
* Tests for Tracking::getHtmlForIndexes() method.
*
* @return void
* @test
@ -824,7 +819,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
),
);
$html = PMA_getHtmlForIndexes($indexs);
$html = Tracking::getHtmlForIndexes($indexs);
$this->assertContains(
__('Indexes'),
@ -878,7 +873,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
}
/**
* Tests for PMA_getTrackingSet() method.
* Tests for Tracking::getTrackingSet() method.
*
* @return void
* @test
@ -896,7 +891,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$_REQUEST['delete'] = true;
$_REQUEST['truncate'] = true;
$tracking_set = PMA_getTrackingSet();
$tracking_set = Tracking::getTrackingSet();
$this->assertEquals(
'RENAME TABLE,CREATE TABLE,DROP TABLE,DROP INDEX,INSERT,DELETE,TRUNCATE',
$tracking_set
@ -914,7 +909,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$_REQUEST['delete'] = false;
$_REQUEST['truncate'] = false;
$tracking_set = PMA_getTrackingSet();
$tracking_set = Tracking::getTrackingSet();
$this->assertEquals(
'ALTER TABLE,CREATE INDEX,UPDATE',
$tracking_set
@ -923,7 +918,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
/**
* Tests for PMA_getEntries() method.
* Tests for Tracking::getEntries() method.
*
* @return void
* @test
@ -952,7 +947,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$filter_ts_to = 9999999999;
$filter_ts_from = 0;
$entries = PMA_getEntries(
$entries = Tracking::getEntries(
$data, $filter_ts_from, $filter_ts_to, $filter_users
);
$this->assertEquals(
@ -965,4 +960,3 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
);
}
}