diff --git a/htdocs/index.php b/htdocs/index.php index 62d2a65..b1010bb 100755 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -48,19 +48,19 @@ 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'; -} elseif (preg_match('#^/webadmin/itk/(.*)/?$#', $uri, $params)) { +} elseif (preg_match('#^/webadmin/(.*)/itk/?(enable|disable)?/?(.*)?/$#', $uri, $params)) { include_once EVOADMIN_BASE . '../inc/webadmin-itk.php'; -} elseif (preg_match('#^/webadmin/php/(.*)/?$#', $uri, $params)) { +} elseif (preg_match('#^/webadmin/(.*)/php/$#', $uri, $params)) { include_once EVOADMIN_BASE . '../inc/webadmin-php.php'; -} elseif (preg_match('#^/webadmin/edit/(.*)/?$#', $uri, $params)) { +} elseif (preg_match('#^/webadmin/(.*)/alias/?(add|delete)?/?(.*)?/$#', $uri, $params)) { include_once EVOADMIN_BASE . '../inc/webadmin-edit.php'; diff --git a/inc/webadmin-edit.php b/inc/webadmin-edit.php index c8a579f..b52a528 100644 --- a/inc/webadmin-edit.php +++ b/inc/webadmin-edit.php @@ -18,21 +18,24 @@ require_once EVOADMIN_BASE . '../lib/domain.php'; global $conf; -if (isset($_GET['del']) ) { +$redirect_url = "/webadmin/" . $params[1] . "/alias/"; + +if (isset($params[2]) && $params[2] == "delete") { + if (isset($params[3]) && $params[3] == "") http_redirect($redirect_url); include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; - $alias = htmlspecialchars($_GET['del']); + $alias = $params[3]; - if (isset($_GET['modif']) && ($_GET['modif'] == 'yes')) { + if (isset($_POST["confirm-delete-alias"])) { print "
"; print "

Suppression de $alias...

"; $serveralias = array ( - 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), + 'domain' => $params[1], 'alias' => $alias ); @@ -77,27 +80,29 @@ if (isset($_GET['del']) ) { sudoexec($exec_cmd, $exec_output, $exec_return); if ($exec_return == 0) { printf ('

Alias %s est supprimé.

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

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

"; } - printf ('

Retour à la liste des alias

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

Retour à la liste des alias

', $redirect_url); print "
"; - } else if ( ! isset($_GET['modif']) ) { + } else { print "
"; + 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 "

"; + print "

"; + print "
"; + printf ('

Retour à la liste des alias

', $redirect_url); print "
"; } include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; - -} else if (isset($_GET['add']) ) { - +} +elseif (isset($params[2]) && $params[2] == "add") { require_once EVOADMIN_BASE . '../evolibs/Form.php'; include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; @@ -182,7 +187,7 @@ if (isset($_GET['del']) ) { } else { $serveralias = array ( - 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), + 'domain' => $params[1], 'alias' => $form->getField('domain_alias')->getValue(), ); @@ -197,13 +202,13 @@ if (isset($_GET['del']) ) { //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']); + 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

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

Retour à la liste des alias

', $redirect_url); print "
"; } } @@ -211,7 +216,7 @@ if (isset($_GET['del']) ) { print "
"; printf ('

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

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

L\'alias existe dans d\'autres vhosts.'); - printf ('

Retour à la liste des alias

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

Retour à la liste des alias

', $redirect_url); print "
"; } } @@ -240,9 +245,9 @@ if (isset($_GET['del']) ) { } include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; +} - -} else { +else { $domain = $params[1]; $alias_list = array(); diff --git a/inc/webadmin-itk.php b/inc/webadmin-itk.php index 680c653..673d46b 100644 --- a/inc/webadmin-itk.php +++ b/inc/webadmin-itk.php @@ -18,58 +18,44 @@ require_once EVOADMIN_BASE . '../lib/domain.php'; global $conf; -if (isset($_GET['enable']) ) { +if (isset($params[2]) && $params[2] != "") { + $redirect_url = "/webadmin/" . $params[1] . "/itk/"; + + 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'; - - # TODO: sanitize $_GET $servername = array ( - 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), - 'servername' => $_GET['enable'] + 'domain' => $params[1], + 'servername' => $params[3] ); - $enable_cmd = 'web-add.sh enable-user-itk ' . $servername['servername'] . ' ' . $servername['domain']; + if ($params[2] == "enable") { + $enable_cmd = 'web-add.sh enable-user-itk ' . $servername['servername'] . ' ' . $servername['domain']; - sudoexec($enable_cmd, $enable_cmd_output, $enable_cmd_return); + sudoexec($enable_cmd, $enable_cmd_output, $enable_cmd_return); - if ($enable_cmd_return == 0) { - print 'Sécurité ITK activée.'; - printf ('

Retour à la gestion ITK

', $_SERVER['REDIRECT_URL']); + if ($enable_cmd_return == 0) { + print 'Sécurité ITK activée.'; + printf ('

Retour à la gestion ITK

', $redirect_url); + } } + elseif ($params[2] == "disable") { + $disable_cmd = 'web-add.sh disable-user-itk ' . $servername['servername'] . ' ' . $servername['domain']; - include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; + sudoexec($disable_cmd, $disable_cmd_output, $disable_cmd_return); - -} -elseif (isset($_GET['disable']) ) { - require_once EVOADMIN_BASE . '../evolibs/Form.php'; - - include_once EVOADMIN_BASE . '../tpl/header.tpl.php'; - include_once EVOADMIN_BASE . '../tpl/menu.tpl.php'; - - - # TODO: sanitize $_GET - $servername = array ( - 'domain' => htmlspecialchars(basename($_SERVER['REDIRECT_URL'])), - 'servername' => $_GET['disable'] - ); - - $disable_cmd = 'web-add.sh disable-user-itk ' . $servername['servername'] . ' ' . $servername['domain']; - - sudoexec($disable_cmd, $disable_cmd_output, $disable_cmd_return); - - if ($disable_cmd_return == 0) { - print 'Sécurité ITK désactivée'; - printf ('

Retour à la gestion ITK

', $_SERVER['REDIRECT_URL']); + if ($disable_cmd_return == 0) { + print 'Sécurité ITK désactivée'; + printf ('

Retour à la gestion ITK

', $redirect_url); + } } - include_once EVOADMIN_BASE . '../tpl/footer.tpl.php'; - - } + else { $domain = $params[1]; diff --git a/inc/webadmin-php.php b/inc/webadmin-php.php index 6afba03..4eb1eed 100644 --- a/inc/webadmin-php.php +++ b/inc/webadmin-php.php @@ -56,7 +56,7 @@ else { if ($exec_return == 0) { print "
"; - printf ('

La version de PHP bien été modifié

'); + printf ('

La version de PHP a bien été modifiée

'); printf ('

Retour à liste des comptes

'); print "
"; @@ -64,7 +64,7 @@ else { else { print "
"; printf ('

ERREUR

'); - printf ('

Une erreur innatendue s\'est produite

'); + printf ('

Une erreur inattendue s\'est produite

'); if ($conf['debug'] == TRUE) { print '
';
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-edit.tpl.php b/tpl/webadmin-edit.tpl.php index 146dfdc..09826c2 100644 --- a/tpl/webadmin-edit.tpl.php +++ b/tpl/webadmin-edit.tpl.php @@ -15,13 +15,13 @@

Server Alias

- 0) { - if(count($alias_list) > 0) { - if (is_superadmin()) { print "
"; - printf('

Ajouter un alias

', $domain); + printf('

Ajouter un alias

', $domain); print "
"; }?> @@ -35,28 +35,27 @@ - '; printf('http://%s', $alias_list[$i]['alias'], $alias_list[$i]['alias']); - if (is_superadmin()) - printf('Supprimer', + if (is_superadmin()) + printf('Supprimer', $domain, $alias_list[$i]['alias']); print ''; } ?> -Aucun alias existant pour le domaine $domain !

"; if (is_superadmin()) { print "
"; - printf('

Ajouter un alias

', $domain); + printf('

Ajouter un alias

', $domain); print "
"; } } ?> - diff --git a/tpl/webadmin-itk.tpl.php b/tpl/webadmin-itk.tpl.php index 7d1f596..313f947 100644 --- a/tpl/webadmin-itk.tpl.php +++ b/tpl/webadmin-itk.tpl.php @@ -38,14 +38,18 @@ printf('%s', $data_list[$i]['user']); if (is_superadmin()) { - if (strpos($data_list[$i]['user'], 'www') !== false) { $action = ['disable', 'Désactiver']; } else { $action = ['enable', 'Activer']; } - printf(''.$action[1].'', + // AssignUserID not set in the vhost, override previous action + if (empty($data_list[$i]['user'])) { + $action = ["", ""]; + } + + printf(''.$action[1].'', $domain, $action[0], $data_list[$i]['servername']); } print ''; 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..192d52c 100755 --- a/tpl/webadmin.tpl.php +++ b/tpl/webadmin.tpl.php @@ -95,6 +95,7 @@ printf('%s', $vhost_info['quota_hard']); printf('%s', $vhost_info['occupation']); } + if (array_key_exists('php_versions', $conf) && count($conf['php_versions']) > 1) { printf('%s', preg_replace("/^(\d)(\d)$/", '\1.\2', $vhost_info['php_version'])); } @@ -102,12 +103,12 @@ if (is_superadmin()) { printf(''); - printf('Alias - ', $vhost_info['owner']); - printf('Servername - ', $vhost_info['owner']); + printf('Alias - ', $vhost_info['owner']); + printf('Servername - ', $vhost_info['owner']); if(is_multiphp()) { - printf('PHP', $vhost_info['owner']); + printf('PHP', $vhost_info['owner']); } else { - printf('ITK', $vhost_info['owner']); + printf('ITK', $vhost_info['owner']); } printf('');