* @author Thomas Martin * @author Sebastien Palma * @version 1.0 */ require_once EVOADMIN_BASE . '../lib/bdd.php'; require_once EVOADMIN_BASE . '../lib/domain.php'; global $conf; if (isset($params[2]) && $params[2] == "edit") { $redirect_url = "/webadmin/" . $params[1] . "/domain/"; if (isset($params[3]) && $params[3] == "") http_redirect($redirect_url); require_once EVOADMIN_BASE . '../evolibs/Form.php'; include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; $form = new FormPage("Modification du Servername", FALSE); $form->addField('domain_servername', new DomainInputFormField("Servername", TRUE), $params[3]); $form->addField('previous_servername', new DomainInputFormField("", TRUE, TRUE), $params[3]); if (!empty($_POST)) { $form->isCurrentPage(TRUE); $form->initFields(); if ($form->verify(TRUE)) { // TODO: Adapt the script for cluster mode if ($conf['cluster']) { if (is_mcluster_mode()) { // If the user has not yet selected a cluster, redirect-it to home page. if (empty($_SESSION['cluster'])) { http_redirect('/'); } $cache = str_replace('%cluster_name%', $_SESSION['cluster'], $conf['cache']); } else { $cache = $conf['cache']; } $bdd = new bdd(); $bdd->open($cache); $servername = array ( 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), 'servername' => $form->getField('domain_servername')->getValue(), 'previous_servername' => $form->getField('previous_servername')->getValue(), ); $account_name=$servername['domain']; $account = $bdd->get_account($account_name); if (sizeof($account) == 0) die("Anomalie... Contactez votre administrateur."); $master = $bdd->get_server_from_roleid($account['id_master']); $slave = $bdd->get_server_from_roleid($account['id_slave']); if ( $bdd->is_serveralias( $account_name, $serveralias['alias'] ) == 0 ) { /* web-add-cluster addalias */ $exec_cmd = 'web-add-cluster.sh add-alias '.$serveralias['domain'].' '.$serveralias['alias'].' '.$master.' '.$slave; sudoexec($exec_cmd, $exec_output, $exec_return); if ($exec_return == 0) { /* Ajout BDD */ $bdd->add_serveralias($serveralias); domain_add($serveralias['alias'], gethostbyname($master) , false); # Si le compte en question est en replication temps # reel, il faut faire un restart manuel de lsyncd # pour prendre en compte le nouveau domaine. if ($account['replication'] == "realtime") { mail('tech@evolix.fr', "[TAF] Redemarrer lsyncd sur $master", wordwrap('killer tous les processus lsyncd lancé par vmail pour le compte '.$account['name'].' et les relancer (cf. la ligne correspondante à ce compte dans la crontab de vmail).\n', 70)); } print "
"; printf ('

L\'alias %s du domaine %s a bien été créé

', $serveralias['alias'], $serveralias['domain']); printf ('

Retour à la liste des alias

', $redirect_url); print "
"; } else { print "
"; printf ('

Echec dans la creation de l\'alias %s du domaine %s

', $serveralias['alias'], $serveralias['domain']); printf ('

Retour à la liste des alias

', $redirect_url); print "
"; } } else { print "
"; printf ('

Alias %s du domaine %s deja existant !

', $serveralias['alias'], $serveralias['domain']); printf ('

Retour à la liste des alias

', $redirect_url); print "
"; } } else { $servername = array ( 'domain' => $params[1], 'servername' => $form->getField('domain_servername')->getValue(), 'previous_servername' => $form->getField('previous_servername')->getValue(), ); $account_name=$servername['domain']; $is_servername_present = check_occurence_name($servername['servername']); if (!$is_servername_present) { $exec_cmd = 'web-add.sh update-servername ' . $servername['domain'] . ' ' . $servername['servername'] . ' ' . $servername['previous_servername']; sudoexec($exec_cmd, $exec_output, $exec_return); if ($exec_return == 0) { //domain_add($serveralias['alias'], gethostbyname($master) , false); TODO avec l'IP du load balancer print "
"; printf ('

Le Servername %s a bien été modifié

', $servername['servername']); printf ('

Retour à la liste des Servernames

', $redirect_url); print "
"; } else { print "
"; printf ('

Echec dans la modification du Servername %s

', $servername['servername']); printf ('

Retour à la liste des Servernames

', $redirect_url); print "
"; } } else { print "
"; printf ('

Echec dans la modification du Servername %s

', $servername['servername']); print ('

Le domaine existe déjà dans d\'autres vhosts.'); printf ('

Retour à la liste des Servernames

', $redirect_url); print "
"; } } } else { print "

Modification du Servername


"; print "
"; print "
"; print " Modification du Servername"; print $form; print "

"; print "
"; print "
"; } } else { print "

Modification du Servername


"; print "
"; print "
"; print " Modification du Servername"; print $form; print "

"; print "
"; print "
"; } include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; } else { $domain = $params[1]; $servername_list = array(); // TODO: adapt for cluster mode if ($conf['cluster']) { if (is_mcluster_mode()) { // If the user has not yet selected a cluster, redirect-it to home page. if (empty($_SESSION['cluster'])) { http_redirect('/'); } $cache = str_replace('%cluster_name%', $_SESSION['cluster'], $conf['cache']); } else { $cache = $conf['cache']; } $alias_list = array(); /* parcours de la table Serveralias */ $bdd = new bdd(); $bdd->open($cache); $alias_list = $bdd->list_serveralias($domain); } else { $cmd = 'web-add.sh list-vhost ' . $domain; if(!is_superadmin()) { $cmd = sprintf('%s %s', $cmd, $_SESSION['user']); } sudoexec($cmd, $data_output, $exec_return); $data_vhost = explode(':', $data_output[0]); $servername = $data_vhost[2]; } include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; include_once EVOADMIN_BASE . '../tpl/webadmin-servername.tpl.php'; include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; } ?>