From e1ceb050e19c7574bca146a8da7047ee4ff456b5 Mon Sep 17 00:00:00 2001 From: Marius Burkard <m.burkard@pixcept.de> Date: Sun, 10 Jul 2016 05:02:35 -0400 Subject: [PATCH] Merge branch 'stable-3.1' --- interface/web/client/client_template_edit.php | 33 +++++++++++++++++++++++++++------ 1 files changed, 27 insertions(+), 6 deletions(-) diff --git a/interface/web/client/client_template_edit.php b/interface/web/client/client_template_edit.php index d956faf..8ae08b9 100644 --- a/interface/web/client/client_template_edit.php +++ b/interface/web/client/client_template_edit.php @@ -43,7 +43,7 @@ //* Check permissions for module $app->auth->check_module_permissions('client'); -if(!$_SESSION["s"]["user"]["typ"] == 'admin') die('Client-Templates are only for Admins.'); +if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) die('Client-Templates are for Admins and Resellers only.'); // Loading classes $app->uses('tpl,tform,tform_actions'); @@ -51,12 +51,25 @@ class page_action extends tform_actions { + + function onSubmit() { + global $app; + + //* Resellers shall not be able to create another reseller or set reseller specific settings + if($_SESSION["s"]["user"]["typ"] == 'user') { + $this->dataRecord['limit_client'] = 0; + $this->dataRecord['limit_domainmodule'] = 0; + } + + parent::onSubmit(); + } + function onBeforeUpdate() { global $app; if(isset($this->dataRecord['template_type'])) { //* Check if the template_type has been changed - $rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ".$this->id); + $rec = $app->db->queryOneRecord("SELECT template_type from client_template WHERE template_id = ?", $this->id); if($rec['template_type'] != $this->dataRecord['template_type']) { //* Add a error message and switch back to old server $app->tform->errorMessage .= $app->lng('The template type can not be changed.'); @@ -75,15 +88,23 @@ global $app; $app->uses('client_templates'); + if (isset($this->dataRecord["template_type"])) { + $template_type = $this->dataRecord["template_type"]; + } else { + $tmp = $app->tform->getDataRecord($this->id); + $template_type = $tmp['template_type']; + } + /* * the template has changed. apply the new data to all clients */ - if ($this->dataRecord["template_type"] == 'm'){ - $sql = "SELECT client_id FROM client WHERE template_master = " . $this->id; + if ($template_type == 'm'){ + $sql = "SELECT client_id FROM client WHERE template_master = ?"; + $clients = $app->db->queryAllRecords($sql, $this->id); } else { - $sql = "SELECT client_id FROM client WHERE template_additional LIKE '%/" . $this->id . "/%' OR template_additional LIKE '" . $this->id . "/%' OR template_additional LIKE '%/" . $this->id . "' UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = " . $this->id; + $sql = "SELECT client_id FROM client WHERE template_additional LIKE ? OR template_additional LIKE ? OR template_additional LIKE ? UNION SELECT client_id FROM client_template_assigned WHERE client_template_id = ?"; + $clients = $app->db->queryAllRecords($sql, '%/' . $this->id . '/%', $this->id . '/%', '%/' . $this->id, $this->id); } - $clients = $app->db->queryAllRecords($sql); if (is_array($clients)){ foreach ($clients as $client){ $app->client_templates->apply_client_templates($client['client_id']); -- Gitblit v1.9.1