From aa370627b211a51dc46891cfa4b6e3d2ef3e52db Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Tue, 16 Jul 2013 10:45:17 -0400
Subject: [PATCH] - Fixed FS#2924 - the month will not set automatically in the autoresponder by click now Along with this fixed some display problems with the combo boxes introduced in 3.0.5. Some fields were not correctly displayed with the predefined values if value and text of the underlying option element differ.
---
interface/web/sites/web_aliasdomain_edit.php | 110 +++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 90 insertions(+), 20 deletions(-)
diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php
index 0f86b62..150cb36 100644
--- a/interface/web/sites/web_aliasdomain_edit.php
+++ b/interface/web/sites/web_aliasdomain_edit.php
@@ -45,7 +45,7 @@
$app->auth->check_module_permissions('sites');
// Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
$app->load('tform_actions');
class page_action extends tform_actions {
@@ -57,43 +57,93 @@
// we will check only users, not admins
if($_SESSION["s"]["user"]["typ"] == 'user') {
-
- // Get the limits of the client
- $client_group_id = $_SESSION["s"]["user"]["default_group"];
- $client = $app->db->queryOneRecord("SELECT limit_web_aliasdomain FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
-
- // Check if the user may add another maildomain.
- if($client["limit_web_aliasdomain"] >= 0) {
- $tmp = $app->db->queryOneRecord("SELECT count(domain_id) as number FROM web_domain WHERE sys_groupid = $client_group_id and type = 'alias'");
- if($tmp["number"] >= $client["limit_web_aliasdomain"]) {
- $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]);
- }
+ if(!$app->tform->checkClientLimit('limit_web_aliasdomain',"type = 'alias'")) {
+ $app->error($app->tform->wordbook["limit_web_aliasdomain_txt"]);
+ }
+ if(!$app->tform->checkResellerLimit('limit_web_aliasdomain',"type = 'alias'")) {
+ $app->error('Reseller: '.$app->tform->wordbook["limit_web_aliasdomain_txt"]);
}
}
parent::onShowNew();
}
- /*
function onShowEnd() {
global $app, $conf;
- // Get the record of the parent domain
- $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval($this->dataRecord["parent_domain_id"]));
+ /*
+ * Now we have to check, if we should use the domain-module to select the domain
+ * or not
+ */
+ $app->uses('ini_parser,getconf');
+ $settings = $app->getconf->get_global_config('domains');
+ if ($settings['use_domain_module'] == 'y') {
+ /*
+ * The domain-module is in use.
+ */
+ $domains = $app->tools_sites->getDomainModuleDomains();
+ $domain_select = '';
+ if(is_array($domains) && sizeof($domains) > 0) {
+ /* We have domains in the list, so create the drop-down-list */
+ foreach( $domains as $domain) {
+ $domain_select .= "<option value=" . $domain['domain_id'] ;
+ if ($domain['domain'] == $this->dataRecord["domain"]) {
+ $domain_select .= " selected";
+ }
+ $domain_select .= ">" . $app->functions->idn_decode($domain['domain']) . "</option>\r\n";
+ }
+ }
+ else {
+ /*
+ * We have no domains in the domain-list. This means, we can not add ANY new domain.
+ * To avoid, that the variable "domain_option" is empty and so the user can
+ * free enter a domain, we have to create a empty option!
+ */
+ $domain_select .= "<option value=''></option>\r\n";
+ }
+ $app->tpl->setVar("domain_option",$domain_select);
+ }
- $this->dataRecord["domain"] = str_replace('.'.$parent_domain["domain"],'',$this->dataRecord["domain"]);
- $app->tpl->setVar("domain",$this->dataRecord["domain"]);
+ if($_SESSION["s"]["user"]["typ"] == 'admin') {
+ // Directive Snippets
+ $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'");
+ $proxy_directive_snippets_txt = '';
+ if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){
+ foreach($proxy_directive_snippets as $proxy_directive_snippet){
+ $proxy_directive_snippets_txt .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$proxy_directive_snippet['snippet'].'</pre></a> ';
+ }
+ }
+ if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------';
+ $app->tpl->setVar("proxy_directive_snippets_txt",$proxy_directive_snippets_txt);
+ }
parent::onShowEnd();
}
- */
function onSubmit() {
global $app, $conf;
+ /* check if the domain module is used - and check if the selected domain can be used! */
+ $app->uses('ini_parser,getconf');
+ $settings = $app->getconf->get_global_config('domains');
+ if ($settings['use_domain_module'] == 'y') {
+ $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']);
+ if(!$domain_check) {
+ // invalid domain selected
+ $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
+ } else {
+ $this->dataRecord['domain'] = $domain_check;
+ }
+ }
+
+ // nginx: if redirect type is proxy and redirect path is no URL, display error
+ if($this->dataRecord["redirect_type"] == 'proxy' && substr($this->dataRecord['redirect_path'],0,1) == '/'){
+ $app->tform->errorMessage .= $app->tform->lng("error_proxy_requires_url")."<br />";
+ }
+
// Get the record of the parent domain
- $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".intval(@$this->dataRecord["parent_domain_id"]));
+ $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ".$app->functions->intval(@$this->dataRecord["parent_domain_id"]));
// Set a few fixed values
$this->dataRecord["type"] = 'alias';
@@ -102,13 +152,33 @@
$this->parent_domain_record = $parent_domain;
+ //* make sure that the domain is lowercase
+ if(isset($this->dataRecord["domain"])) $this->dataRecord["domain"] = strtolower($this->dataRecord["domain"]);
+
parent::onSubmit();
}
function onAfterInsert() {
global $app, $conf;
- $app->db->query('UPDATE web_domain SET sys_groupid = '.intval($this->parent_domain_record['sys_groupid']).' WHERE domain_id = '.$this->id);
+ $app->db->query('UPDATE web_domain SET sys_groupid = '.$app->functions->intval($this->parent_domain_record['sys_groupid']).' WHERE domain_id = '.$this->id);
+
+ }
+
+ function onAfterUpdate() {
+ global $app, $conf;
+
+ //* Check if parent domain has been changed
+ if($this->dataRecord['parent_domain_id'] != $this->oldDataRecord['parent_domain_id']) {
+
+ //* Update the domain owner
+ $app->db->query('UPDATE web_domain SET sys_groupid = '.$app->functions->intval($this->parent_domain_record['sys_groupid']).' WHERE domain_id = '.$this->id);
+
+ //* Update the old website, so that the vhost alias gets removed
+ //* We force the update by inserting a transaction record without changes manually.
+ $old_website = $app->db->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$this->oldDataRecord['domain_id']);
+ $app->db->datalogSave('web_domain', 'UPDATE', 'domain_id', $this->oldDataRecord['parent_domain_id'], $old_website, $old_website, true);
+ }
}
--
Gitblit v1.9.1