From b4284d33cd252addb69963e07c4a90b3b22a445e Mon Sep 17 00:00:00 2001 From: Till Brehm Date: Sat, 8 Feb 2014 19:17:31 +0100 Subject: [PATCH] Fixed a problem in domain module. --- interface/web/client/domain_edit.php | 58 ++++++++++++++++--- .../web/client/templates/domain_edit.htm | 2 - 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/interface/web/client/domain_edit.php b/interface/web/client/domain_edit.php index 07929f901e..7b24e46f06 100644 --- a/interface/web/client/domain_edit.php +++ b/interface/web/client/domain_edit.php @@ -52,14 +52,6 @@ $app->load('tform_actions'); $lng_file = 'lib/lang/'.$_SESSION['s']['language'].'.lng'; include $lng_file; -if(!$app->tform->checkClientLimit('limit_domainmodule')) { - $app->uses('ini_parser,getconf'); - $settings = $app->getconf->get_global_config('domains'); - if ($settings['use_domain_module'] == 'y') { - $app->error($settings['new_domain_html']); - } -} - class page_action extends tform_actions { @@ -75,6 +67,16 @@ class page_action extends tform_actions { function onShowEnd() { global $app, $conf, $wb; + + if($_SESSION["s"]["user"]["typ"] != 'admin' && $this->id == 0) { + if(!$app->tform->checkClientLimit('limit_domainmodule')) { + $app->uses('ini_parser,getconf'); + $settings = $app->getconf->get_global_config('domains'); + if ($settings['use_domain_module'] == 'y') { + $app->error($settings['new_domain_html']); + } + } + } if($_SESSION["s"]["user"]["typ"] == 'admin') { // Getting Clients of the user @@ -92,6 +94,28 @@ class page_action extends tform_actions { } $app->tpl->setVar("client_group_id", $client_select); + } else { + // Get the limits of the client + $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]); + $client = $app->db->queryOneRecord("SELECT client.client_id, client.contact_name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname, sys_group.name FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); + + // Fill the client select field + $sql = "SELECT sys_group.groupid, sys_group.name, CONCAT(IF(client.company_name != '', CONCAT(client.company_name, ' :: '), ''), client.contact_name, ' (', client.username, IF(client.customer_no != '', CONCAT(', ', client.customer_no), ''), ')') as contactname FROM sys_group, client WHERE sys_group.client_id = client.client_id AND client.parent_client_id = ".$client['client_id']." ORDER BY sys_group.name"; + //die($sql); + $records = $app->db->queryAllRecords($sql); + $tmp = $app->db->queryOneRecord("SELECT groupid FROM sys_group WHERE client_id = ".$app->functions->intval($client['client_id'])); + $client_select = ''; + //$tmp_data_record = $app->tform->getDataRecord($this->id); + if(is_array($records)) { + $selected_client_group_id = 0; // needed to get list of PHP versions + foreach( $records as $rec) { + if(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']) && !$selected_client_group_id) $selected_client_group_id = $rec["groupid"]; + $selected = @(is_array($this->dataRecord) && ($rec["groupid"] == $this->dataRecord['client_group_id'] || $rec["groupid"] == $this->dataRecord['sys_groupid']))?'SELECTED':''; + if($selected == 'SELECTED') $selected_client_group_id = $rec["groupid"]; + $client_select .= "\r\n"; + } + } + $app->tpl->setVar("client_group_id", $client_select); } if($this->id > 0) { @@ -127,6 +151,24 @@ class page_action extends tform_actions { */ $this->dataRecord = $app->tform->getDataRecord($this->id); } + } elseif ($_SESSION["s"]["user"]["typ"] != 'admin' && $app->auth->has_clients($_SESSION['s']['user']['userid'])) { + if ($this->id == 0) { + /* + * We create a new record + */ + // Check if the user is empty + if(isset($this->dataRecord['client_group_id']) && $this->dataRecord['client_group_id'] == 0) { + $app->tform->errorMessage .= $wb['error_client_group_id_empty']; + } + //* make sure that the domain is lowercase + if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]); + } + else { + /* + * We edit a existing one, but there is nothing to edit + */ + $this->dataRecord = $app->tform->getDataRecord($this->id); + } } else { if($this->id > 0) { /* diff --git a/interface/web/client/templates/domain_edit.htm b/interface/web/client/templates/domain_edit.htm index 03f3aaf2ff..aaafa6e9e4 100644 --- a/interface/web/client/templates/domain_edit.htm +++ b/interface/web/client/templates/domain_edit.htm @@ -12,7 +12,6 @@ -
@@ -25,7 +24,6 @@
-
-- GitLab