delete alias with provided servername
This commit is contained in:
parent
8c44478643
commit
e83a1e8432
|
@ -60,7 +60,7 @@ if (!array_key_exists('auth', $_SESSION) || $_SESSION['auth']!=1) {
|
|||
|
||||
include_once EVOADMIN_BASE . '../inc/webadmin-php.php';
|
||||
|
||||
} elseif (preg_match('#^/webadmin/(.*)/alias/?(add|delete)?/?(.*)?/$#', $uri, $params)) {
|
||||
} elseif (preg_match('#^/webadmin/(.*)/alias/?(add)?/$#', $uri, $params) || preg_match('#^/webadmin/(.*)/alias/(add|delete)/(.*)/(.*)/$#', $uri, $params)) {
|
||||
|
||||
include_once EVOADMIN_BASE . '../inc/webadmin-edit.php';
|
||||
|
||||
|
|
|
@ -21,12 +21,12 @@ global $conf;
|
|||
$redirect_url = "/webadmin/" . $params[1] . "/alias/";
|
||||
|
||||
if (isset($params[2]) && $params[2] == "delete") {
|
||||
if (isset($params[3]) && $params[3] == "") http_redirect($redirect_url);
|
||||
if ((isset($params[3]) && $params[3] == "") || (isset($params[4]) && $params[4] == "")) http_redirect($redirect_url);
|
||||
|
||||
include_once EVOADMIN_BASE . '../tpl/header.tpl.php';
|
||||
include_once EVOADMIN_BASE . '../tpl/menu.tpl.php';
|
||||
|
||||
$alias = $params[3];
|
||||
$alias = $params[4];
|
||||
|
||||
if (isset($_POST["confirm-delete-alias"])) {
|
||||
|
||||
|
@ -36,6 +36,7 @@ if (isset($params[2]) && $params[2] == "delete") {
|
|||
|
||||
$serveralias = array (
|
||||
'domain' => $params[1],
|
||||
'linked_domain' => $params[3],
|
||||
'alias' => $alias
|
||||
);
|
||||
|
||||
|
@ -76,12 +77,12 @@ if (isset($params[2]) && $params[2] == "delete") {
|
|||
|
||||
}
|
||||
else {
|
||||
$exec_cmd = 'web-add.sh del-alias ' . $serveralias['domain'] . ' ' . $serveralias['alias'];
|
||||
$exec_cmd = 'web-add.sh del-alias ' . $serveralias['domain'] . ' ' . $serveralias['alias'] . ' ' . $serveralias['linked_domain'];
|
||||
sudoexec($exec_cmd, $exec_output, $exec_return);
|
||||
if ($exec_return == 0) {
|
||||
printf ('<p>Alias %s est supprimé.</p>', $serveralias['alias']);
|
||||
} else
|
||||
print "<p>La suppression a échouée. Veuillez contacter votre administrateur.</p>";
|
||||
print "<p>La suppression a échoué. Veuillez contacter votre administrateur.</p>";
|
||||
|
||||
}
|
||||
printf ('<p><a href="%s">Retour à la liste des alias</a></p>', $redirect_url);
|
||||
|
@ -256,8 +257,7 @@ elseif (isset($params[2]) && $params[2] == "add") {
|
|||
else {
|
||||
|
||||
$domain = $params[1];
|
||||
$alias_list = array();
|
||||
$alias_list2 = array();
|
||||
$vhost_list = array();
|
||||
|
||||
if ($conf['cluster']) {
|
||||
if (is_mcluster_mode()) {
|
||||
|
@ -280,49 +280,27 @@ else {
|
|||
$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);
|
||||
$cmd = 'web-add.sh list-alias ' . $domain;
|
||||
sudoexec($cmd, $data_output, $exec_return);
|
||||
|
||||
$cmd2 = 'web-add.sh list-alias ' . $domain;
|
||||
sudoexec($cmd2, $data_output2, $exec_return2);
|
||||
|
||||
$vhost_detail = array();
|
||||
foreach($data_output2 as $data_line2) {
|
||||
$data_split2 = explode(' ', $data_line2);
|
||||
// var_dump($data_split2);
|
||||
$vhost_detail['servername'] = $data_split2[0];
|
||||
unset($data_split2[0]);
|
||||
foreach($data_output as $data_line) {
|
||||
$vhost_detail = array();
|
||||
|
||||
$data_split = explode(' ', $data_line);
|
||||
$vhost_detail['servername'] = $data_split[0];
|
||||
|
||||
unset($data_split[0]);
|
||||
|
||||
# si des aliases sont présents
|
||||
if (count($data_split2) > 0) {
|
||||
if (count($data_split) > 0) {
|
||||
$vhost_detail['aliases'] = array();
|
||||
foreach($data_split2 as $alias_split2) {
|
||||
array_push($vhost_detail['aliases'], $alias_split2);
|
||||
foreach($data_split as $alias_split) {
|
||||
array_push($vhost_detail['aliases'], $alias_split);
|
||||
}
|
||||
}
|
||||
array_push($alias_list2, $vhost_detail);
|
||||
array_push($vhost_list, $vhost_detail);
|
||||
}
|
||||
|
||||
echo '<pre>';
|
||||
var_dump($alias_list2);
|
||||
echo '</pre>';
|
||||
// var_dump($vhost_detail);
|
||||
|
||||
/* 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';
|
||||
|
|
|
@ -114,6 +114,10 @@ check-vhosts -f
|
|||
|
||||
List suggested changes to vhosts, apply fixes with -f
|
||||
|
||||
list-alias VHOST
|
||||
|
||||
List aliases and their respective domains
|
||||
|
||||
add-alias VHOST ALIAS DOMAIN
|
||||
|
||||
Add a ServerAlias to an Apache vhost
|
||||
|
@ -750,15 +754,15 @@ arg_processing() {
|
|||
check-vhosts)
|
||||
op_checkvhosts "$@"
|
||||
;;
|
||||
list-alias)
|
||||
op_listalias "$@"
|
||||
;;
|
||||
add-alias)
|
||||
op_aliasadd "$@"
|
||||
;;
|
||||
del-alias)
|
||||
op_aliasdel "$@"
|
||||
;;
|
||||
list-alias)
|
||||
op_listalias "$@"
|
||||
;;
|
||||
list-servername)
|
||||
op_listservername "$@"
|
||||
;;
|
||||
|
@ -839,13 +843,17 @@ op_aliasadd() {
|
|||
}
|
||||
|
||||
op_aliasdel() {
|
||||
if [ $# -eq 2 ]; then
|
||||
if [ $# -eq 3 ]; then
|
||||
vhost="${1}.conf"
|
||||
alias=$2
|
||||
servername=$3
|
||||
|
||||
vhost_file="${VHOST_PATH}/${vhost}"
|
||||
|
||||
if [ -f "${vhost_file}" ]; then
|
||||
sed -i -e "/ServerAlias $alias$/d" "${vhost_file}" --follow-symlinks
|
||||
sed -i -e "/ServerName $servername/,/\/VirtualHost>/{/ServerAlias $alias/d}" $vhost_file --follow-symlinks
|
||||
|
||||
#sed -i -e "/ServerAlias $alias$/d" "${vhost_file}" --follow-symlinks
|
||||
else
|
||||
echo "VHost file \`${vhost_file}' not found'" >&2
|
||||
return 1
|
||||
|
@ -864,17 +872,13 @@ op_aliasdel() {
|
|||
fi
|
||||
}
|
||||
|
||||
# The Holy Grail, do not touch, even if you're Indiana Jones
|
||||
# TODO: ne pas prendre en compte les lignes commentées
|
||||
# ajouter la fonction dans le usage
|
||||
# awk '/^<VirtualHost*/,/^<\/VirtualHost>/{if(/^<\/VirtualHost>/)p=1;if(/ServerName|ServerAlias/)out = out (out?OFS:"") ($2)}p{print out;p=0;out=""}' /etc/apache2/sites-enabled/test.conf
|
||||
op_listalias() {
|
||||
if [ $# -eq 1 ]; then
|
||||
vhost_file="$VHOST_PATH/${1}.conf";
|
||||
|
||||
if [ -f "${vhost_file}" ]; then
|
||||
|
||||
aliases=$(awk '/^<VirtualHost*/,/^<\/VirtualHost>/{if(/^<\/VirtualHost>/)p=1;if(/ServerName|ServerAlias/)out = out (out?OFS:"") ($2)}p{print out;p=0;out=""}' "$vhost_file")
|
||||
aliases=$(awk '/^<VirtualHost*/,/^<\/VirtualHost>/{if(/^<\/VirtualHost>/)p=1;if(/^[[:space:]]*ServerName|^[[:space:]]*ServerAlias/)out = out (out?OFS:"") ($2)}p{print out;p=0;out=""}' "$vhost_file")
|
||||
echo "$aliases";
|
||||
else
|
||||
echo "VHost file \`${vhost_file}' not found'" >&2
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th>Alias</th>
|
||||
<th>Domaine</th>
|
||||
<?php if (is_superadmin()) {
|
||||
print '<th>Action</th>';
|
||||
} ?>
|
||||
|
@ -36,14 +37,18 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ( $i=0; $i < count($alias_list); ++$i ) {
|
||||
print '<tr>';
|
||||
printf('<td><a href="http://%s">http://%s</a></td>',
|
||||
$alias_list[$i]['alias'], $alias_list[$i]['alias']);
|
||||
if (is_superadmin())
|
||||
printf('<td><a href="/webadmin/%s/alias/delete/%s/">Supprimer</a></td>',
|
||||
$domain, $alias_list[$i]['alias']);
|
||||
print '</tr>';
|
||||
for ( $i=0; $i < count($vhost_list); ++$i ) {
|
||||
for ($y = 0; $y < count($vhost_list[$i]['aliases']); $y++) {
|
||||
print '<tr>';
|
||||
printf('<td><a href="http://%s">http://%s</a></td>',
|
||||
$vhost_list[$i]['aliases'][$y], $vhost_list[$i]['aliases'][$y]);
|
||||
printf('<td>%s</td>',
|
||||
$vhost_list[$i]['servername']);
|
||||
if (is_superadmin())
|
||||
printf('<td><a href="/webadmin/%s/alias/delete/%s/%s/">Supprimer</a></td>',
|
||||
$domain, $vhost_list[$i]['servername'], $vhost_list[$i]['aliases'][$y]);
|
||||
print '</tr>';
|
||||
}
|
||||
} ?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
Loading…
Reference in a new issue