[fix] tabulations on m_dom.php
This commit is contained in:
parent
1ad994af8d
commit
6fc53c040d
|
@ -1,4 +1,5 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
----------------------------------------------------------------------
|
||||
AlternC - Web Hosting System
|
||||
|
@ -26,10 +27,10 @@
|
|||
define('SLAVE_FLAG', "/var/run/alternc/refresh_slave");
|
||||
|
||||
/**
|
||||
* Classe de gestion des domaines de l'hébergé.
|
||||
* Classe de gestion des domaines de l'h<EFBFBD>berg<EFBFBD>.
|
||||
*
|
||||
* Cette classe permet de gérer les domaines / sous-domaines, redirections
|
||||
* dns et mx des domaines d'un membre hébergé.<br />
|
||||
* Cette classe permet de g<EFBFBD>rer les domaines / sous-domaines, redirections
|
||||
* dns et mx des domaines d'un membre h<EFBFBD>berg<EFBFBD>.<br />
|
||||
*/
|
||||
class m_dom {
|
||||
|
||||
|
@ -38,18 +39,18 @@ class m_dom {
|
|||
*/
|
||||
var $domains;
|
||||
|
||||
/** $dns : Liste des dns trouvés par la fonction whois
|
||||
/** $dns : Liste des dns trouv<EFBFBD>s par la fonction whois
|
||||
* @access private
|
||||
*/
|
||||
var $dns;
|
||||
|
||||
/** Flag : a-t-on trouvé un sous-domaine Webmail pour ce domaine ?
|
||||
/** Flag : a-t-on trouv<EFBFBD> un sous-domaine Webmail pour ce domaine ?
|
||||
* @access private
|
||||
*/
|
||||
var $webmail;
|
||||
|
||||
/**
|
||||
* Système de verrouillage du cron
|
||||
* Syst<EFBFBD>me de verrouillage du cron
|
||||
* Ce fichier permet de verrouiller le cron en attendant la validation
|
||||
* du domaine par update_domains.sh
|
||||
* @access private
|
||||
|
@ -57,13 +58,12 @@ class m_dom {
|
|||
var $fic_lock_cron = "/var/run/alternc/cron.lock";
|
||||
|
||||
/**
|
||||
* Le cron a-t-il été bloqué ?
|
||||
* Il faut appeler les fonctions privées lock et unlock entre les
|
||||
* Le cron a-t-il <EFBFBD>t<EFBFBD> bloqu<EFBFBD> ?
|
||||
* Il faut appeler les fonctions priv<EFBFBD>es lock et unlock entre les
|
||||
* appels aux domaines.
|
||||
* @access private
|
||||
*/
|
||||
var $islocked = false;
|
||||
|
||||
var $type_local = "VHOST";
|
||||
var $type_url = "URL";
|
||||
var $type_ip = "IP";
|
||||
|
@ -73,15 +73,14 @@ class m_dom {
|
|||
var $type_txt = "TXT";
|
||||
var $type_defmx = "DEFMX";
|
||||
var $type_defmx2 = "DEFMX2";
|
||||
|
||||
var $action_insert = "0";
|
||||
var $action_update = "1";
|
||||
var $action_delete = "2";
|
||||
|
||||
var $tld_no_check_at_all = "1";
|
||||
|
||||
var $cache_domains_type_lst = false;
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
*/
|
||||
|
@ -106,7 +105,8 @@ class m_dom {
|
|||
$err->log("dom", "get_sub_domain_by_name");
|
||||
$fqdn = mysql_real_escape_string($fqdn);
|
||||
$db->query("select sd.* from sub_domaines sd where if(length(sd.sub)>0,concat_ws('.',sd.sub,sd.domaine),sd.domaine) = '$fqdn';");
|
||||
if (! $db->next_record()) return false;
|
||||
if (!$db->next_record())
|
||||
return false;
|
||||
return array('sub_id' => intval($db->f('id')), 'member_id' => intval($db->f('compte')));
|
||||
}
|
||||
|
||||
|
@ -140,14 +140,13 @@ class m_dom {
|
|||
return $obj;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Retourne un tableau contenant les types de domaines
|
||||
*
|
||||
* @return array retourne un tableau indexé contenant la liste types de domaines
|
||||
* authorisé. Retourne FALSE si une erreur s'est produite.
|
||||
* @return array retourne un tableau index<EFBFBD> contenant la liste types de domaines
|
||||
* authoris<EFBFBD>. Retourne FALSE si une erreur s'est produite.
|
||||
*/
|
||||
function domains_type_lst() {
|
||||
global $db, $err;
|
||||
|
@ -170,7 +169,9 @@ class m_dom {
|
|||
while ($db->next_record()) {
|
||||
if ($db->f('Field') == 'enable') {
|
||||
$tab = explode(",", substr($db->f('Type'), 5, -1));
|
||||
foreach($tab as $t) { $r[]=substr($t,1,-1); }
|
||||
foreach ($tab as $t) {
|
||||
$r[] = substr($t, 1, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
|
@ -185,13 +186,16 @@ class m_dom {
|
|||
while ($db->next_record()) {
|
||||
if ($db->f('Field') == 'target') {
|
||||
$tab = explode(",", substr($db->f('Type'), 5, -1));
|
||||
foreach($tab as $t) { $r[]=substr($t,1,-1); }
|
||||
foreach ($tab as $t) {
|
||||
$r[] = substr($t, 1, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
} else {
|
||||
$db->query("select target from domaines_type where name='$type';");
|
||||
if (! $db->next_record()) return false;
|
||||
if (!$db->next_record())
|
||||
return false;
|
||||
return $db->f('target');
|
||||
}
|
||||
}
|
||||
|
@ -208,7 +212,8 @@ class m_dom {
|
|||
$val = array();
|
||||
foreach (explode("\n", $zone) as $z) {
|
||||
$z = trim($z);
|
||||
if (empty($z)) continue;
|
||||
if (empty($z))
|
||||
continue;
|
||||
$val[] = $this->import_manual_dns_entry($z, $domain, $detect_redirect, $save);
|
||||
}
|
||||
return $val;
|
||||
|
@ -218,7 +223,8 @@ class m_dom {
|
|||
global $cuid, $err;
|
||||
$err->log("dom", "import_manual_dns_entry");
|
||||
$zone = trim($zone);
|
||||
if (empty($zone)) return false;
|
||||
if (empty($zone))
|
||||
return false;
|
||||
|
||||
$domain = trim($domain);
|
||||
if (empty($domain)) {
|
||||
|
@ -400,7 +406,8 @@ class m_dom {
|
|||
|
||||
$val = $entry['entry_new'];
|
||||
|
||||
if (empty($val['type'])) return false;
|
||||
if (empty($val['type']))
|
||||
return false;
|
||||
|
||||
switch ($val['type']) {
|
||||
case "set_ttl":
|
||||
|
@ -417,7 +424,8 @@ class m_dom {
|
|||
}
|
||||
|
||||
// If the subdomain is @, we want an empty subdomain
|
||||
if ($val['sub'] == '@') $val['sub'] = '';
|
||||
if ($val['sub'] == '@')
|
||||
$val['sub'] = '';
|
||||
|
||||
$this->lock();
|
||||
$entry['did_it'] = $this->set_sub_domain($val['domain'], $val['sub'], $val['type'], $val['value']);
|
||||
|
@ -526,9 +534,17 @@ class m_dom {
|
|||
$err->raise("dom", _("The name MUST contain only letter and digits"));
|
||||
return false;
|
||||
}
|
||||
$name=mysql_real_escape_string($name); $description=mysql_real_escape_string($description); $target=mysql_real_escape_string($target);
|
||||
$entry=mysql_real_escape_string($entry); $compatibility=mysql_real_escape_string($compatibility); $enable=mysql_real_escape_string($enable);
|
||||
$only_dns=intval($only_dns); $need_dns=intval($need_dns); $advanced=intval($advanced); $create_tmpdir=intval($create_tmpdir); $create_targetdir=intval($create_targetdir);
|
||||
$name = mysql_real_escape_string($name);
|
||||
$description = mysql_real_escape_string($description);
|
||||
$target = mysql_real_escape_string($target);
|
||||
$entry = mysql_real_escape_string($entry);
|
||||
$compatibility = mysql_real_escape_string($compatibility);
|
||||
$enable = mysql_real_escape_string($enable);
|
||||
$only_dns = intval($only_dns);
|
||||
$need_dns = intval($need_dns);
|
||||
$advanced = intval($advanced);
|
||||
$create_tmpdir = intval($create_tmpdir);
|
||||
$create_targetdir = intval($create_targetdir);
|
||||
$db->query("UPDATE domaines_type SET description='$description', target='$target', entry='$entry', compatibility='$compatibility', enable='$enable', need_dns=$need_dns, only_dns=$only_dns, advanced='$advanced',create_tmpdir=$create_tmpdir,create_targetdir=$create_targetdir where name='$name';");
|
||||
return true;
|
||||
}
|
||||
|
@ -538,7 +554,8 @@ class m_dom {
|
|||
$err->log("dom", "sub_domain_change_status");
|
||||
$sub_id = intval($sub_id);
|
||||
$status = strtoupper($status);
|
||||
if (! in_array($status,array('ENABLE', 'DISABLE'))) return false;
|
||||
if (!in_array($status, array('ENABLE', 'DISABLE')))
|
||||
return false;
|
||||
|
||||
$jh = $this->get_sub_domain_all($sub_id);
|
||||
if ($status == 'ENABLE') { // check compatibility with existing sub_domains
|
||||
|
@ -555,18 +572,21 @@ class m_dom {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Retourne un tableau contenant les domaines d'un membre.
|
||||
* Par défaut le membre connecté
|
||||
* Par d<EFBFBD>faut le membre connect<EFBFBD>
|
||||
*
|
||||
* @return array retourne un tableau indexé contenant la liste des
|
||||
* domaines hébergés sur le compte courant. Retourne FALSE si une
|
||||
* @return array retourne un tableau index<EFBFBD> contenant la liste des
|
||||
* domaines h<EFBFBD>berg<EFBFBD>s sur le compte courant. Retourne FALSE si une
|
||||
* erreur s'est produite.
|
||||
*/
|
||||
function enum_domains($uid = -1) {
|
||||
global $db, $err, $cuid;
|
||||
$err->log("dom", "enum_domains");
|
||||
if ($uid == -1) { $uid = $cuid; }
|
||||
if ($uid == -1) {
|
||||
$uid = $cuid;
|
||||
}
|
||||
$db->query("SELECT * FROM domaines WHERE compte='{$uid}' ORDER BY domaine ASC;");
|
||||
$this->domains = array();
|
||||
if ($db->num_rows() > 0) {
|
||||
|
@ -590,15 +610,16 @@ class m_dom {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Efface un domaine du membre courant, et tous ses sous-domaines
|
||||
*
|
||||
* Cette fonction efface un domaine et tous ses sous-domaines, ainsi que
|
||||
* les autres services attachés à celui-ci. Elle appelle donc les autres
|
||||
* classe. Chaque classe peut déclarer une fonction del_dom qui sera
|
||||
* appellée lors de la destruction d'un domaine.
|
||||
* les autres services attach<EFBFBD>s <EFBFBD> celui-ci. Elle appelle donc les autres
|
||||
* classe. Chaque classe peut d<EFBFBD>clarer une fonction del_dom qui sera
|
||||
* appell<EFBFBD>e lors de la destruction d'un domaine.
|
||||
*
|
||||
* @param string $dom nom de domaine à effacer
|
||||
* @param string $dom nom de domaine <EFBFBD> effacer
|
||||
* @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon.
|
||||
*/
|
||||
function del_domain($dom) {
|
||||
|
@ -632,24 +653,25 @@ class m_dom {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Installe un domaine sur le compte courant.
|
||||
*
|
||||
* <p>Si le domaine existe déjà ou est interdit, ou est celui du serveur,
|
||||
* l'installation est refusée. Si l'hébergement DNS est demandé, la fonction
|
||||
* checkhostallow vérifiera que le domaine peut être installé conformément
|
||||
* <p>Si le domaine existe d<EFBFBD>j<EFBFBD> ou est interdit, ou est celui du serveur,
|
||||
* l'installation est refus<75>e. Si l'h<EFBFBD>bergement DNS est demand<EFBFBD>, la fonction
|
||||
* checkhostallow v<EFBFBD>rifiera que le domaine peut <EFBFBD>tre install<EFBFBD> conform<EFBFBD>ment
|
||||
* aux demandes des super-admin.
|
||||
* Si le dns n'est pas demandé, le domaine peut être installé s'il est en
|
||||
* Si le dns n'est pas demand<EFBFBD>, le domaine peut <20>tre install<6C> s'il est en
|
||||
* seconde main d'un tld (exemple : test.eu.org ou test.com, mais pas
|
||||
* toto.test.org ou test.test.asso.fr)</p>
|
||||
* <p>Chaque classe peut définir une fonction add_dom($dom) qui sera
|
||||
* appellée lors de l'installation d'un nouveau domaine.</p>
|
||||
* <p>Chaque classe peut d<EFBFBD>finir une fonction add_dom($dom) qui sera
|
||||
* appell<EFBFBD>e lors de l'installation d'un nouveau domaine.</p>
|
||||
*
|
||||
* @param string $dom nom fqdn du domaine à installer
|
||||
* @param boolean $dns 1 ou 0 pour héberger le DNS du domaine ou pas.
|
||||
* @param string $dom nom fqdn du domaine <EFBFBD> installer
|
||||
* @param boolean $dns 1 ou 0 pour h<EFBFBD>berger le DNS du domaine ou pas.
|
||||
* @param boolean $noerase 1 ou 0 pour rendre le domaine inamovible ou non
|
||||
* @param boolean $force 1 ou 0, si 1, n'effectue pas les tests de DNS.
|
||||
* force ne devrait être utilisé que par le super-admin.
|
||||
* force ne devrait <EFBFBD>tre utilis<EFBFBD> que par le super-admin.
|
||||
$ @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon.
|
||||
*/
|
||||
function add_domain($domain, $dns, $noerase = false, $force = false, $isslave = false, $slavedom = "") {
|
||||
|
@ -668,7 +690,7 @@ class m_dom {
|
|||
$err->raise("dom", _("The domain name is syntaxically incorrect"));
|
||||
return false;
|
||||
}
|
||||
// Interdit les domaines clés (table forbidden_domains) sauf en cas FORCE
|
||||
// Interdit les domaines cl<63>s (table forbidden_domains) sauf en cas FORCE
|
||||
$db->query("SELECT domain FROM forbidden_domains WHERE domain='$domain'");
|
||||
if ($db->num_rows() && !$force) {
|
||||
$err->raise("dom", _("The requested domain is forbidden in this server, please contact the administrator"));
|
||||
|
@ -704,10 +726,14 @@ class m_dom {
|
|||
return false;
|
||||
}
|
||||
|
||||
if ($dns) $dns="1"; else $dns="0";
|
||||
if ($dns)
|
||||
$dns = "1";
|
||||
else
|
||||
$dns = "0";
|
||||
|
||||
// mode 5 : force DNS to NO.
|
||||
if ($tld[$v]==5) $dns=0;
|
||||
if ($tld[$v] == 5)
|
||||
$dns = 0;
|
||||
// It must be a real domain (no subdomain)
|
||||
if (!$dns) {
|
||||
$v = checkhostallow_nodns($domain);
|
||||
|
@ -722,8 +748,14 @@ class m_dom {
|
|||
$err->raise("dom", _("Your domain quota is over, you cannot create more domain names"));
|
||||
return false;
|
||||
}
|
||||
if ($noerase) $noerase="1"; else $noerase="0";
|
||||
if ($dns) $gesmx="1"; else $gesmx="0"; // do not host mx by default if not hosting the DNS
|
||||
if ($noerase)
|
||||
$noerase = "1";
|
||||
else
|
||||
$noerase = "0";
|
||||
if ($dns)
|
||||
$gesmx = "1";
|
||||
else
|
||||
$gesmx = "0"; // do not host mx by default if not hosting the DNS
|
||||
$db->query("INSERT INTO domaines (compte,domaine,gesdns,gesmx,noerase,dns_action) VALUES ('$cuid','$domain','$dns','$gesmx','$noerase','UPDATE');");
|
||||
if (!($id = $db->lastid())) {
|
||||
$err->raise("dom", _("An unexpected error occured when creating the domain"));
|
||||
|
@ -752,7 +784,8 @@ class m_dom {
|
|||
}
|
||||
// New Hooks:
|
||||
$hooks->invoke("hook_dom_add_domain", array($id));
|
||||
if ($gesmx) $hooks->invoke("hook_dom_add_mx_domain",array($id));
|
||||
if ($gesmx)
|
||||
$hooks->invoke("hook_dom_add_mx_domain", array($id));
|
||||
if ($isslave) {
|
||||
$hooks->invoke("hook_dom_add_slave_domain", array($id, $slavedom));
|
||||
}
|
||||
|
@ -792,7 +825,6 @@ class m_dom {
|
|||
return $axfr;
|
||||
}
|
||||
|
||||
|
||||
function lst_default_subdomains() {
|
||||
global $db, $err;
|
||||
$err->log("dom", "lst_default_subdomains");
|
||||
|
@ -812,16 +844,17 @@ class m_dom {
|
|||
return $c;
|
||||
}
|
||||
|
||||
|
||||
function update_default_subdomains($arr) {
|
||||
global $err;
|
||||
$err->log("dom", "update_default_subdomains");
|
||||
$ok = true;
|
||||
foreach ($arr as $a) {
|
||||
if (! isset($a['id'])) $a['id']=null;
|
||||
if (!isset($a['id']))
|
||||
$a['id'] = null;
|
||||
if (!empty($a['sub']) || !empty($a['domain_type_parameter'])) {
|
||||
|
||||
if (! isset($a['enabled'])) $a['enabled']=0;
|
||||
if (!isset($a['enabled']))
|
||||
$a['enabled'] = 0;
|
||||
if (!$this->update_one_default($a['domain_type'], $a['sub'], $a['domain_type_parameter'], $a['concerned'], $a['enabled'], $a['id'])) {
|
||||
$ok = false;
|
||||
}
|
||||
|
@ -840,8 +873,6 @@ class m_dom {
|
|||
$db->query("UPDATE default_subdomains set sub='" . addslashes($sub) . "', domain_type='" . addslashes($domain_type) . "',domain_type_parameter='" . addslashes($domain_type_parameter) . "',concerned='" . addslashes($concerned) . "',enabled='" . addslashes($enabled) . "' where id=" . addslashes($id) . ";");
|
||||
return true;
|
||||
//update
|
||||
|
||||
|
||||
}
|
||||
|
||||
function del_default_type($id) {
|
||||
|
@ -854,23 +885,22 @@ class m_dom {
|
|||
}
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Retourne les entrées DNS du domaine $domain issues du WHOIS.
|
||||
* Retourne les entr<EFBFBD>es DNS du domaine $domain issues du WHOIS.
|
||||
*
|
||||
* Cette fonction effectue un appel WHOIS($domain) sur Internet,
|
||||
* et extrait du whois les serveurs DNS du domaine demandé. En fonction
|
||||
* et extrait du whois les serveurs DNS du domaine demand<EFBFBD>. En fonction
|
||||
* du TLD, on sait (ou pas) faire le whois correspondant.
|
||||
* Actuellement, les tld suivants sont supportés :
|
||||
* Actuellement, les tld suivants sont support<EFBFBD>s :
|
||||
* .com .net .org .be .info .ca .cx .fr .biz .name
|
||||
*
|
||||
* @param string $domain Domaine fqdn dont on souhaite les serveurs DNS
|
||||
* @return array Retourne un tableau indexé avec les NOMS fqdn des dns
|
||||
* du domaine demandé. Retourne FALSE si une erreur s'est produite.
|
||||
* @return array Retourne un tableau index<EFBFBD> avec les NOMS fqdn des dns
|
||||
* du domaine demand<EFBFBD>. Retourne FALSE si une erreur s'est produite.
|
||||
*
|
||||
*/
|
||||
function whois($domain) {
|
||||
|
@ -890,7 +920,9 @@ class m_dom {
|
|||
$state = 0;
|
||||
while (!feof($fp)) {
|
||||
$ligne = fgets($fp, 128);
|
||||
if (preg_match('#^whois:#', $ligne)) { $serveur=preg_replace('/whois:\ */','',$ligne,1); }
|
||||
if (preg_match('#^whois:#', $ligne)) {
|
||||
$serveur = preg_replace('/whois:\ */', '', $ligne, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
$serveur = str_replace(array(" ", "\n"), "", $serveur);
|
||||
|
@ -1011,13 +1043,16 @@ class m_dom {
|
|||
$err->raise("dom", _("The domain cannot be found in the Whois database"));
|
||||
return false;
|
||||
}
|
||||
} // whois
|
||||
}
|
||||
|
||||
// whois
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* vérifie la presence d'un champs mx valide sur un serveur DNS
|
||||
* $domaine est le domaine dont on veux véririfer les MX
|
||||
* v<EFBFBD>rifie la presence d'un champs mx valide sur un serveur DNS
|
||||
* $domaine est le domaine dont on veux v<EFBFBD>ririfer les MX
|
||||
* $ref_domaine est le domaine avec lequel on veux comparer les MX
|
||||
* si $ref_domaine == false, on prend les MX par default
|
||||
*
|
||||
|
@ -1036,9 +1071,9 @@ class m_dom {
|
|||
return 3;
|
||||
}
|
||||
|
||||
//récupére les champs mx
|
||||
//r<>cup<75>re les champs mx
|
||||
if (!getmxrr($domaine, $mxhosts)) {
|
||||
//aucun hôte mx spécifié
|
||||
//aucun h<>te mx sp<73>cifi<66>
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -1055,10 +1090,13 @@ class m_dom {
|
|||
}
|
||||
|
||||
return 0;
|
||||
} //checkmx
|
||||
}
|
||||
|
||||
//checkmx
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* retourne TOUTES les infos d'un domaine
|
||||
*
|
||||
|
@ -1130,16 +1168,19 @@ class m_dom {
|
|||
}
|
||||
$db->free();
|
||||
return $r;
|
||||
} // get_domain_all
|
||||
}
|
||||
|
||||
// get_domain_all
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Retourne TOUTES les infos d'un sous domaine du compte courant.
|
||||
*
|
||||
* @param integer sub_domain_id id du subdomain
|
||||
* @return arrray Retourne un tableau associatif contenant les
|
||||
* informations du sous-domaine demandé.<pre>
|
||||
* informations du sous-domaine demand<EFBFBD>.<pre>
|
||||
* $r["name"]= nom du sous-domaine (NON-complet)
|
||||
* $r["dest"]= Destination (url, ip, local ...)
|
||||
* </pre>
|
||||
|
@ -1172,7 +1213,9 @@ class m_dom {
|
|||
$r["web_action"] = $db->Record["web_action"];
|
||||
$db->free();
|
||||
return $r;
|
||||
} // get_sub_domain_all
|
||||
}
|
||||
|
||||
// get_sub_domain_all
|
||||
|
||||
function check_type_value($type, $value) {
|
||||
global $db, $err, $cuid;
|
||||
|
@ -1180,7 +1223,9 @@ class m_dom {
|
|||
// check the type we can have in domaines_type.target
|
||||
switch ($this->domains_type_target_values($type)) {
|
||||
case 'NONE':
|
||||
if (empty($value) or is_null($value)) {return true;}
|
||||
if (empty($value) or is_null($value)) {
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 'URL':
|
||||
if ($value == strval($value)) {
|
||||
|
@ -1240,10 +1285,13 @@ class m_dom {
|
|||
break;
|
||||
}
|
||||
return false;
|
||||
} //check_type_value
|
||||
}
|
||||
|
||||
//check_type_value
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Check the compatibility of the POSTed parameters with the chosen
|
||||
* domain type
|
||||
|
@ -1258,7 +1306,8 @@ class m_dom {
|
|||
|
||||
// Get the compatibility list for this domain type
|
||||
$db->query("select upper(compatibility) as compatibility from domaines_type where upper(name)=upper('$type');");
|
||||
if (!$db->next_record()) return false;
|
||||
if (!$db->next_record())
|
||||
return false;
|
||||
$compatibility_lst = explode(",", $db->f('compatibility'));
|
||||
|
||||
// Get the list of type of subdomains already here who have the same name
|
||||
|
@ -1266,7 +1315,8 @@ class m_dom {
|
|||
#$db->query("select * from sub_domaines where sub='$sub' and domaine='$dom';");
|
||||
while ($db->next_record()) {
|
||||
// And if there is a domain with a incompatible type, return false
|
||||
if (! in_array(strtoupper($db->f('type')),$compatibility_lst)) return false;
|
||||
if (!in_array(strtoupper($db->f('type')), $compatibility_lst))
|
||||
return false;
|
||||
}
|
||||
|
||||
// All is right, go ! Create ur domain !
|
||||
|
@ -1274,18 +1324,19 @@ class m_dom {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Modifier les information du sous-domaine demandé.
|
||||
* Modifier les information du sous-domaine demand<EFBFBD>.
|
||||
*
|
||||
* <b>Note</b> : si le sous-domaine $sub.$dom n'existe pas, il est créé.<br />
|
||||
* <b>Note : TODO</b> : vérification de concordance de $dest<br />
|
||||
* <b>Note</b> : si le sous-domaine $sub.$dom n'existe pas, il est cr<EFBFBD><EFBFBD>.<br />
|
||||
* <b>Note : TODO</b> : v<EFBFBD>rification de concordance de $dest<br />
|
||||
*
|
||||
* @param string $dom Domaine dont on souhaite modifier/ajouter un sous domaine
|
||||
* @param string $subk Sous domaine à modifier / créer
|
||||
* @param string $subk Sous domaine <EFBFBD> modifier / cr<EFBFBD>er
|
||||
* @param integer $type Type de sous-domaine (local, ip, url ...)
|
||||
* @param string $action Action : vaut "add" ou "edit" selon que l'on
|
||||
* Crée (add) ou Modifie (edit) le sous-domaine
|
||||
* @param string $dest Destination du sous-domaine, dépend de la valeur
|
||||
* Cr<EFBFBD>e (add) ou Modifie (edit) le sous-domaine
|
||||
* @param string $dest Destination du sous-domaine, d<EFBFBD>pend de la valeur
|
||||
* de $type (url, ip, dossier...)
|
||||
* @return boolean Retourne FALSE si une erreur s'est produite, TRUE sinon.
|
||||
*/
|
||||
|
@ -1311,12 +1362,12 @@ class m_dom {
|
|||
}
|
||||
|
||||
if (!$this->check_type_value($type, $dest)) {
|
||||
//plutot verifier si la chaine d'erreur est vide avant de raise sinon sa veut dire que l(erruer est deja remonté
|
||||
//plutot verifier si la chaine d'erreur est vide avant de raise sinon sa veut dire que l(erruer est deja remont<EFBFBD>
|
||||
#$err->raise("dom",_("Invalid domain type selected, please check"));
|
||||
return false;
|
||||
}
|
||||
|
||||
// On a épuré $dir des problèmes eventuels ... On est en DESSOUS du dossier de l'utilisateur.
|
||||
// On a <20>pur<75> $dir des probl<62>mes eventuels ... On est en DESSOUS du dossier de l'utilisateur.
|
||||
if ($t = checkfqdn($dom)) {
|
||||
$err->raise("dom", _("The domain name is syntaxically incorrect"));
|
||||
return false;
|
||||
|
@ -1366,12 +1417,15 @@ class m_dom {
|
|||
$db->query("update domaines set dns_action='UPDATE' where domaine='$dom';");
|
||||
|
||||
return true;
|
||||
} // set_sub_domain
|
||||
}
|
||||
|
||||
// set_sub_domain
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Supprime le sous-domaine demandé
|
||||
* Supprime le sous-domaine demand<EFBFBD>
|
||||
*
|
||||
* @param string $dom Domaine dont on souhaite supprimer un sous-domaine
|
||||
* @param string $sub Sous-domaine que l'on souhaite supprimer
|
||||
|
@ -1394,8 +1448,9 @@ class m_dom {
|
|||
$db->query("update domaines set dns_action='UPDATE' where domaine='" . $r['domain'] . "';");
|
||||
}
|
||||
return true;
|
||||
} // del_sub_domain
|
||||
}
|
||||
|
||||
// del_sub_domain
|
||||
|
||||
function set_ttl($dom_id, $ttl) {
|
||||
global $err;
|
||||
|
@ -1410,12 +1465,13 @@ class m_dom {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Modifie les information du domaine précisé.
|
||||
* Modifie les information du domaine pr<EFBFBD>cis<EFBFBD>.
|
||||
*
|
||||
* @param string $dom Domaine du compte courant que l'on souhaite modifier
|
||||
* @param integer $dns Vaut 1 ou 0 pour héberger ou pas le DNS du domaine
|
||||
* @param integer $gesmx Héberge-t-on le emails du domaines sur ce serveur ?
|
||||
* @param integer $dns Vaut 1 ou 0 pour h<EFBFBD>berger ou pas le DNS du domaine
|
||||
* @param integer $gesmx H<EFBFBD>berge-t-on le emails du domaines sur ce serveur ?
|
||||
* @param boolean $force Faut-il passer les checks DNS ou MX ? (admin only)
|
||||
* @return boolean appelle $mail->add_dom ou $ma->del_dom si besoin, en
|
||||
* fonction du champs MX. Retourne FALSE si une erreur s'est produite,
|
||||
|
@ -1448,7 +1504,9 @@ class m_dom {
|
|||
}
|
||||
|
||||
# Can't have ttl == 0. There is also a check in function_dns
|
||||
if ( $ttl == 0 ) { $ttl = 86400; }
|
||||
if ($ttl == 0) {
|
||||
$ttl = 86400;
|
||||
}
|
||||
|
||||
$t = checkfqdn($dom);
|
||||
if ($t) {
|
||||
|
@ -1460,14 +1518,15 @@ class m_dom {
|
|||
$err->raise("dom", _("The domain name %s does not exist"), $dom);
|
||||
return false;
|
||||
}
|
||||
if ($dns!="1") $dns="0";
|
||||
// On vérifie que des modifications ont bien eu lieu :)
|
||||
if ($dns != "1")
|
||||
$dns = "0";
|
||||
// On v<>rifie que des modifications ont bien eu lieu :)
|
||||
if ($r["dns"] == $dns && $r["mail"] == $gesmx && $r["zonettl"] == $ttl) {
|
||||
$err->raise("dom", _("No change has been requested..."));
|
||||
return true;
|
||||
}
|
||||
|
||||
//si gestion mx uniquement, vérification du dns externe
|
||||
//si gestion mx uniquement, v<>rification du dns externe
|
||||
if ($dns == "0" && $gesmx == "1" && !$force) {
|
||||
$vmx = $this->checkmx($dom);
|
||||
if ($vmx == 1) {
|
||||
|
@ -1475,7 +1534,7 @@ class m_dom {
|
|||
}
|
||||
|
||||
if ($vmx == 2) {
|
||||
// Serveur non spécifié parmi les champx mx
|
||||
// Serveur non sp<73>cifi<66> parmi les champx mx
|
||||
$err->raise("dom", _("There is no MX record pointing to this server, and you are asking us to host the mail here. Make sure to update your MX entries or no mail will be received"));
|
||||
}
|
||||
}
|
||||
|
@ -1484,7 +1543,7 @@ class m_dom {
|
|||
$hooks->invoke("hook_dom_add_mx_domain", array($r["id"]));
|
||||
}
|
||||
|
||||
if (!$gesmx && $r["mail"]) { // on a dissocié le MX : on détruit donc l'entree dans LDAP
|
||||
if (!$gesmx && $r["mail"]) { // on a dissoci<EFBFBD> le MX : on d<>truit donc l'entree dans LDAP
|
||||
$hooks->invoke("hook_dom_del_mx_domain", array($r["id"]));
|
||||
}
|
||||
|
||||
|
@ -1492,7 +1551,9 @@ class m_dom {
|
|||
$dom->set_dns_action($dom, 'UPDATE');
|
||||
|
||||
return true;
|
||||
} // edit_domain
|
||||
}
|
||||
|
||||
// edit_domain
|
||||
|
||||
|
||||
/* * ************************* */
|
||||
|
@ -1501,6 +1562,7 @@ class m_dom {
|
|||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Return the list of ip addresses and classes that are allowed access to domain list
|
||||
* through AXFR Transfers from the bind server.
|
||||
*/
|
||||
|
@ -1517,8 +1579,8 @@ class m_dom {
|
|||
return $res;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Add an ip address (or a ip class) to the list of allowed slave ip access list.
|
||||
*/
|
||||
function add_slave_ip($ip, $class = "32") {
|
||||
|
@ -1528,7 +1590,8 @@ class m_dom {
|
|||
return false;
|
||||
}
|
||||
$class = intval($class);
|
||||
if ($class<8 || $class>32) $class=32;
|
||||
if ($class < 8 || $class > 32)
|
||||
$class = 32;
|
||||
$db->query("SELECT * FROM slaveip WHERE ip='$ip' AND class='$class';");
|
||||
if ($db->next_record()) {
|
||||
$err->raise("err", _("The requested domain is forbidden in this server, please contact the administrator"));
|
||||
|
@ -1541,8 +1604,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Remove an ip address (or a ip class) from the list of allowed slave ip access list.
|
||||
*/
|
||||
function del_slave_ip($ip) {
|
||||
|
@ -1558,8 +1621,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Check for a slave account
|
||||
*/
|
||||
function check_slave_account($login, $pass) {
|
||||
|
@ -1571,8 +1634,8 @@ class m_dom {
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Out (echo) the complete hosted domain list :
|
||||
*/
|
||||
function echo_domain_list($integrity = false) {
|
||||
|
@ -1590,8 +1653,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Returns the complete hosted domain list :
|
||||
*/
|
||||
function get_domain_list($uid = -1) {
|
||||
|
@ -1627,8 +1690,8 @@ class m_dom {
|
|||
return $res;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Returns the name of a domain for the current user, from it's domain_id
|
||||
* @param $dom_id integer the domain_id to search for
|
||||
* @return string the domain name, or false with an error raised.
|
||||
|
@ -1651,8 +1714,8 @@ class m_dom {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Returns the id of a domain for the current user, from it's domain name
|
||||
* @param $domain string the domain name to search for
|
||||
* @return integer the domain id, or false with an error raised.
|
||||
|
@ -1675,8 +1738,8 @@ class m_dom {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Count all domains, for all users
|
||||
*/
|
||||
function count_domains_all() {
|
||||
|
@ -1689,8 +1752,8 @@ class m_dom {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Return the list of allowed slave accounts
|
||||
*/
|
||||
function enum_slave_account() {
|
||||
|
@ -1700,12 +1763,13 @@ class m_dom {
|
|||
while ($db->next_record()) {
|
||||
$res[] = $db->Record;
|
||||
}
|
||||
if (!count($res)) return false;
|
||||
if (!count($res))
|
||||
return false;
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Add a slave account that will be allowed to access the domain list
|
||||
*/
|
||||
function add_slave_account($login, $pass) {
|
||||
|
@ -1719,8 +1783,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Remove a slave account
|
||||
*/
|
||||
function del_slave_account($login) {
|
||||
|
@ -1729,13 +1793,13 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* * ********** */
|
||||
/* Private */
|
||||
/* * ********** */
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Try to lock a domain
|
||||
* @access private
|
||||
*/
|
||||
|
@ -1752,8 +1816,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Unlock the cron for domain management
|
||||
* return true
|
||||
* @access private
|
||||
|
@ -1768,8 +1832,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Declare that a domain's emails are hosted in this server :
|
||||
* This adds 2 MX entries in this domain (if required)
|
||||
*/
|
||||
|
@ -1784,8 +1848,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
* Delete an account (all his domains)
|
||||
*/
|
||||
|
@ -1799,8 +1863,8 @@ class m_dom {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** Returns the used quota for the $name service for the current user.
|
||||
* @param $name string name of the quota
|
||||
* @return integer the number of service used or false if an error occured
|
||||
|
@ -1817,8 +1881,8 @@ class m_dom {
|
|||
return $q;
|
||||
}
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
||||
/** Returns the global domain(s) configuration(s) of a particular user
|
||||
* No parameters needed
|
||||
* */
|
||||
|
@ -1859,14 +1923,12 @@ class m_dom {
|
|||
$str.=" <type>" . $sub["type"] . " </type>\n";
|
||||
$str.=" </subdomain>\n";
|
||||
}
|
||||
|
||||
}
|
||||
$str.=" </domaines>\n";
|
||||
}
|
||||
return $str;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return an array with all the needed parameters to generate conf
|
||||
* of a vhost.
|
||||
|
@ -1927,7 +1989,8 @@ function generation_domains_type() {
|
|||
global $dom;
|
||||
$d = array();
|
||||
foreach ($dom->domains_type_lst() as $k => $v) {
|
||||
if ( $v['only_dns'] == true ) continue;
|
||||
if ($v['only_dns'] == true)
|
||||
continue;
|
||||
if (!$j = file_get_contents(ALTERNC_APACHE2_GEN_TMPL_DIR . '/' . strtolower($k) . '.conf')) {
|
||||
die("Error: missing file for $k");
|
||||
}
|
||||
|
@ -1939,7 +2002,8 @@ function generation_domains_type() {
|
|||
|
||||
// Launch old fashionned hooks as there was in AlternC 1.0
|
||||
function generate_conf_oldhook($action, $lst_sub, $sub_obj = null) {
|
||||
if (is_null($sub_obj)) $sub_obj=$this->generation_parameters(null, false);
|
||||
if (is_null($sub_obj))
|
||||
$sub_obj = $this->generation_parameters(null, false);
|
||||
|
||||
if (!isset($lst_sub[strtoupper($action)]) || empty($lst_sub[strtoupper($action)])) {
|
||||
return false;
|
||||
|
@ -2053,6 +2117,7 @@ function generate_apacheconf($p = null) {
|
|||
}
|
||||
|
||||
/* ----------------------------------------------------------------- */
|
||||
|
||||
/** hook function called by AlternC-upnp to know which open
|
||||
* tcp or udp ports this class requires or suggests
|
||||
* @return array a key => value list of port protocol name mandatory values
|
||||
|
@ -2119,4 +2184,6 @@ function generate_apacheconf($p = null) {
|
|||
_("AlternC panel access");
|
||||
}
|
||||
|
||||
} /* Class m_domains */
|
||||
}
|
||||
|
||||
/* Class m_domains */
|
||||
|
|
Loading…
Reference in New Issue