From e8a29cf134f7df1a1e7637083f6d7adf64949b7c Mon Sep 17 00:00:00 2001 From: jmontoya <jmontoya@ispconfig3> Date: Wed, 04 Aug 2010 12:57:28 -0400 Subject: [PATCH] Adding new functions to the Remoting class --- interface/web/sites/tools.inc.php | 63 ++++++++++++++++++------------- 1 files changed, 37 insertions(+), 26 deletions(-) diff --git a/interface/web/sites/tools.inc.php b/interface/web/sites/tools.inc.php index d2a6217..1f707ab 100644 --- a/interface/web/sites/tools.inc.php +++ b/interface/web/sites/tools.inc.php @@ -27,43 +27,51 @@ 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') { + /* FS#1234 - CLIENTNAME value when in reseller account - need check this workarround impact */ + //if($_SESSION["s"]["user"]["typ"] != 'admin' || $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + 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 { // Get the group-id from the data itself if(isset($dataRecord['client_group_id'])) { $client_group_id = $dataRecord['client_group_id']; + } elseif (isset($dataRecord['parent_domain_id'])) { + $tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = " . $dataRecord['parent_domain_id']); + $client_group_id = $tmp['sys_groupid']; } else { $client_group_id = $dataRecord['sys_groupid']; } } + /* get the name of the client */ $tmp = $app->db->queryOneRecord("SELECT name FROM sys_group WHERE groupid = " . $client_group_id); $clientName = $tmp['name']; @@ -75,14 +83,17 @@ 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 { // Get the group-id from the data itself if(isset($dataRecord['client_group_id'])) { $client_group_id = $dataRecord['client_group_id']; - } else { + } elseif (isset($dataRecord['parent_domain_id'])) { + $tmp = $app->db->queryOneRecord("SELECT sys_groupid FROM web_domain WHERE domain_id = " . $dataRecord['parent_domain_id']); + $client_group_id = $tmp['sys_groupid']; + } else { $client_group_id = $dataRecord['sys_groupid']; } } @@ -95,9 +106,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