From cdf07913da5da799f05c017f690b9eaebe796da7 Mon Sep 17 00:00:00 2001 From: Benjamin Sonntag Date: Tue, 17 Jul 2018 16:59:54 +0200 Subject: [PATCH] [fix] misc bugs in update_domaines.php, --- bureau/admin/html-head.php | 4 ++-- bureau/class/m_apache.php | 6 +++--- bureau/class/m_bind.php | 4 ++-- bureau/class/m_dom.php | 25 +++++++++++++------------ bureau/class/m_mail.php | 16 ++++++++-------- bureau/class/m_ssl.php | 2 +- 6 files changed, 29 insertions(+), 28 deletions(-) diff --git a/bureau/admin/html-head.php b/bureau/admin/html-head.php index 18e9b00f..635ef878 100644 --- a/bureau/admin/html-head.php +++ b/bureau/admin/html-head.php @@ -39,7 +39,7 @@ if (!defined("ALTERNC_PANEL")) exit(); // must be included ;) if (file_exists("styles/style-custom.css") ) { echo ''; } -if (count($addhead['css'])) { +if (isset($addhead) && count($addhead['css'])) { foreach($addhead['css'] as $css) echo $css."\n"; } $favicon = variable_get('favicon', 'favicon.ico' ,'You can specify a favicon, for example /images/my_logo.ico', array('desc'=>'URL','type'=>'string')); @@ -53,7 +53,7 @@ $favicon = variable_get('favicon', 'favicon.ico' ,'You can specify a favicon, fo diff --git a/bureau/class/m_apache.php b/bureau/class/m_apache.php index 1c26bd4d..bf69ab54 100644 --- a/bureau/class/m_apache.php +++ b/bureau/class/m_apache.php @@ -44,7 +44,7 @@ class m_apache { // launched for each FQDN for which we want a new vhost template function hook_updatedomains_web_add($subdomid) { - global $msg,$db; + global $msg,$db,$ssl,$L_FQDN; $db->query("SELECT sd.*, dt.only_dns, dt.has_https_option, m.login FROM domaines_type dt, sub_domaines sd LEFT JOIN membres m ON m.uid=sd.compte WHERE dt.name=sd.type AND sd.web_action!='OK' AND id=?;",array($subdomid)); $db->next_record(); @@ -85,7 +85,7 @@ class m_apache { "%%redirect%%" => $subdom['valeur'], "%%UID%%" => $subdom['compte'], "%%GID%%" => $subdom['compte'], - "%%mail_account%%" => $subdom['mail'], + "%%mail_account%%" => $subdom['login']."@".$L_FQDN, "%%user%%" => "FIXME", "%%CRT%%" => $cert["cert"], "%%KEY%%" => $cert["key"], @@ -94,7 +94,7 @@ class m_apache { // and write the template $confdir = $this->vhostroot."/".substr($subdom["compte"],-1)."/".$subdom["compte"]; @mkdir($confdir,0755,true); - file_put_contents($confdir."/".$subdom["fqdn"].".conf"); + file_put_contents($confdir."/".$subdom["fqdn"].".conf",$tpl); $this->shouldreload=true; return 0; // shell meaning => OK ;) diff --git a/bureau/class/m_bind.php b/bureau/class/m_bind.php index 5610e236..5b328703 100644 --- a/bureau/class/m_bind.php +++ b/bureau/class/m_bind.php @@ -107,7 +107,7 @@ class m_bind { trim(strtr( file_get_contents($this->NAMED_TEMPLATE), array( - "@@DOMAIN@@" => $DOMAIN, + "@@DOMAIN@@" => $domain, "@@ZONE_FILE@@" => $this->zone_file_directory."/".$domain ) ))) @@ -225,7 +225,7 @@ class m_bind { sd.type=dt.name AND sd.enable IN ('ENABLE', 'ENABLED') ORDER BY ENTRY ;"); - $t=array(); + $t=""; while ($db->next_record()) { $t.= $db->f('entry')."\n"; } diff --git a/bureau/class/m_dom.php b/bureau/class/m_dom.php index 029fe1c7..2261bf6e 100644 --- a/bureau/class/m_dom.php +++ b/bureau/class/m_dom.php @@ -635,35 +635,35 @@ class m_dom { * @param string $dom nom de domaine é effacer * @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon. */ - function del_domain($dom) { + function del_domain($domain) { global $db, $msg, $hooks; - $msg->log("dom", "del_domain", $dom); - $dom = strtolower($dom); + $msg->log("dom", "del_domain", $domain); + $domain = strtolower($domain); $this->lock(); - if (!$r = $this->get_domain_all($dom)) { + if (!$r = $this->get_domain_all($domain)) { return false; } $this->unlock(); // Call Hooks to delete the domain and the MX management: // TODO : the 2 calls below are using an OLD hook call, FIXME: remove them when unused - $hooks->invoke("alternc_del_domain", array($dom)); - $hooks->invoke("alternc_del_mx_domain", array($dom)); + $hooks->invoke("alternc_del_domain", array($domain)); + $hooks->invoke("alternc_del_mx_domain", array($domain)); // New hook calls: $hooks->invoke("hook_dom_del_domain", array($r["id"])); $hooks->invoke("hook_dom_del_mx_domain", array($r["id"])); // Now mark the domain for deletion: - $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE domaine= ?;", array($dom)); - $this->set_dns_action($dom, 'DELETE'); + $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE domaine= ?;", array($domain)); + $this->set_dns_action($domain, 'DELETE'); return true; } - function domshort($dom, $sub = "") { - return str_replace("-", "", str_replace(".", "", empty($sub) ? "" : "$sub.") . $dom); + function domshort($domain, $sub = "") { + return str_replace("-", "", str_replace(".", "", empty($sub) ? "" : "$sub.") . $domain); } @@ -1302,9 +1302,10 @@ class m_dom { * de $type (url, ip, dossier...) * @param string $https the HTTPS behavior : HTTP(redirect https to http), * HTTPS(redirect http to https) or BOTH (both hosted at the same place) + * or nothing "" when not applicable for this domain type. * @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon. */ - function set_sub_domain($dom, $sub, $type, $dest, $sub_domain_id = 0, $https) { + function set_sub_domain($dom, $sub, $type, $dest, $sub_domain_id = 0, $https="") { global $db, $msg, $cuid, $bro, $domislocked; $msg->log("dom", "set_sub_domain", $dom . "/" . $sub . "/" . $type . "/" . $dest); // Locked ? @@ -1931,7 +1932,7 @@ class m_dom { } else { // we keep the highest result returned by hooks... rsort($ret,SORT_NUMERIC); $returncode=$ret[0]; - $db->query("UPDATE domaines SET dns_result=?, dns_action='OK' WHERE domaine=?;",array($returncode,$onedom)); + $db->query("UPDATE domaines SET dns_result=?, dns_action='OK' WHERE domaine=?;",array($returncode,$onedom["domaine"])); } } $hooks->invoke("hook_updatedomains_dns_post"); diff --git a/bureau/class/m_mail.php b/bureau/class/m_mail.php index 9a370fe7..06b158db 100644 --- a/bureau/class/m_mail.php +++ b/bureau/class/m_mail.php @@ -1099,21 +1099,21 @@ ORDER BY global $db; // for each domain where we don't have the MX or the DNS, remove the DKIM setup $this->shouldreloaddkim=false; - $db->query("SELECT domaine,gesdns,gesmx FROM domaines WHERE dns_action!='OK';"); + $db->query("SELECT domaine,compte,gesdns,gesmx FROM domaines WHERE dns_action!='OK';"); $add=array(); $del=array(); while ($db->next_record()) { if ($db->Record["gesdns"]==0 || $db->Record["gesmx"]==0) { - $del[]=$db->Record["domaine"]; + $del[]=$db->Record; } else { - $add[]=$db->Record["domaine"]; + $add[]=$db->Record; } } foreach($add as $domain) { - $this->dkim_add($domain); + $this->dkim_add($domain["domaine"],$domain["compte"]); } foreach($del as $domain) { - $this->dkim_del($domain); + $this->dkim_del($domain["domaine"],$domain["compte"]); } } @@ -1134,7 +1134,7 @@ ORDER BY /** * Add a domain into OpenDKIM configuration */ - function dkim_add($domain) { + function dkim_add($domain,$uid) { global $db; $target_dir = "/etc/opendkim/keys/$domain"; if (file_exists($target_dir.'/alternc.txt')) return; // Do not generate if exist @@ -1154,7 +1154,7 @@ ORDER BY add_line_to_file("/etc/opendkim/SigningTable",$domain." alternc._domainkey.".$domain); // Add subdomaine entry $dkim_key=$this->dkim_get_entry($domain); - $db->query("INSERT INTO sub_domaines SET domaine=?, compte=?, sub='', type='dkim', valeur=?;",array($uid,$domain,$dkim_key)); + $db->query("INSERT INTO sub_domaines SET domaine=?, compte=?, sub='', type='dkim', valeur=?;",array($domain,$uid,$dkim_key)); // no need to do DNS_ACTION="UPDATE" => we are in the middle of a HOOK, so dns WILL BE reloaded for this domain } @@ -1163,7 +1163,7 @@ ORDER BY /** * Delete a domain from OpenDKIM configuration */ - function dkim_del($domain) { + function dkim_del($domain,$uid) { $target_dir = "/etc/opendkim/keys/$domain"; if (file_exists($target_dir)) { $this->shouldreloaddkim=true; diff --git a/bureau/class/m_ssl.php b/bureau/class/m_ssl.php index 69b0a6f0..de486b5b 100644 --- a/bureau/class/m_ssl.php +++ b/bureau/class/m_ssl.php @@ -667,7 +667,7 @@ SELECT ?,?,?, FROM_UNIXTIME(?), FROM_UNIXTIME(?), ?, ?, sslcsr FROM certificate } $subdom["fqdn"]=$subdom["sub"].(($subdom["sub"])?".":"").$subdom["domaine"]; - list($cert) = $this->get_valid_certs($fqdn, $subdom["provider"]); + list($cert) = $this->get_valid_certs($subdom["fqdn"], $subdom["provider"]); // Edit certif_hosts: $db->query("UPDATE sub_domaines SET certificate_id=? WHERE id=?;",array($cert["id"], $subdom["id"])); }