From fde162d67908dc82c0ce5a310d4b402e1c395aa0 Mon Sep 17 00:00:00 2001 From: Nicolas Roman Date: Mon, 1 Apr 2019 15:13:28 +0200 Subject: [PATCH] servername url changed --- htdocs/index.php | 2 +- inc/webadmin-servername.php | 232 ++++++++++++++++---------------- tpl/webadmin-servername.tpl.php | 2 +- tpl/webadmin.tpl.php | 2 +- 4 files changed, 121 insertions(+), 117 deletions(-) diff --git a/htdocs/index.php b/htdocs/index.php index 62d2a65..4d54a5e 100755 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -48,7 +48,7 @@ if (!array_key_exists('auth', $_SESSION) || $_SESSION['auth']!=1) { include_once EVOADMIN_BASE . '../inc/webadmin.php'; -} elseif (preg_match('#^/webadmin/servername/(.*)/?$#', $uri, $params)) { +} elseif (preg_match('#^/webadmin/(.*)/domain/?(edit)?/?(.*)?/$#', $uri, $params)) { include_once EVOADMIN_BASE . '../inc/webadmin-servername.php'; diff --git a/inc/webadmin-servername.php b/inc/webadmin-servername.php index a68d7c2..7779c43 100644 --- a/inc/webadmin-servername.php +++ b/inc/webadmin-servername.php @@ -18,138 +18,132 @@ require_once EVOADMIN_BASE . '../lib/domain.php'; global $conf; -if (isset($_GET['edit']) ) { +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), $_GET['edit']); - $form->addField('previous_servername', new DomainInputFormField("", TRUE, TRUE), $_GET['edit']); + $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

', $_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 "
"; + 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 { - $servername = array ( - 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), - 'servername' => $form->getField('domain_servername')->getValue(), - 'previous_servername' => $form->getField('previous_servername')->getValue(), - ); + $cache = $conf['cache']; + } + $bdd = new bdd(); + $bdd->open($cache); - $account_name=$servername['domain']; + $servername = array ( + 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), + 'servername' => $form->getField('domain_servername')->getValue(), + 'previous_servername' => $form->getField('previous_servername')->getValue(), + ); - $is_servername_present = check_occurence_name($servername['servername']); + $account_name=$servername['domain']; + $account = $bdd->get_account($account_name); - 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

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

Echec dans la modification du ServerName %s

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

Retour à la liste des ServerNames

', $_SERVER['REDIRECT_URL']); - print "
"; - } + 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 { + } 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']); - print ('

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

Retour à la liste des ServerNames

', $_SERVER['REDIRECT_URL']); + 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


"; @@ -160,8 +154,18 @@ if (isset($_GET['edit']) ) { 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'; diff --git a/tpl/webadmin-servername.tpl.php b/tpl/webadmin-servername.tpl.php index 5e218cb..9766b99 100644 --- a/tpl/webadmin-servername.tpl.php +++ b/tpl/webadmin-servername.tpl.php @@ -35,7 +35,7 @@ printf('%s', $servername_list[$i]); if (is_superadmin()) - printf('Modifier', + printf('Modifier', $domain, $servername_list[$i]); print ''; } ?> diff --git a/tpl/webadmin.tpl.php b/tpl/webadmin.tpl.php index 689559a..6653d2a 100755 --- a/tpl/webadmin.tpl.php +++ b/tpl/webadmin.tpl.php @@ -103,7 +103,7 @@ if (is_superadmin()) { printf(''); printf('Alias - ', $vhost_info['owner']); - printf('Servername - ', $vhost_info['owner']); + printf('Servername - ', $vhost_info['owner']); if(is_multiphp()) { printf('PHP', $vhost_info['owner']); } else {