Marius Burkard
2016-07-10 e1ceb050e19c7574bca146a8da7047ee4ff456b5
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']);