Merged revisions 2886-2909 from stable branch.
| | |
| | | $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; |
| | | $conf['language'] = $conf_old['language']; |
| | | if($conf['language'] == '{language}') $conf['language'] = 'en'; |
| | | $conf['timezone'] = $conf_old['timezone']; |
| | | $conf['timezone'] = (isset($conf_old['timezone']))?$conf_old['timezone']:'UTC'; |
| | | if($conf['timezone'] == '{timezone}' or trim($conf['timezone']) == '') $conf['timezone'] = 'UTC'; |
| | | |
| | | if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"]; |
| | |
| | | $content = file_get_contents($filepath); |
| | | $content = chunk_split(base64_encode($content)); |
| | | $uid = strtoupper(md5(uniqid(time()))); |
| | | $subject = "=?utf-8?B?".base64_encode($subject)."?="; |
| | | |
| | | if($filename == '') { |
| | | $path_parts = pathinfo($filepath); |
| | |
| | | $header = "From: $from\nReply-To: $from\n"; |
| | | $header .= "Content-Type: text/plain;\n\tcharset=\"UTF-8\"\n"; |
| | | $header .= "Content-Transfer-Encoding: 8bit\n\n"; |
| | | $subject = "=?utf-8?B?".base64_encode($subject)."?="; |
| | | mail($to, $subject, $text, $header); |
| | | } |
| | | |
| | |
| | | $this->server->fault('permission_denied','You do not have the permissions to access this function.'); |
| | | return false; |
| | | } |
| | | $affected_rows = $this->deleteQuery('../mail/form/mail_user_filter.tform.php', $primary_id); |
| | | $app->plugin->raiseEvent('mail:mail_user_filter:on_after_delete',$this); |
| | | $affected_rows = $this->deleteQuery('../mail/form/mail_user_filter.tform.php', $primary_id,'mail:mail_user_filter:on_after_delete'); |
| | | // $app->plugin->raiseEvent('mail:mail_user_filter:on_after_delete',$this); |
| | | return $affected_rows; |
| | | } |
| | | |
| | |
| | | |
| | | //* Get the SQL query |
| | | $sql = $app->remoting_lib->getSQL($params,'INSERT',0); |
| | | $app->db->query($sql); |
| | | |
| | | //* Check if no system user with that username exists |
| | | $username = $app->db->quote($params["username"]); |
| | | $tmp = $app->db->queryOneRecord("SELECT count(userid) as number FROm sys_user WHERE username = '$username'"); |
| | | $tmp = $app->db->queryOneRecord("SELECT count(userid) as number FROM sys_user WHERE username = '$username'"); |
| | | if($tmp['number'] > 0) $app->remoting_lib->errorMessage .= "Duplicate username<br />"; |
| | | |
| | | //* Stop on error while preparing the sql query |
| | | if($app->remoting_lib->errorMessage != '') { |
| | | $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); |
| | | return false; |
| | | } |
| | | |
| | | //* Execute the SQL query |
| | | $app->db->query($sql); |
| | | $insert_id = $app->db->insertID(); |
| | | |
| | | |
| | | //* Stop on error while executing the sql query |
| | | if($app->remoting_lib->errorMessage != '') { |
| | | $this->server->fault('data_processing_error', $app->remoting_lib->errorMessage); |
| | | return false; |
| | | } |
| | | |
| | | $this->id = $insert_id; |
| | | $this->dataRecord = $params; |
| | |
| | | // set a few values for compatibility with tform actions, mostly used by plugins |
| | | $this->oldDataRecord = $old_rec; |
| | | $this->id = $primary_id; |
| | | $this->dataRecord = $params; |
| | | $this->dataRecord = $old_rec; |
| | | //$this->dataRecord = $params; |
| | | |
| | | //* Get the SQL query |
| | | $sql = $app->remoting_lib->getDeleteSQL($primary_id); |
| | | |
| | | $app->db->errorMessage = ''; |
| | | $app->db->query($sql); |
| | | $affected_rows = $app->db->affectedRows(); |
| | | |
| | | if($app->db->errorMessage != '') { |
| | | |
| | | if($event_identifier != '') $app->plugin->raiseEvent($event_identifier,$this); |
| | | |
| | | $this->server->fault('database_error', $app->db->errorMessage . ' '.$sql); |
| | | return false; |
| | | } |
| | | |
| | | $affected_rows = $app->db->affectedRows(); |
| | | if($event_identifier != '') { |
| | | $app->plugin->raiseEvent($event_identifier,$this); |
| | | } |
| | | |
| | | //* Save changes to Datalog |
| | | if($app->remoting_lib->formDef["db_history"] == 'yes') { |
| | |
| | | $sql_insert_key .= "`$key`, "; |
| | | if($field['encryption'] == 'CRYPT') { |
| | | $record[$key] = $app->auth->crypt_password(stripslashes($record[$key])); |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } elseif ($field['encryption'] == 'MYSQL') { |
| | | $sql_insert_val .= "PASSWORD('".$app->db->quote($record[$key])."'), "; |
| | | } elseif ($field['encryption'] == 'CLEARTEXT') { |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } else { |
| | | $record[$key] = md5($record[$key]); |
| | | $record[$key] = md5(stripslashes($record[$key])); |
| | | $sql_insert_val .= "'".$app->db->quote($record[$key])."', "; |
| | | } |
| | | $sql_insert_val .= "'".$record[$key]."', "; |
| | | } elseif ($field['formtype'] == 'CHECKBOX') { |
| | | $sql_insert_key .= "`$key`, "; |
| | | if($record[$key] == '') { |
| | |
| | | foreach($primary_id as $key => $val) { |
| | | $key = $app->db->quote($key); |
| | | $val = $app->db->quote($val); |
| | | if(stristr($val,'%')) { |
| | | $sql_where .= "$key like '$val' AND "; |
| | | } else { |
| | | $sql_where .= "$key = '$val' AND "; |
| | | } |
| | | } |
| | | $sql_where = substr($sql_where,0,-5); |
| | | $sql = "SELECT * FROM ".$escape.$this->formDef['db_table'].$escape." WHERE ".$sql_where; |
| | | return $app->db->queryAllRecords($sql); |
| | |
| | | foreach($installed_packages as $ip) { |
| | | |
| | | // Get version number of the latest installed version |
| | | $sql = "SELECT v1, v2, v3, v4 FROM software_update, software_update_inst WHERE software_update.software_update_id = software_update_inst.software_update_id AND server_id = 1 ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC LIMIT 0,1"; |
| | | $sql = "SELECT v1, v2, v3, v4 FROM software_update, software_update_inst WHERE software_update.software_update_id = software_update_inst.software_update_id AND server_id = ".$server_id." ORDER BY v1 DESC , v2 DESC , v3 DESC , v4 DESC LIMIT 0,1"; |
| | | $lu = $app->db->queryOneRecord($sql); |
| | | |
| | | // Get all installable updates |
| | |
| | | |
| | | } |
| | | |
| | | if($this->id > 0) { |
| | | //* we are editing a existing record |
| | | $app->tpl->setVar("edit_disabled", 1); |
| | | $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); |
| | | } else { |
| | | $app->tpl->setVar("edit_disabled", 0); |
| | | } |
| | | |
| | | parent::onShowEnd(); |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | if($this->id > 0) { |
| | | //* we are editing a existing record |
| | | $app->tpl->setVar("edit_disabled", 1); |
| | | $app->tpl->setVar("server_id_value", $this->dataRecord["server_id"]); |
| | | } else { |
| | | $app->tpl->setVar("edit_disabled", 0); |
| | | } |
| | | |
| | | parent::onShowEnd(); |
| | | } |
| | | |
| | |
| | | // make sure that the record belongs to the client group and not the admin group when a dmin inserts it |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { |
| | | $client_group_id = intval($this->dataRecord["client_group_id"]); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE id = ".$this->id); |
| | | // And we want to update all rr records too, that belong to this record |
| | | $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); |
| | | } |
| | | if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { |
| | | $client_group_id = intval($this->dataRecord["client_group_id"]); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE id = ".$this->id); |
| | | // And we want to update all rr records too, that belong to this record |
| | | $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); |
| | | } |
| | | |
| | | } |
| | | |
| | | function onBeforeUpdate () { |
| | | global $app, $conf; |
| | | |
| | | //* Check if the server has been changed |
| | | // We do this only for the admin or reseller users, as normal clients can not change the server ID anyway |
| | | if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { |
| | | //* We do not allow users to change a domain which has been created by the admin |
| | | $rec = $app->db->queryOneRecord("SELECT origin from dns_soa WHERE id = ".$this->id); |
| | | if(isset($this->dataRecord["origin"]) && $rec['origin'] != $this->dataRecord["origin"] && $app->tform->checkPerm($this->id,'u')) { |
| | | //* Add a error message and switch back to old server |
| | | $app->tform->errorMessage .= $app->lng('The Zone (soa) can not be changed. Please ask your Administrator if you want to change the Zone name.'); |
| | | $this->dataRecord["origin"] = $rec['origin']; |
| | | } |
| | | unset($rec); |
| | | } |
| | | } |
| | | |
| | | function onAfterUpdate() { |
| | |
| | | // make sure that the record belongs to the client group and not the admin group when a dmin inserts it |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { |
| | | $client_group_id = intval($this->dataRecord["client_group_id"]); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id, sys_perm_group = 'ru' WHERE id = ".$this->id); |
| | | // And we want to update all rr records too, that belong to this record |
| | | $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); |
| | | } |
| | | if($app->auth->has_clients($_SESSION['s']['user']['userid']) && isset($this->dataRecord["client_group_id"])) { |
| | | $client_group_id = intval($this->dataRecord["client_group_id"]); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id WHERE id = ".$this->id); |
| | | $app->db->query("UPDATE dns_soa SET sys_groupid = $client_group_id, sys_perm_group = 'riud' WHERE id = ".$this->id); |
| | | // And we want to update all rr records too, that belong to this record |
| | | $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id); |
| | | } |
| | |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'name_error_empty'), |
| | | 1 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{1,64}$/', |
| | | 'regex' => '/^[\w\.\-]{1,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-\*]{0,64}$/', |
| | | 'regex' => '/^[\w\.\-\*]{0,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{0,64}$/', |
| | | 'regex' => '/^[\w\.\-]{0,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{0,64}$/', |
| | | 'regex' => '/^[\w\.\-]{0,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{1,64}$/', |
| | | 'regex' => '/^[\w\.\-]{1,255}$/', |
| | | 'errmsg'=> 'ns_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{1,64}$/', |
| | | 'regex' => '/^[\w\.\-]{1,255}$/', |
| | | 'errmsg'=> 'ns_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'mbox_error_empty'), |
| | | 1 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[[a-zA-Z0-9\.\-\_]{0,64}\.$/', |
| | | 'regex' => '/^[[a-zA-Z0-9\.\-\_]{0,255}\.$/', |
| | | 'errmsg'=> 'mbox_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{0,64}$/', |
| | | 'regex' => '/^[\w\.\-]{0,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{0,64}$/', |
| | | 'regex' => '/^[\w\.\-]{0,255}$/', |
| | | 'errmsg'=> 'name_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | |
| | | $wb['eg_domain_tld'] = 'e.g. domain.tld'; |
| | | $wb['eg_ns1_domain_tld'] = 'e.g. ns1.domain.tld'; |
| | | $wb['eg_webmaster_domain_tld'] = 'e.g. webmaster@domain.tld'; |
| | | $wb['The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'] = 'The Domain can not be changed. Please ask your Administrator if you want to change the domain name.'; |
| | | ?> |
| | |
| | | <fieldset class="inlineLabels"><legend>Secondary DNS Zone</legend> |
| | | <tmpl_if name="is_admin"> |
| | | <div class="ctrlHolder"> |
| | | <tmpl_if name="edit_disabled"> |
| | | <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> |
| | | <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> |
| | | {tmpl_var name='server_id'} |
| | | </select> |
| | | <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> |
| | | <tmpl_else> |
| | | <label for="server_id">{tmpl_var name='server_id_txt'}</label> |
| | | <select name="server_id" id="server_id" class="selectInput"> |
| | | {tmpl_var name='server_id'} |
| | | </select> |
| | | </tmpl_if> |
| | | </div> |
| | | <div class="ctrlHolder"> |
| | | <label for="client_group_id">{tmpl_var name='client_txt'}</label> |
| | |
| | | <fieldset class="inlineLabels"><legend>DNS Zone</legend> |
| | | <tmpl_if name="is_admin"> |
| | | <div class="ctrlHolder"> |
| | | <tmpl_if name="edit_disabled"> |
| | | <label for="server_id_disabled">{tmpl_var name='server_id_txt'}</label> |
| | | <select name="server_id_disabled" id="server_id_disabled" class="selectInput" disabled="disabled"> |
| | | {tmpl_var name='server_id'} |
| | | </select> |
| | | <input type="hidden" name="server_id" value="{tmpl_var name='server_id_value'}" /> |
| | | <tmpl_else> |
| | | <label for="server_id">{tmpl_var name='server_id_txt'}</label> |
| | | <select name="server_id" id="server_id" class="selectInput"> |
| | | {tmpl_var name='server_id'} |
| | | </select> |
| | | </tmpl_if> |
| | | </div> |
| | | <div class="ctrlHolder"> |
| | | <label for="client_group_id">{tmpl_var name='client_txt'}</label> |
| | |
| | | $wb["source_password_error_isempty"] = 'Password is empty.'; |
| | | $wb["destination_error_isemail"] = 'No destination selected.'; |
| | | $wb["source_server_error_regex"] = 'Pop3/Imap Server is not a valid domain name.'; |
| | | $wb["error_delete_read_all_combination"] = 'Illegal combination of options. You can not use "Delete emails after retrieval" = no together with "Retrieve all emails" = yes'; |
| | | ?> |
| | |
| | | } |
| | | } // end if user is not admin |
| | | |
| | | |
| | | // Set the server ID according to the selected destination |
| | | $tmp = $app->db->queryOneRecord("SELECT server_id FROM mail_user WHERE email = '".$app->db->quote($this->dataRecord["destination"])."'"); |
| | | $this->dataRecord["server_id"] = $tmp["server_id"]; |
| | | unset($tmp); |
| | | |
| | | //* Check that no illegal combination of options is set |
| | | if((!isset($this->dataRecord['source_delete']) || @$this->dataRecord['source_delete'] == 'n') && $this->dataRecord['source_read_all'] == 'y') { |
| | | $app->tform->errorMessage .= $app->tform->lng('error_delete_read_all_combination')."<br>"; |
| | | } |
| | | |
| | | parent::onSubmit(); |
| | | } |
| | | |
| | |
| | | jQuery('#redirect_type option[value="R"]').hide(); |
| | | jQuery('#redirect_type option[value="L"]').hide(); |
| | | jQuery('#redirect_type option[value="R,L"]').hide(); |
| | | jQuery('#redirect_type option[value="R=301,L"]').hide(); |
| | | |
| | | jQuery('#redirect_type option[value="last"]').show(); |
| | | jQuery('#redirect_type option[value="break"]').show(); |
| | |
| | | jQuery('#redirect_type option[value="R"]').show(); |
| | | jQuery('#redirect_type option[value="L"]').show(); |
| | | jQuery('#redirect_type option[value="R,L"]').show(); |
| | | jQuery('#redirect_type option[value="R=301,L"]').show(); |
| | | |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | } |
| | | }); |
| | | } |
| | |
| | | jQuery('#redirect_type option[value="R"]').hide(); |
| | | jQuery('#redirect_type option[value="L"]').hide(); |
| | | jQuery('#redirect_type option[value="R,L"]').hide(); |
| | | jQuery('#redirect_type option[value="R=301,L"]').hide(); |
| | | if(selected != "no" && selected != "" && selected != "last" && selected != "break" && selected != "redirect" && selected != "permanent") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | } else { |
| | | jQuery('#redirect_type option[value="last"]').hide(); |
| | | jQuery('#redirect_type option[value="break"]').hide(); |
| | | jQuery('#redirect_type option[value="redirect"]').hide(); |
| | | jQuery('#redirect_type option[value="permanent"]').hide(); |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | } |
| | | }); |
| | | } |
| | |
| | | jQuery('#redirect_type option[value="R"]').hide(); |
| | | jQuery('#redirect_type option[value="L"]').hide(); |
| | | jQuery('#redirect_type option[value="R,L"]').hide(); |
| | | jQuery('#redirect_type option[value="R=301,L"]').hide(); |
| | | |
| | | jQuery('#redirect_type option[value="last"]').show(); |
| | | jQuery('#redirect_type option[value="break"]').show(); |
| | |
| | | jQuery('#redirect_type option[value="R"]').show(); |
| | | jQuery('#redirect_type option[value="L"]').show(); |
| | | jQuery('#redirect_type option[value="R,L"]').show(); |
| | | jQuery('#redirect_type option[value="R=301,L"]').show(); |
| | | |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | if(selected != "no" && selected != "" && selected != "R" && selected != "L" && selected != "R,L" && selected != "R=301,L") jQuery('#redirect_type option[value="no"]').attr('selected', 'selected'); |
| | | } |
| | | }); |
| | | } |
| | |
| | | |
| | | function getClientName($dataRecord) { |
| | | global $app, $conf; |
| | | /* 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'])) { |
| | | 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 { |
| | |
| | | function onAfterUpdate() { |
| | | global $app, $conf; |
| | | |
| | | // make sure that the record belongs to the clinet group and not the admin group when a admin inserts it |
| | | // make sure that the record belongs to the client group and not the admin group when a admin inserts it |
| | | // also make sure that the user can not delete domain created by a admin |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin' && isset($this->dataRecord["client_group_id"])) { |
| | | $client_group_id = intval($this->dataRecord["client_group_id"]); |
| | |
| | | $forwarding_id = 1; |
| | | |
| | | $mail_forwarding_record = $client->mail_forward_get($session_id, $forwarding_id); |
| | | // $mail_forwarding_record = $client->mail_forward_get($session_id, array('source' => '%@test.int')); |
| | | |
| | | print_r($mail_forwarding_record); |
| | | |
| | |
| | | $client_id = 1; |
| | | $params = array( |
| | | 'server_id' => 1, |
| | | 'type' => 'y', |
| | | 'database_name' => 'db_o', |
| | | 'database_user' => 'test', |
| | | 'database_password' => 'test', |
| | | 'type' => 'mysql', |
| | | 'database_name' => 'db_name1', |
| | | 'database_user' => 'db_name1', |
| | | 'database_password' => 'db_name1', |
| | | 'database_charset' => 'UTF8', |
| | | 'remote_access' => 'y', |
| | | 'remote_access' => 'n', |
| | | 'remote_ips' => '', |
| | | 'active' => 'y' |
| | | ); |
| | |
| | | $soap_uri = 'http://localhost:8080/ispconfig3/interface/web/remote/'; |
| | | */ |
| | | |
| | | $soap_location = 'http://192.168.0.110:8080/remote/index.php'; |
| | | $soap_uri = 'http://192.168.0.110:8080/remote/'; |
| | | $soap_location = 'http://192.168.0.105:8080/remote/index.php'; |
| | | $soap_uri = 'http://192.168.0.105:8080/remote/'; |
| | | |
| | | ?> |
| | |
| | | } |
| | | |
| | | $current = $year.$month; |
| | | if ( $month < 10 ) { |
| | | $current = $year."0".$month; |
| | | } |
| | | $awprev[$current] = $year."-".$month; |
| | | |
| | | closedir($handle); |
| | |
| | | ErrorLog /var/log/ispconfig/httpd/<tmpl_var name='domain'>/error.log |
| | | |
| | | <tmpl_if name='errordocs'> |
| | | |
| | | Alias /error/ "<tmpl_var name='web_document_root_www'>/error/" |
| | | ErrorDocument 400 /error/400.html |
| | | ErrorDocument 401 /error/401.html |
| | | ErrorDocument 403 /error/403.html |
| | |
| | | |
| | | if(is_file($awstats_website_conf_file)) unlink($awstats_website_conf_file); |
| | | |
| | | $sql = "SELECT domain FROM web_domain WHERE (type = 'alias' OR type = 'subdomain') server_id = ".$conf['server_id']; |
| | | $sql = "SELECT domain FROM web_domain WHERE (type = 'alias' OR type = 'subdomain') AND server_id = ".$conf['server_id']; |
| | | $aliases = $app->db->queryAllRecords($sql); |
| | | $aliasdomain = ''; |
| | | |
| | |
| | | $app->log('Created Maildir '.$maildir_path.' with subfolder: '.$subfolder,LOGLEVEL_DEBUG); |
| | | |
| | | } |
| | | |
| | | //* Function to create directory paths and chown them to a user and group |
| | | function mkdirpath($path, $mode = 0755, $user = '', $group = '') { |
| | | $path_parts = explode('/',$path); |
| | | $new_path = ''; |
| | | if(is_array($path_parts)) { |
| | | foreach($path_parts as $part) { |
| | | $new_path .= '/'.$part; |
| | | if(!@is_dir($new_path)) { |
| | | mkdir($new_path); |
| | | chmod($new_path,$mode); |
| | | if($user != '') chown($new_path,$user); |
| | | if($group != '') chgrp($new_path,$group); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | ?> |
| | |
| | | unset($tmp_docroot[count($tmp_docroot)-1]); |
| | | $old_dir = implode('/',$tmp_docroot); |
| | | |
| | | exec('rm -rf '.$data['new']['document_root']); |
| | | //* Check if there is already some data in the new docroot and rename it as we need a clean path to move the existing site to the new path |
| | | if(@is_dir($data['new']['document_root'])) { |
| | | rename($data['new']['document_root'],$data['new']['document_root'].'_bak_'.date('Y_m_d')); |
| | | $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d'),LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | //* Create new base directory, if it does not exist yet |
| | | if(!is_dir($new_dir)) exec('mkdir -p '.$new_dir); |
| | | exec('mv '.$data['old']['document_root'].' '.$new_dir); |
| | | $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir,LOGLEVEL_DEBUG); |
| | |
| | | if(is_file($filename)) unset($filename); |
| | | } |
| | | |
| | | //* Ensure that the named slave directory is writable by the named user |
| | | if (file_exists('/etc/gentoo-release')) { |
| | | $slave_record_dir = $dns_config['bind_zonefiles_dir'].'/sec'; |
| | | } else { |
| | | $slave_record_dir = $dns_config['bind_zonefiles_dir'].'/slave'; |
| | | } |
| | | if(!@is_dir($slave_record_dir)) mkdir($slave_record_dir,0770); |
| | | chown($slave_record_dir,$dns_config['bind_user']); |
| | | chgrp($slave_record_dir,$dns_config['bind_group']); |
| | | |
| | | //* Reload bind nameserver |
| | | $app->services->restartServiceDelayed('bind','reload'); |
| | | |
| | |
| | | unset($tmp_basepath_parts[count($tmp_basepath_parts)-1]); |
| | | $base_path = implode('/',$tmp_basepath_parts); |
| | | |
| | | |
| | | |
| | | //* Create the mail domain directory, if it does not exist |
| | | if(!empty($base_path) && !is_dir($base_path)) { |
| | | exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); |
| | | //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); |
| | | $app->system->mkdirpath($base_path, 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); |
| | | $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. |
| | | if($mail_config['pop3_imap_daemon'] == 'dovecot') { |
| | | exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); |
| | | //exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); |
| | | $app->system->mkdirpath($maildomain_path, 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); |
| | | $app->log('Created Directory: '.$maildomain_path,LOGLEVEL_DEBUG); |
| | | $maildomain_path .= '/Maildir'; |
| | | } |
| | |
| | | |
| | | //* Send the welcome email message |
| | | if(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt')) { |
| | | $tmp = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); |
| | | $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_'.$conf['language'].'.txt'); |
| | | } elseif(file_exists($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt')) { |
| | | $tmp = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); |
| | | $lines = file($conf['rootpath'].'/conf-custom/mail/welcome_email_en.txt'); |
| | | } elseif(file_exists($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt')) { |
| | | $tmp = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); |
| | | $lines = file($conf['rootpath'].'/conf/mail/welcome_email_'.$conf['language'].'.txt'); |
| | | } else { |
| | | $tmp = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); |
| | | $lines = file($conf['rootpath'].'/conf/mail/welcome_email_en.txt'); |
| | | } |
| | | |
| | | $welcome_mail_from = trim(substr($tmp[0],5)); |
| | | $welcome_mail_subject = trim(substr($tmp[1],8)); |
| | | unset($tmp[0]); |
| | | unset($tmp[1]); |
| | | $welcome_mail_message = trim(implode($tmp)); |
| | | unset($tmp); |
| | | //* Get from address |
| | | $parts = explode(':',trim($lines[0])); |
| | | unset($parts[0]); |
| | | $welcome_mail_from = implode(':',$parts); |
| | | unset($lines[0]); |
| | | |
| | | $welcomeFromEmail = $mail_config['admin_mail']; |
| | | $welcomeFromName = $mail_config['admin_name']; |
| | | //* Get subject |
| | | $parts = explode(':',trim($lines[1])); |
| | | unset($parts[0]); |
| | | $welcome_mail_subject = implode(':',$parts); |
| | | unset($lines[1]); |
| | | |
| | | //* Get message |
| | | $welcome_mail_message = trim(implode($lines)); |
| | | unset($tmp); |
| | | |
| | | $mailHeaders = "MIME-Version: 1.0" . "\n"; |
| | | $mailHeaders .= "Content-type: text/plain; charset=utf-8" . "\n"; |
| | |
| | | $mailHeaders .= "From: $welcome_mail_from" . "\n"; |
| | | $mailHeaders .= "Reply-To: $welcome_mail_from" . "\n"; |
| | | $mailTarget = $data["new"]["email"]; |
| | | // $mailSubject = "=?utf-8?Q?" . imap_8bit($welcome_mail_subject) . "?="; |
| | | $mailSubject = "=?utf-8?B?".base64_encode($welcome_mail_subject)."?="; |
| | | |
| | | mail($mailTarget, $mailSubject, $welcome_mail_message, $mailHeaders); |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | //* Create the mail domain directory, if it does not exist |
| | | if(!empty($base_path) && !is_dir($base_path)) { |
| | | exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); |
| | | //exec("su -c 'mkdir -p ".escapeshellcmd($base_path)."' ".$mail_config['mailuser_name']); |
| | | $app->system->mkdirpath($base_path, 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); |
| | | $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | // Dovecot uses a different mail layout with a separate 'Maildir' subdirectory. |
| | | if($mail_config['pop3_imap_daemon'] == 'dovecot') { |
| | | exec("su -c 'mkdir -p ".escapeshellcmd($maildomain_path)."' ".$mail_config['mailuser_name']); |
| | | $app->system->mkdirpath($maildomain_path, 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); |
| | | $app->log('Created Directory: '.$base_path,LOGLEVEL_DEBUG); |
| | | $maildomain_path .= '/Maildir'; |
| | | } |
| | |
| | | $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); |
| | | |
| | | // load files |
| | | if(file_exists($conf["rootpath"]."/conf/mm_cfg.py.master")) { |
| | | $content = file_get_contents($conf["rootpath"]."/conf-custom/mm_cfg.py.master"); |
| | | } else { |
| | | $content = file_get_contents($conf["rootpath"]."/conf/mm_cfg.py.master"); |
| | | } |
| | | $old_file = file_get_contents($this->mailman_config_dir."/mm_cfg.py"); |
| | | |
| | | $old_options = array(); |
| | |
| | | function onInstall() { |
| | | global $conf; |
| | | |
| | | if($conf['services']['web'] == true) { |
| | | if($conf['services']['web'] == true && !@is_link('/usr/local/ispconfig/server/plugins-enabled/apache2_plugin.inc.php')) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | |
| | | function update($event_name,$data) { |
| | | global $app, $conf; |
| | | |
| | | //* Check if the apache plugin is enabled |
| | | if(@is_link('/usr/local/ispconfig/server/plugins-enabled/apache2_plugin.inc.php')) { |
| | | $app->log('The nginx plugin can not be used together with the apache2 plugin..',LOGLEVEL_WARN); |
| | | return 0; |
| | | } |
| | | |
| | | if($this->action != 'insert') $this->action = 'update'; |
| | | |
| | | if($data['new']['type'] != 'vhost' && $data['new']['parent_domain_id'] > 0) { |
| | |
| | | unset($tmp_docroot[count($tmp_docroot)-1]); |
| | | $old_dir = implode('/',$tmp_docroot); |
| | | |
| | | exec('rm -rf '.$data['new']['document_root']); |
| | | //* Check if there is already some data in the new docroot and rename it as we need a clean path to move the existing site to the new path |
| | | if(@is_dir($data['new']['document_root'])) { |
| | | rename($data['new']['document_root'],$data['new']['document_root'].'_bak_'.date('Y_m_d')); |
| | | $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d'),LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | //* Create new base directory, if it does not exist yet |
| | | if(!is_dir($new_dir)) exec('mkdir -p '.$new_dir); |
| | | exec('mv '.$data['old']['document_root'].' '.$new_dir); |
| | | $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir,LOGLEVEL_DEBUG); |