From e28564dbde4f922a6a8263e3dea32d56b60b5b5b Mon Sep 17 00:00:00 2001 From: tbrehm <t.brehm@ispconfig.org> Date: Wed, 16 Jun 2010 11:41:46 -0400 Subject: [PATCH] Implemented: FS#468 - Client name conversion in FTP user too restricted --- interface/web/sites/tools.inc.php | 51 +++++++++++++++++++++++++++------------------------ 1 files changed, 27 insertions(+), 24 deletions(-) diff --git a/interface/web/sites/tools.inc.php b/interface/web/sites/tools.inc.php index 81de9f6..1e87ef9 100644 --- a/interface/web/sites/tools.inc.php +++ b/interface/web/sites/tools.inc.php @@ -27,33 +27,36 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -function replacePrefix($name, $dataRecord){ - $keywordlist=array('CLIENTNAME','CLIENTID'); +function replacePrefix($name, $dataRecord) { + // No input -> no possible output -> go out! + if ($name=="") return ""; - if ($name != '') { - foreach ($keywordlist as $keyword) { - if (substr_count($name, '['.$keyword.']') > 0) { - switch ($keyword) { - case 'CLIENTNAME': - $res=str_replace('['.$keyword.']', getClientName($dataRecord), $name); - break; - case 'CLIENTID': - $res=str_replace('['.$keyword.']', getClientID($dataRecord), $name); - break; - } - } - } - } else { - $res=''; - } - - return $res; + // Array containing keys to search + $keywordlist=array('CLIENTNAME','CLIENTID','DOMAINID'); + + // Try to match the key within the string + foreach ($keywordlist as $keyword) { + if (substr_count($name, '['.$keyword.']') > 0) { + switch ($keyword) { + case 'CLIENTNAME': + $name=str_replace('['.$keyword.']', getClientName($dataRecord),$name); + break; + case 'CLIENTID': + $name=str_replace('['.$keyword.']', getClientID($dataRecord),$name); + break; + case 'DOMAINID': + $name=str_replace('['.$keyword.']', $dataRecord['parent_domain_id'],$name); + break; + } + } + } + return $name; } function getClientName($dataRecord) { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') { + if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { // Get the group-id of the user $client_group_id = $_SESSION["s"]["user"]["default_group"]; } else { @@ -79,7 +82,7 @@ function getClientID($dataRecord) { global $app, $conf; - if($_SESSION["s"]["user"]["typ"] != 'admin') { + if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { // Get the group-id of the user $client_group_id = $_SESSION["s"]["user"]["default_group"]; } else { @@ -102,9 +105,9 @@ function convertClientName($name){ /** - * only allow 'a'..'z', '_', '0'..'9' + * only allow 'a'..'z', '_', '-', '0'..'9' */ - $allowed = 'abcdefghijklmnopqrstuvwxyz0123456789_'; + $allowed = 'abcdefghijklmnopqrstuvwxyz0123456789_-'; $res = ''; $name = strtolower(trim($name)); for ($i=0; $i < strlen($name); $i++){ -- Gitblit v1.9.1