moglia
2010-05-13 0110094b2d206e88dceb0cfe2bc4c85f2e826dda
interface/web/mail/mail_user_edit.php
@@ -107,6 +107,13 @@
      // Convert quota from Bytes to MB
      if($this->dataRecord["quota"] != -1) $app->tpl->setVar("quota",$this->dataRecord["quota"] / 1024 / 1024);
      
      // Is autoresponder set?
      if ($this->dataRecord['autoresponder'] == 'y') {
         $app->tpl->setVar("ar_active", 'checked="checked"');
      } else {
         $app->tpl->setVar("ar_active", '');
      }
      parent::onShowEnd();
   }
   
@@ -142,8 +149,8 @@
         }
         
         // Check the quota and adjust
         if($client["limit_mailquota"] >= 0) {
            $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".intval($this->id)." AND sys_groupid = $client_group_id");
         if(isset($_POST["quota"]) && $client["limit_mailquota"] >= 0) {
            $tmp = $app->db->queryOneRecord("SELECT sum(quota) as mailquota FROM mail_user WHERE mailuser_id != ".intval($this->id)." AND ".$app->tform->getAuthSQL('u'));
            $mailquota = $tmp["mailquota"] / 1024 / 1024;
            $new_mailbox_quota = intval($this->dataRecord["quota"]);
            if(($mailquota + $new_mailbox_quota > $client["limit_mailquota"]) || ($new_mailbox_quota == 0 && $client["limit_mailquota"] != -1)) {
@@ -175,7 +182,7 @@
         $app->uses('getconf');
         $mail_config = $app->getconf->get_server_config($domain["server_id"],'mail');
         $maildir = str_replace("[domain]",$domain["domain"],$mail_config["maildir_path"]);
         $maildir = str_replace("[localpart]",$_POST["email_local_part"],$maildir);
         $maildir = str_replace("[localpart]",strtolower($_POST["email_local_part"]),$maildir);
         $this->dataRecord["maildir"] = $maildir;
         $this->dataRecord["homedir"] = $mail_config["homedir_path"];
         $this->dataRecord["uid"] = $mail_config["mailuser_uid"];
@@ -186,6 +193,12 @@
         if($tmp['number'] > 0) $app->tform->errorMessage .= $app->tform->lng("duplicate_alias_or_forward_txt")."<br>";
         unset($tmp);
         
      }
      //* if autoresponder checkbox not selected, do not save dates
      if (!isset($_POST['autoresponder']) && array_key_exists('autoresponder_start_date', $_POST)) {
         $this->dataRecord['autoresponder_start_date'] = array_map(create_function('$item','return 0;'), $this->dataRecord['autoresponder_start_date']);
         $this->dataRecord['autoresponder_end_date'] = array_map(create_function('$item','return 0;'), $this->dataRecord['autoresponder_end_date']);
      }
      
      parent::onSubmit();
@@ -237,6 +250,17 @@
         }
      }  // endif spamfilter policy
      
      // Set the fields for dovecot
      if(isset($this->dataRecord["email"])) {
         $disableimap = ($this->dataRecord["disableimap"])?'y':'n';
         $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n';
         $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y';
         $disablesmtp = ($this->dataRecord["postfix"] == 'y')?'n':'y';
         $sql = "UPDATE mail_user SET disableimap = '$disableimap', disablepop3 = '$disablepop3', disablesmtp = '$disablesmtp', disabledeliver = '$disabledeliver' WHERE mailuser_id = ".$this->id;
         $app->db->query($sql);
      }
   }
   
   function onAfterUpdate() {
@@ -268,6 +292,32 @@
         } // endif spamfilter policy
      }
      
      // Set the fields for dovecot
      if(isset($this->dataRecord["email"])) {
         $disableimap = ($this->dataRecord["disableimap"])?'y':'n';
         $disablepop3 = ($this->dataRecord["disablepop3"])?'y':'n';
         $disabledeliver = ($this->dataRecord["postfix"] == 'y')?'n':'y';
         $disablesmtp = ($this->dataRecord["postfix"] == 'y')?'n':'y';
         $sql = "UPDATE mail_user SET disableimap = '$disableimap', disablepop3 = '$disablepop3', disablesmtp = '$disablesmtp', disabledeliver = '$disabledeliver' WHERE mailuser_id = ".$this->id;
         $app->db->query($sql);
      }
      //** If the email address has been changed, change it in all aliases too
      if(isset($this->dataRecord['email']) && $this->oldDataRecord['email'] != $this->dataRecord['email']) {
      //if($this->oldDataRecord['email'] != $this->dataRecord['email']) {
         //* Update the aliases
         $forwardings = $app->db->queryAllRecords("SELECT * FROM mail_forwarding WHERE destination = '".$app->db->quote($this->oldDataRecord['email'])."'");
         if(is_array($forwardings)) {
            foreach($forwardings as $rec) {
               $destination = $app->db->quote($this->dataRecord['email']);
               $app->db->datalogUpdate('mail_forwarding', "destination = '$destination'", 'forwarding_id', $rec['forwarding_id']);
            }
         }
      } // end if email addess changed
   }
   
}