* @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($_GET['del']) ) { include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; $alias = htmlspecialchars($_GET['del']); if (isset($_GET['modif']) && ($_GET['modif'] == 'yes')) { print "
"; print "

Suppression de $alias...

"; $serveralias = array ( 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), 'alias' => $alias ); 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); $account_name=$serveralias['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']); /* web-add-cluster addalias */ $exec_cmd = 'web-add-cluster.sh del-alias '.$serveralias['domain'].' '.$serveralias['alias'].' '.$master.' '.$slave; sudoexec($exec_cmd, $exec_output, $exec_return); if ($exec_return == 0) { if (! $bdd->del_serveralias($serveralias)) print "

La suppression a échouée. Veuillez contacter votre administrateur.

"; printf ('

Alias %s est supprimé.

', $serveralias['alias']); } else print "

La suppression a échouée. Veuillez contacter votre administrateur.

"; } else { $exec_cmd = 'web-add.sh del-alias ' . $serveralias['domain'] . ' ' . $serveralias['alias']; sudoexec($exec_cmd, $exec_output, $exec_return); if ($exec_return == 0) { printf ('

Alias %s est supprimé.

', $serveralias['alias']); } else print "

La suppression a échouée. Veuillez contacter votre administrateur.

"; } printf ('

Retour à la liste des alias

', $_SERVER['REDIRECT_URL']); print "
"; } else if ( ! isset($_GET['modif']) ) { print "
"; print "

Confirmez vous la suppression de $alias ?

"; printf ('

Confirmer la suppression

', $_SERVER['REDIRECT_URL'], $alias); printf ('

Retour à la liste des alias

', $_SERVER['REDIRECT_URL']); print "
"; } include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; } else if (isset($_GET['add']) ) { 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("Ajout d'un alias", FALSE); $form->addField('domain_alias', new TextInputFormField("Alias", FALSE)); if (!empty($_POST)) { $form->isCurrentPage(TRUE); $form->initFields(); if ($form->verify(TRUE)) { 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); $serveralias = array ( 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), 'alias' => $form->getField('domain_alias')->getValue(), ); $account_name=$serveralias['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

', $_SERVER['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

', $_SERVER['REDIRECT_URL']); print "
"; } } else { print "
"; printf ('

Alias %s du domaine %s deja existant !

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

Retour à la liste des alias

', $_SERVER['REDIRECT_URL']); print "
"; } } else { $serveralias = array ( 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), 'alias' => $form->getField('domain_alias')->getValue(), ); $account_name=$serveralias['domain']; $exec_cmd = 'web-add.sh add-alias ' . $serveralias['domain'] . ' ' . $serveralias['alias']; 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 ('

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

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

Retour à la liste des alias

', $_SERVER['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

', $_SERVER['REDIRECT_URL']); print "
"; } } } } else { print "

Ajout d'un serveralias


"; print "
"; print "
"; print " Ajout d'un serveralias"; print $form; print "

"; print "
"; print "
"; } include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; } else { $domain = $params[1]; $alias_list = array(); 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'; if(!is_superadmin()) { $cmd = sprintf('%s %s', $cmd, $_SESSION['user']); } sudoexec($cmd, $data_output, $exec_return); /* Récupération de cette liste dans le tableau $vhost_list */ $vhost_list = array(); foreach($data_output as $data_line) { $data_split = explode(':', $data_line); if ($data_split[0] == $domain && $data_split[3] != '') { $alias_split = explode(',', $data_split[3]); foreach($alias_split as $alias) { $alias_array['alias'] = $alias; array_push($alias_list, $alias_array); } } } } include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; include_once EVOADMIN_BASE . '../tpl/webadmin-edit.tpl.php'; include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; } ?>