Allow specifying server name displayed in breadcrumbs

This commit is contained in:
Jakub Vrana 2018-02-08 14:27:44 +01:00
parent 76d7560d27
commit a1927d5b71
6 changed files with 24 additions and 2 deletions

View file

@ -39,6 +39,14 @@ class Adminer {
function bruteForceKey() {
return $_SERVER["REMOTE_ADDR"];
}
/** Get server name displayed in breadcrumbs
* @param string
* @return string HTML code or null
*/
function serverName($server) {
return h($server);
}
/** Identifier of selected database
* @return string
@ -922,7 +930,7 @@ class Adminer {
}
$dbs = $_SESSION["db"][$vendor][$server][$username];
foreach (($dbs ? array_keys($dbs) : array("")) as $db) {
echo "<a href='" . h(auth_url($vendor, $server, $username, $db)) . "'>($drivers[$vendor]) " . h($username . ($server != "" ? "@$server" : "") . ($db != "" ? " - $db" : "")) . "</a><br>\n";
echo "<a href='" . h(auth_url($vendor, $server, $username, $db)) . "'>($drivers[$vendor]) " . h($username . ($server != "" ? "@" . $this->serverName($server) : "") . ($db != "" ? " - $db" : "")) . "</a><br>\n";
}
}
}

View file

@ -70,7 +70,8 @@ var thousandsSeparator = '<?php echo js_escape(lang(',')); ?>';
$link = substr(preg_replace('~\b(username|db|ns)=[^&]*&~', '', ME), 0, -1);
echo '<p id="breadcrumb"><a href="' . h($link ? $link : ".") . '">' . $drivers[DRIVER] . '</a> &raquo; ';
$link = substr(preg_replace('~\b(db|ns)=[^&]*&~', '', ME), 0, -1);
$server = (SERVER != "" ? h(SERVER) : lang('Server'));
$server = $adminer->serverName(SERVER);
$server = ($server != "" ? $server : lang('Server'));
if ($breadcrumb === false) {
echo "$server\n";
} else {

View file

@ -12,6 +12,7 @@ PostgreSQL: Cast to string when searching using LIKE (bug #325)
PostgreSQL: Fix condition for selecting no rows
PostgreSQL: Support TRUNCATE+INSERT export
Customization: Support connecting to MySQL via SSL
Customization: Allow specifying server name displayed in breadcrumbs
Adminer 4.6.0 (released 2018-02-05):
Fix counting selected rows after going back to select page

View file

@ -23,6 +23,9 @@ class Adminer {
function bruteForceKey() {
return $_SERVER["REMOTE_ADDR"];
}
function serverName($server) {
}
function database() {
global $connection;

View file

@ -19,6 +19,10 @@ class AdminerLoginServers {
$this->driver = $driver;
}
function serverName($server) {
return h($this->servers[$server]);
}
function login($login, $password) {
// check if server is allowed
foreach ($this->servers as $key => $val) {

View file

@ -107,6 +107,11 @@ class AdminerPlugin extends Adminer {
return $this->_applyPlugin(__FUNCTION__, $args);
}
function serverName($server) {
$args = func_get_args();
return $this->_applyPlugin(__FUNCTION__, $args);
}
function database() {
$args = func_get_args();
return $this->_applyPlugin(__FUNCTION__, $args);