web domain editing

This commit is contained in:
Serghey Rodin 2012-06-05 14:09:56 +03:00
commit 89197647fa
30 changed files with 979 additions and 79 deletions

View file

@ -15,8 +15,8 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
template=${3-default}
default_extentions="jpg,jpeg,gif,png,ico,css,zip,tgz,gz,rar,bz2,doc,xls,exe,\
pdf,ppt,txt,tar,wav,bmp,rtf,js,mp3,avi,mpeg,html,htm"
default_extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,\
exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm"
extentions=${4-$default_extentions}
restart="$5"

View file

@ -37,7 +37,6 @@ is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$STATS'
#----------------------------------------------------------#

View file

@ -14,6 +14,7 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ip=$3
restart=$4
# Includes
source $VESTA/conf/vesta.conf
@ -53,7 +54,9 @@ update_domain_zone
#----------------------------------------------------------#
# Restart named
$BIN/v_restart_dns "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_dns "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: change web domain ip address
# options: user domain ip
# options: user domain ip [restart]
#
# The call is used for changing the site ip address. The ip change will be
# performed for a virtual apache host and for a configuration nginx file both.
@ -15,6 +15,7 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ip=$3
restart=$4
# Includes
source $VESTA/conf/vesta.conf
@ -27,7 +28,7 @@ source $VESTA/func/ip.sh
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain ip'
check_args '3' "$#" 'user domain ip [restart]'
validate_format 'user' 'domain' 'ip'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
@ -84,7 +85,9 @@ decrease_ip_value "$old"
update_object_value 'web' 'DOMAIN' "$domain" '$IP' "$ip"
# Restart web server
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

102
bin/v_change_web_domain_nginx_tpl Executable file
View file

@ -0,0 +1,102 @@
#!/bin/bash
# info: change web domain nginx template
# options: user domain template [extentions] [restart]
#
# The function changes template of nginx.conf configuration file. The content
# of webdomain directories remains untouched.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
template=$3
default_extentions="jpg,jpeg,gif,png,ico,svg,css,zip,tgz,gz,rar,bz2,doc,xls,\
exe,pdf,ppt,txt,odt,ods,odp,odf,tar,wav,bmp,rtf,js,mp3,avi,mpeg,flv,html,htm"
extentions=${4-$default_extentions}
restart="$5"
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain template [extentions] [restart]'
validate_format 'user' 'domain' 'template'
is_system_enabled "$PROXY_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$NGINX'
is_nginx_template_valid
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing domain values
get_domain_values 'web'
tpl_file="$WEBTPL/ngingx_vhost_$NGINX.tpl"
conf="$HOMEDIR/$user/conf/web/nginx.conf"
# Delete old vhost
del_web_config
# Checking ssl
if [ "$SSL" = 'yes' ]; then
tpl_file="$WEBTPL/ngingx_vhost_$NGINX.stpl"
conf="$HOMEDIR/$user/conf/web/snginx.conf"
del_web_config
fi
# Add new vhost
NGINX="$template"
NGINX_EXT="$extentions"
tpl_file="$WEBTPL/ngingx_vhost_$NGINX.tpl"
conf="$HOMEDIR/$user/conf/web/nginx.conf"
upd_web_domain_values
add_web_config
chown root:nginx $conf
chmod 640 $conf
# Checking ssl
if [ "$SSL" = 'yes' ]; then
proxy_string="proxy_pass https://$ip:$WEB_SSL_PORT;"
tpl_file="$WEBTPL/ngingx_vhost_$NGINX.stpl"
conf="$HOMEDIR/$user/conf/web/snginx.conf"
add_web_config
chown root:nginx $conf
chmod 640 $conf
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Update config
update_object_value 'web' 'DOMAIN' "$domain" '$NGINX' "$NGINX"
update_object_value 'web' 'DOMAIN' "$domain" '$NGINX_EXT' "$extentions"
# Restart web
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"
log_event "$OK" "$EVENT"
exit

91
bin/v_change_web_domain_stats Executable file
View file

@ -0,0 +1,91 @@
#!/bin/bash
# info: change web domain statistics
# options: user domain type
#
# The function of deleting site's system of statistics. Its type is
# automatically chooses from client's configuration file.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
type=$3
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain type'
validate_format 'user' 'domain'
is_system_enabled "$WEB_SYSTEM"
is_type_valid "$STATS_SYSTEM" "$type"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
is_object_valid 'web' 'DOMAIN' "$domain"
is_object_unsuspended 'web' 'DOMAIN' "$domain"
is_object_value_exist 'web' 'DOMAIN' "$domain" '$STATS'
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Defining statistic type
get_domain_values 'web'
# Comparing stats types
if [ "$STATS" == $type ]; then
log_event "$OK" "$EVENT"
exit 0
fi
# Defining statistic dir
stats_dir="$HOMEDIR/$user/web/$domain/stats"
# Deleting dir content
rm -rf $stats_dir/*
# Deleting config
rm -f $HOMEDIR/$user/conf/web/$STATS.$domain.conf
# Preparing domain values for the template substitution
upd_web_domain_values
# Adding statistic config
cat $WEBTPL/$type.tpl |\
sed -e "s/%ip%/$ip/g" \
-e "s/%web_port%/$WEB_PORT/g" \
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
-e "s/%proxy_port%/$PROXY_PORT/g" \
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
-e "s/%domain_idn%/$domain_idn/g" \
-e "s/%domain%/$domain/g" \
-e "s/%user%/$user/g" \
-e "s/%home%/${HOMEDIR////\/}/g" \
-e "s/%alias%/${aliases//,/ }/g" \
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
> $HOMEDIR/$user/conf/web/$type.$domain.conf
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Update config
update_object_value 'web' 'DOMAIN' "$domain" '$STATS' "$type"
# Logging
log_history "$EVENT"
log_event "$OK" "$EVENT"
exit

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: change web domain template
# options: user domain template
# options: user domain template [restart]
#
# The function changes template of httpd.conf configuration file. The content
# of webdomain directories remains untouched.
@ -15,6 +15,7 @@ user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
template=$3
restart=$4
# Includes
source $VESTA/conf/vesta.conf
@ -26,7 +27,7 @@ source $VESTA/func/domain.sh
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain template'
check_args '3' "$#" 'user domain template [restart]'
validate_format 'user' 'domain' 'template'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
@ -170,7 +171,9 @@ for keys in $(cat $WEBTPL/apache_$template.descr|grep -v '#'); do
done
# Restart web
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: delete web domain alias
# options: user domain alias
# options: user domain alias [restart]
#
# The function of deleting the alias domain (parked domain). By this call
# default www aliase can be removed as well.
@ -16,6 +16,7 @@ domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain" )
dom_alias=$(idn -t --quiet -u "$3" )
dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
restart="$4"
# Includes
source $VESTA/conf/vesta.conf
@ -27,7 +28,7 @@ source $VESTA/func/domain.sh
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'user domain dom_alias'
check_args '3' "$#" 'user domain dom_alias [restart]'
validate_format 'user' 'domain' 'dom_alias'
is_system_enabled 'WEB_SYSTEM'
is_object_valid 'user' 'USER' "$user"
@ -97,7 +98,9 @@ update_object_value 'web' 'DOMAIN' "$domain" '$ALIAS' "$ALIAS"
decrease_user_value "$user" '$U_WEB_ALIASES'
# Restart web server
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -1,6 +1,6 @@
#!/bin/bash
# info: delete web domain error loggin support
# options: user domain
# options: user domain [restart]
#
# The function of disabling error logging feature. It comments ErrorLog
# direcitve in apache or/and nginx configuration. The data already collected
@ -15,6 +15,7 @@
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
restart=$3
# Includes
source $VESTA/conf/vesta.conf
@ -26,7 +27,7 @@ source $VESTA/func/domain.sh
# Verifications #
#----------------------------------------------------------#
check_args '2' "$#" 'user domain'
check_args '2' "$#" 'user domain [restart]'
validate_format 'user' 'domain'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user" "$user"
@ -86,7 +87,9 @@ fi
update_object_value 'web' 'DOMAIN' "$domain" '$ELOG' 'no'
# Restart web server
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -13,6 +13,7 @@
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
restart=$3
# Includes
source $VESTA/conf/vesta.conf
@ -75,7 +76,9 @@ if [ -z "$last_nginx" ]; then
fi
# Restart web server
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -13,6 +13,7 @@
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
restart=$3
# Includes
source $VESTA/conf/vesta.conf
@ -89,7 +90,9 @@ fi
decrease_user_value "$user" '$U_WEB_SSL'
# Restart web server
$BIN/v_restart_web "$EVENT"
if [ "$restart" != 'no' ]; then
$BIN/v_restart_web "$EVENT"
fi
# Logging
log_history "$EVENT"

View file

@ -76,7 +76,7 @@ conf=$USER_DATA/web.conf
# Defining fileds to select
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $PHP $CGI $ELOG
$STATS $STATS_AUTH $SSL $SSL_HOME $NGINX $NGINX_EXT $SUSPENDED $DATE'
$STATS $STATS_USER $SSL $SSL_HOME $NGINX $NGINX_EXT $SUSPENDED $TIME $DATE'
# Listing domains
case $format in

View file

@ -35,7 +35,7 @@ conf=$USER_DATA/web.conf
# Defining fileds to select
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$PHP \$CGI"
fields="$fields \$ELOG \$STATS \$STATS_AUTH \$SSL \$SSL_HOME \$NGINX"
fields="$fields \$ELOG \$STATS \$STATS_USER \$SSL \$SSL_HOME \$NGINX"
fields="$fields \$NGINX_EXT \$SUSPENDED \$TIME \$DATE"
# Listing domains

View file

@ -1,6 +1,6 @@
WEB_DOMAINS='100'
WEB_ALIASES='100'
WEB_TPL='default,phpfcgi,unlim'
WEB_TPL='default,phpfcgid,unlim'
DNS_DOMAINS='100'
DNS_RECORDS='100'
MAIL_DOMAINS='100'

View file

@ -16,11 +16,6 @@
SSLRequireSSL
Options +Includes -Indexes %cgi_option%
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value upload_max_filesize 60M
php_admin_value max_execution_time 60
php_admin_value post_max_size 60M
php_admin_value memory_limit 60M
php_admin_flag mysql.allow_persistent off
php_admin_flag safe_mode off
php_admin_value session.save_path %home%/%user%/tmp
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'

View file

@ -15,11 +15,6 @@
AllowOverride All
Options +Includes -Indexes %cgi_option%
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value upload_max_filesize 60M
php_admin_value max_execution_time 60
php_admin_value post_max_size 60M
php_admin_value memory_limit 60M
php_admin_flag mysql.allow_persistent off
php_admin_flag safe_mode off
php_admin_value session.save_path %home%/%user%/tmp
php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f %email%'

View file

@ -17,7 +17,7 @@ is_nginx_template_valid() {
d="$WEBTPL/ngingx_vhost_$template.descr"
s="$WEBTPL/ngingx_vhost_$template.stpl"
if [ ! -e $t ] || [ ! -e $d ] || [ ! -e $s ]; then
echo "Error: $template not found"
echo "Error: nginx $template not found"
log_event "$E_NOTEXIST" "$EVENT"
exit $E_NOTEXIST
fi

View file

@ -1,6 +1,6 @@
<?php
// Init
//error_reporting(NULL);
error_reporting(NULL);
ob_start();
session_start();
$TAB = 'WEB';
@ -20,15 +20,15 @@ if ($_SESSION['user'] == 'admin') {
header("Location: /list/web/");
}
// OK
// Action
if (!empty($_POST['ok'])) {
// Check input
if (empty($_POST['v_domain'])) $errors[] = 'domain';
if (empty($_POST['v_ip'])) $errors[] = 'ip';
if (empty($_POST['v_template'])) $errors[] = 'template';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_cert']))) $errors[] = 'ssl certificate';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = 'ssl certificate';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = 'ssl key';
if ((!empty($_POST['v_aliases'])) || (!empty($_POST['v_elog'])) || (!empty($_POST['v_ssl'])) || (!empty($_POST['v_ssl_cert'])) || (!empty($_POST['v_ssl_key'])) || (!empty($_POST['v_ssl_pem'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
if ((!empty($_POST['v_aliases'])) || (!empty($_POST['v_elog'])) || (!empty($_POST['v_ssl'])) || (!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key'])) || (!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
// Protect input
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
@ -41,9 +41,9 @@ if ($_SESSION['user'] == 'admin') {
$v_elog = $_POST['v_elog'];
$v_nginx = $_POST['v_nginx'];
$v_ssl = $_POST['v_ssl'];
$v_ssl_cert = $_POST['v_ssl_cert'];
$v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_pem = $_POST['v_ssl_pem'];
$v_ssl_ca = $_POST['v_ssl_ca'];
$v_stats = escapeshellarg($_POST['v_stats']);
// Check for errors
@ -57,6 +57,7 @@ if ($_SESSION['user'] == 'admin') {
}
$_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
} else {
// Add WEB
exec (VESTA_CMD."v_add_web_domain ".$user." ".$v_domain." ".$v_ip." ".$v_template." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
@ -92,7 +93,7 @@ if ($_SESSION['user'] == 'admin') {
$valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$valiases = preg_replace("/,/", " ", $valiases);
$valiases = preg_replace('/\s+/', ' ',$valiases);
$valiases = trim($valiases);
$aliases = explode(" ", $valiases);
foreach ($aliases as $alias) {
$alias = escapeshellarg($alias);
@ -146,23 +147,23 @@ if ($_SESSION['user'] == 'admin') {
$tmpdir = $output[0];
// Certificate
if (!empty($_POST['v_ssl_cert'])) {
if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, $_POST['v_ssl_cert']."\n");
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
fclose($fp);
}
// Key
if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, $_POST['v_ssl_key']."\n");
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
fclose($fp);
}
// Pem
if (!empty($_POST['v_ssl_pem'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".pem", 'w');
fwrite($fp, $_POST['v_ssl_pem']."\n");
// CA
if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
fclose($fp);
}
@ -199,9 +200,9 @@ if ($_SESSION['user'] == 'admin') {
unset($v_domain);
unset($v_aliases);
unset($v_ssl);
unset($v_ssl_cert);
unset($v_ssl_crt);
unset($v_ssl_key);
unset($v_ssl_pem);
unset($v_ssl_ca);
}
}
}

View file

@ -1,6 +1,6 @@
<?php
// Init
//error_reporting(NULL);
error_reporting(NULL);
ob_start();
session_start();
@ -34,6 +34,7 @@ if ($_SESSION['user'] == 'admin') {
$_SESSION['error_msg'] = $error;
} else {
$data = json_decode(implode('', $output), true);
unset($output);
$v_username = $_GET['user'];
$v_password = "••••••••";
$v_email = $data[$v_username]['CONTACT'];
@ -56,8 +57,6 @@ if ($_SESSION['user'] == 'admin') {
$v_time = $data[$v_username]['TIME'];
$v_date = $data[$v_username]['DATE'];
unset($output);
exec (VESTA_CMD."v_list_user_packages json", $output, $return_var);
$packages = json_decode(implode('', $output), true);
unset($output);
@ -67,9 +66,11 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Action
if (!empty($_POST['save'])) {
$v_username = escapeshellarg($_POST['v_username']);
// Change password
if (($v_password != $_POST['v_password']) && (empty($_SESSION['error_msg']))) {
$v_password = escapeshellarg($_POST['v_password']);
exec (VESTA_CMD."v_change_user_password ".$v_username." ".$v_password, $output, $return_var);
@ -82,6 +83,7 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Change package
if (($v_package != $_POST['v_package']) && (empty($_SESSION['error_msg']))) {
$v_package = escapeshellarg($_POST['v_package']);
exec (VESTA_CMD."v_change_user_package ".$v_username." ".$v_package, $output, $return_var);
@ -93,6 +95,7 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Change shell
if (($v_shell != $_POST['v_shell']) && (empty($_SESSION['error_msg']))) {
$v_shell = escapeshellarg($_POST['v_shell']);
exec (VESTA_CMD."v_change_user_shell ".$v_username." ".$v_shell, $output, $return_var);
@ -104,6 +107,7 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Change contact email
if (($v_email != $_POST['v_email']) && (empty($_SESSION['error_msg']))) {
$v_email = escapeshellarg($_POST['v_email']);
exec (VESTA_CMD."v_change_user_contact ".$v_username." ".$v_email, $output, $return_var);
@ -115,6 +119,7 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Change Name
if (($v_fname != $_POST['v_fname']) || ($v_lname != $_POST['v_lname']) && (empty($_SESSION['error_msg']))) {
$v_fname = escapeshellarg($_POST['v_fname']);
$v_lname = escapeshellarg($_POST['v_lname']);
@ -127,12 +132,12 @@ if ($_SESSION['user'] == 'admin') {
unset($output);
}
// Change NameServers
if (($v_ns1 != $_POST['v_ns1']) || ($v_ns2 != $_POST['v_ns2']) || ($v_ns3 != $_POST['v_ns3']) || ($v_ns4 != $_POST['v_ns4']) && (empty($_SESSION['error_msg']))) {
$v_ns1 = escapeshellarg($_POST['v_ns1']);
$v_ns2 = escapeshellarg($_POST['v_ns2']);
$v_ns3 = escapeshellarg($_POST['v_ns3']);
$v_ns4 = escapeshellarg($_POST['v_ns4']);
$ns_cmd = VESTA_CMD."v_change_user_ns ".$v_username." ".$v_ns1." ".$v_ns2;
if (!empty($_POST['v_ns3'])) $ns_cmd = $ns_cmd." ".$v_ns3;
if (!empty($_POST['v_ns4'])) $ns_cmd = $ns_cmd." ".$v_ns4;
@ -153,8 +158,6 @@ if ($_SESSION['user'] == 'admin') {
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_user.html');
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
}
// Footer

522
web/edit/web/index.php Normal file
View file

@ -0,0 +1,522 @@
<?php
// Init
//error_reporting(NULL);
ob_start();
session_start();
$TAB = 'WEB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel
top_panel($user,$TAB);
// Are you admin?
if ($_SESSION['user'] == 'admin') {
// Check user argument?
if (empty($_GET['domain'])) {
header("Location: /list/web/");
}
if (!empty($_POST['cancel'])) {
header("Location: /list/web/");
}
// Check domain
$v_domain = escapeshellarg($_GET['domain']);
exec (VESTA_CMD."v_list_web_domain ".$user." ".$v_domain." json", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
} else {
$data = json_decode(implode('', $output), true);
unset($output);
$v_username = $user;
$v_domain = $_GET['domain'];
$v_ip = $data[$v_domain]['IP'];
$v_template = $data[$v_domain]['TPL'];
$v_aliases = str_replace(',', "\n", $data[$v_domain]['ALIAS']);
$valiases = explode(",", $data[$v_domain]['ALIAS']);
$v_tpl = $data[$v_domain]['IP'];
$v_cgi = $data[$v_domain]['CGI'];
$v_elog = $data[$v_domain]['ELOG'];
$v_ssl = $data[$v_domain]['SSL'];
if ( $v_ssl == 'yes' ) {
exec (VESTA_CMD."v_list_web_domain_ssl ".$user." '".$v_domain."' json", $output, $return_var);
$ssl_str = json_decode(implode('', $output), true);
unset($output);
$v_ssl_crt = $ssl_str[$v_domain]['CRT'];
$v_ssl_key = $ssl_str[$v_domain]['KEY'];
$v_ssl_ca = $ssl_str[$v_domain]['CA'];
}
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
$v_nginx = $data[$v_domain]['NGINX'];
$v_nginx_ext = str_replace(',', ', ', $data[$v_domain]['NGINX_EXT']);
$v_stats = $data[$v_domain]['STATS'];
$v_stats_user = $data[$v_domain]['STATS_USER'];
if (!empty($v_stats_user)) $v_stats_password = "••••••••";
$v_suspended = $data[$v_domain]['SUSPENDED'];
if ( $v_suspended == 'yes' ) {
$v_status = 'suspended';
} else {
$v_status = 'active';
}
$v_time = $data[$v_domain]['TIME'];
$v_date = $data[$v_domain]['DATE'];
exec (VESTA_CMD."v_list_user_ips ".$user." json", $output, $return_var);
$ips = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v_list_web_templates ".$user." json", $output, $return_var);
$templates = json_decode(implode('', $output), true);
unset($output);
exec (VESTA_CMD."v_list_web_stats json", $output, $return_var);
$stats = json_decode(implode('', $output), true);
unset($output);
}
// Action
if (!empty($_POST['save'])) {
$v_domain = escapeshellarg($_POST['v_domain']);
// IP
if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
$v_ip = escapeshellarg($_POST['v_ip']);
exec (VESTA_CMD."v_change_web_domain_ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$restart_web = 'yes';
unset($output);
exec (VESTA_CMD."v_list_dns_domain ".$v_username." ".$v_domain." json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v_change_dns_domain_ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$restart_dns = 'yes';
}
unset($output);
foreach($valiases as $v_alias ){
exec (VESTA_CMD."v_list_dns_domain ".$v_username." '".$v_alias."' json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v_change_dns_domain_ip ".$v_username." '".$v_alias."' ".$v_ip, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$restart_dns = 'yes';
}
unset($output);
}
}
// Template
if (($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
$v_template = escapeshellarg($_POST['v_template']);
exec (VESTA_CMD."v_change_web_domain_tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
}
// Aliases
if (empty($_SESSION['error_msg'])) {
$waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
$waliases = preg_replace("/,/", " ", $waliases);
$waliases = preg_replace('/\s+/', ' ',$waliases);
$waliases = trim($waliases);
$aliases = explode(" ", $waliases);
$v_aliases = str_replace(' ', "\n", $waliases);
$result = array_diff($valiases, $aliases);
foreach ($result as $alias) {
if (empty($_SESSION['error_msg'])) {
$restart_web = 'yes';
$v_template = escapeshellarg($_POST['v_template']);
exec (VESTA_CMD."v_delete_web_domain_alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
exec (VESTA_CMD."v_list_dns_domain ".$v_username." '".$alias."' json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v_delete_dns_domain ".$v_username." '".$alias."'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$restart_dns = 'yes';
}
unset($output);
}
}
$result = array_diff($aliases, $valiases);
foreach ($result as $alias) {
if (empty($_SESSION['error_msg'])) {
$restart_web = 'yes';
$v_template = escapeshellarg($_POST['v_template']);
exec (VESTA_CMD."v_add_web_domain_alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
exec (VESTA_CMD."v_list_dns_domain ".$v_username." '".$alias."' json", $output, $return_var);
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
exec (VESTA_CMD."v_add_dns_domain ".$v_username." '".$alias."' ".$v_ip, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$restart_dns = 'yes';
}
unset($output);
}
}
}
// Elog
if (($v_elog == 'yes') && (empty($_POST['v_elog'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_elog ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
$v_elog = 'no';
}
if (($v_elog == 'no') && (!empty($_POST['v_elog'])) && (empty($_SESSION['error_msg'])) ) {
exec (VESTA_CMD."v_add_web_domain_elog ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
$v_elog = 'yes';
}
// Nginx
if ((!empty($v_nginx)) && (empty($_POST['v_nginx'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_nginx ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
unset($v_nginx);
$restart_web = 'yes';
}
if ((!empty($v_nginx)) && (!empty($_POST['v_nginx'])) && (empty($_SESSION['error_msg']))) {
$ext = preg_replace("/\n/", " ", $_POST['v_nginx_ext']);
$ext = preg_replace("/,/", " ", $ext);
$ext = preg_replace('/\s+/', ' ',$ext);
$ext = trim($ext);
$ext = str_replace(' ', ", ", $ext);
if ( $v_nginx_ext != $ext ) {
$ext = str_replace(', ', ",", $ext);
exec (VESTA_CMD."v_change_web_domain_nginx_tpl ".$v_username." ".$v_domain." 'default' ".escapeshellarg($ext)." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$v_nginx_ext = str_replace(',', ', ', $ext);
unset($output);
$restart_web = 'yes';
}
}
if ((empty($v_nginx)) && (!empty($_POST['v_nginx'])) && (empty($_SESSION['error_msg']))) {
$nginx_ext = "'jpg,jpeg,gif,png,ico,css,zip,tgz,gz,rar,bz2,doc,xls,exe,pdf,ppt,txt,tar,wav,bmp,rtf,js,mp3,avi,mpeg,html,htm'";
if (!empty($_POST['v_nginx_ext'])) {
$ext = preg_replace("/\n/", " ", $_POST['v_nginx_ext']);
$ext = preg_replace("/,/", " ", $ext);
$ext = preg_replace('/\s+/', ' ',$ext);
$ext = trim($ext);
$ext = str_replace(' ', ",", $ext);
$v_nginx_ext = str_replace(',', ', ', $ext);
}
exec (VESTA_CMD."v_add_web_domain_nginx ".$v_username." ".$v_domain." 'default' ".escapeshellarg($ext)." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_nginx = 'default';
$restart_web = 'yes';
}
// SSL
if (( $v_ssl == 'yes' ) && (empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_ssl ".$v_username." ".$v_domain." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_ssl = 'no';
$restart_web = 'yes';
}
if (($v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if (( $v_ssl_crt != str_replace("\r\n", "\n", $_POST['v_ssl_crt'])) || ( $v_ssl_key != str_replace("\r\n", "\n", $_POST['v_ssl_key'])) || ( $v_ssl_ca != str_replace("\r\n", "\n", $_POST['v_ssl_ca']))) {
exec ('mktemp -d', $mktemp_output, $return_var);
$tmpdir = $mktemp_output[0];
// Certificate
if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
fclose($fp);
}
// Key
if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
fclose($fp);
}
// CA
if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
fclose($fp);
}
exec (VESTA_CMD."v_change_web_domain_sslcert ".$user." ".$v_domain." ".$tmpdir." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$restart_web = 'yes';
$v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_ca = $_POST['v_ssl_ca'];
}
}
if (( $v_ssl == 'yes') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ( $v_ssl_home != $_POST['v_ssl_home'] ) {
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
exec (VESTA_CMD."v_change_web_domain_sslhome ".$user." ".$v_domain." ".$v_ssl_home." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
$v_ssl_home = $_POST['v_ssl_home'];
unset($output);
}
}
if (( $v_ssl == 'no') && (!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_crt']))) $errors[] = 'ssl certificate';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_key']))) $errors[] = 'ssl key';
if ((!empty($_POST['v_ssl'])) && (empty($_POST['v_ssl_home']))) $errors[] = 'ssl home';
$v_ssl_home = escapeshellarg($_POST['v_ssl_home']);
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
} else {
exec ('mktemp -d', $mktemp_output, $return_var);
$tmpdir = $mktemp_output[0];
// Certificate
if (!empty($_POST['v_ssl_crt'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_crt']));
fclose($fp);
}
// Key
if (!empty($_POST['v_ssl_key'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".key", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_key']));
fclose($fp);
}
// CA
if (!empty($_POST['v_ssl_ca'])) {
$fp = fopen($tmpdir."/".$_POST['v_domain'].".ca", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_ca']));
fclose($fp);
}
exec (VESTA_CMD."v_add_web_domain_ssl ".$user." ".$v_domain." ".$tmpdir." ".$v_ssl_home." 'no'", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_ssl = 'yes';
$restart_web = 'yes';
$v_ssl_crt = $_POST['v_ssl_crt'];
$v_ssl_key = $_POST['v_ssl_key'];
$v_ssl_ca = $_POST['v_ssl_ca'];
$v_ssl_home = $_POST['v_ssl_home'];
}
}
// Web Stats
if ((!empty($v_stats)) && ($_POST['v_stats'] == 'none') && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_stats ".$v_username." ".$v_domain, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_stats = '';
}
if ((!empty($v_stats)) && ($_POST['v_stats'] != $v_stats) && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v_change_web_domain_stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
}
if ((empty($v_stats)) && ($_POST['v_stats'] != 'none') && (empty($_SESSION['error_msg']))) {
$v_stats = escapeshellarg($_POST['v_stats']);
exec (VESTA_CMD."v_add_web_domain_stats ".$v_username." ".$v_domain." ".$v_stats, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
}
// Web Stats Auth
if ((!empty($v_stats_user)) && (empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_delete_web_domain_stats_user ".$v_username." ".$v_domain, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_stats_user = '';
$v_stats_password = '';
}
if ((empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_stats_user'])) $errors[] = 'stats username';
if (empty($_POST['v_stats_password'])) $errors[] = 'stats password';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
} else {
$v_stats_user = escapeshellarg($_POST['v_stats_user']);
$v_stats_password = escapeshellarg($_POST['v_stats_password']);
exec (VESTA_CMD."v_add_web_domain_stats_user ".$v_username." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_stats_password = "••••••••";
}
}
if ((!empty($v_stats_user)) && (!empty($_POST['v_stats_auth'])) && (empty($_SESSION['error_msg']))) {
if (empty($_POST['v_stats_user'])) $errors[] = 'stats user';
if (empty($_POST['v_stats_password'])) $errors[] = 'stats password';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) {
if ( $i == 0 ) {
$error_msg = $error;
} else {
$error_msg = $error_msg.", ".$error;
}
}
$_SESSION['error_msg'] = "Error: field ".$error_msg." can not be blank.";
}
if (($v_stats_user != $_POST['v_stats_user']) || ($_POST['v_stats_password'] != "••••••••" ) && (empty($_SESSION['error_msg']))) {
$v_stats_user = escapeshellarg($_POST['v_stats_user']);
$v_stats_password = escapeshellarg($_POST['v_stats_password']);
exec (VESTA_CMD."v_add_web_domain_stats_user ".$v_username." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
unset($output);
$v_stats_password = "••••••••";
}
}
// Restart web
if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_restart_web", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
}
// Restart dns
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
exec (VESTA_CMD."v_restart_dns", $output, $return_var);
if ($return_var != 0) {
$error = implode('<br>', $output);
if (empty($error)) $error = 'Error: vesta did not return any output.';
$_SESSION['error_msg'] = $error;
}
}
if (empty($_SESSION['error_msg'])) {
$_SESSION['ok_msg'] = "OK: changes has been saved.";
}
}
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/menu_edit_web.html');
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_web.html');
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
}
// Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

View file

@ -27,7 +27,7 @@ document.v_add_user.v_password.value = randomstring;
<tr><td class="add-text" style="padding: 10 0 0 2px;">Username</td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_username" <?php if (!empty($v_username)) echo "value=".$v_username; ?> ></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">
Password <a href="#" onclick="randomString();" class="genpass">generate</a></td></tr>
Password <a onclick="randomString();" class="genpass">generate</a></td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_password"</tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Email</td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_email" <?php if (!empty($v_email)) echo "value=".$v_email; ?>></tr>

View file

@ -30,7 +30,7 @@
<tr><td><select class="add-list" name="v_ip">
<?php
foreach ($ips as $key => $value) {
echo "\t\t\t\t<option value=\"".$key."\"";
echo "\t\t\t\t<option value=\"".$key."\"";
if ((!empty($v_ip)) && ( $key == $_POST['v_ip'])){
echo ' selected';
}
@ -51,16 +51,16 @@
}
?>
</select></td></tr>
<tr><td class="add-text" style="padding: 10 0 0 2px;">DNS support</td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">DNS support</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_dns" <?php if (empty($v_dns)) echo "checked=yes"; ?>></tr>
<tr><td class="add-text" style="padding: 10 0 0 2px;">Mail support</td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Mail support</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_mail" <?php if (empty($v_mail)) echo "checked=yes"; ?>></tr>
<tr><td class="add-text" style="padding: 10 0 0 2px;"><a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options ⇢</a></td></tr>
<tr><td class="add-text" style="padding: 10 0 0 0px;">
<tr><td class="add-text" style="padding: 10px 0 0 2px;"><a href="javascript:elementHideShow('advtable');" class="add-advanced">Advanced Options ⇢</a></td></tr>
<tr><td class="add-text" style="padding: 9px 0 0 0px;">
<table style="display:<?php if (empty($v_adv)) echo 'none';?> ;" id="advtable">
<tr><td class="add-text" style="padding: 0 0 0 2px;">Aliases</td></tr>
<tr><td><textarea size="20" class="add-input" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea></td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea></td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Error Logging</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if (!empty($v_elog)) echo "checked=yes" ?>></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Nginx Support</td></tr>
@ -68,11 +68,11 @@
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Support</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if (!empty($v_ssl)) echo "checked=yes" ?>></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Certificate</td></tr>
<tr><td><textarea size="20" class="add-input" name="v_ssl_cert"><?php if (!empty($v_ssl_cert)) echo $v_ssl_cert; ?></textarea></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Key</td></tr>
<tr><td><textarea size="20" class="add-input" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL PEM</td></tr>
<tr><td><textarea size="20" class="add-input" name="v_ssl_pem"><?php if (!empty($v_ssl_pem)) echo $v_ssl_pem; ?></textarea></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span></td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics</td></tr>
<tr><td><select class="add-list" name="v_stats">
<?php

View file

@ -0,0 +1,121 @@
<script type="text/javascript">
function elementHideShow(elementToHideOrShow)
{
var el = document.getElementById(elementToHideOrShow);
if (el.style.display == "block") {
el.style.display = "none";
} else {
el.style.display = "block";
}
}
function randomString() {
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var string_length = 10;
var randomstring = '';
for (var i=0; i<string_length; i++) {
var rnum = Math.floor(Math.random() * chars.length);
randomstring += chars.substring(rnum,rnum+1);
}
document.getElementById('v_password').value = randomstring;
}
</script>
<table class='data'>
<tr class="data-add">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<table class="data-col1">
<tr><td style="padding: 20px 0 4px 4px;"><a class="data-date" ?><?php echo date("d M Y", strtotime($v_date))?></a></td></tr>
<tr><td style="padding: 0 0 6px 4px;"><a class="data-date" ?><?php echo $v_time?></a></td></tr>
<tr><td style="padding: 0 0 0 24px;" class="data-<?php echo $v_status ?>"><i><b><?php echo $v_status ?></b></i></td></tr>
</table>
</td>
<td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"><tr>
<td></td>
</tr></table>
<form method="post" name="v_edit_user">
<table class="data-col2" width="830px">
<tr><td class="add-text" style="padding: 10 0 0 2px;">Domain</td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?> disabled> <input type="hidden" name="v_domain" <?php if (!empty($v_domain)) echo "value=".$v_domain; ?>></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">IP address</td></tr>
<tr><td><select class="add-list" name="v_ip">
<?php
foreach ($ips as $key => $value) {
echo "\t\t\t\t<option value=\"".$key."\"";
$skey = "'".$key."'";
if ((!empty($v_ip)) && ( $key == $v_ip ) || ( $skey == $v_ip )){
echo ' selected';
}
echo ">".$key."</option>\n";
}
?>
</select></td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Template</td></tr>
<tr><td><select class="add-list" name="v_template">
<?php
foreach ($templates as $key => $value) {
echo "\t\t\t\t<option value=\"".$key."\"";
$skey = "'".$key."'";
if ((!empty($v_template)) && ( $key == $v_template ) || ($skey == $v_template)){
echo ' selected' ;
}
echo ">".$key."</option>\n";
}
?>
</select></td></tr>
<tr><td class="add-text" style="padding: 10 0 0 2px;">Aliases</td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_aliases"><?php if (!empty($v_aliases)) echo $v_aliases; ?></textarea></td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Error Logging</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_elog" <?php if ($v_elog == 'yes') echo "checked=yes" ?>></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Nginx Support</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_nginx" <?php if (!empty($v_nginx)) echo "checked=yes" ?> onclick="javascript:elementHideShow('nginxtable');"></tr>
<tr><td><table style="display:<?php if (empty($v_nginx)) { echo 'none';} else {echo 'block';}?> ;" id="nginxtable"><tr>
<tr><td class="add-text" style="padding: 9px 0 0 2px;">Nginx Supported Extentions</td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_nginx_ext"><?php if (!empty($v_nginx_ext)) { echo $v_nginx_ext;} else { echo 'jpg, jpeg, gif, png, ico, svg, css, zip, tgz, gz, rar, bz2, exe, pdf, doc, xls, ppt, txt, odt, ods, odp, odf, tar, bmp, rtf, js, mp3, avi, mpeg, flv, html, htm'; } ?></textarea></tr>
</td></tr></tr></table>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Support</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_ssl" <?php if ($v_ssl == 'yes') echo "checked=yes" ?> onclick="javascript:elementHideShow('ssltable');"></tr>
<tr><td><table style="display:<?php if ($v_ssl == 'no' ) { echo 'none';} else {echo 'block';}?> ;" id="ssltable"><tr>
<tr><td class="add-text" style="padding: 9px 0 0 2px;">SSL HomeDirectory</td></tr>
<tr><td><select class="add-list" name="v_ssl_home">
<option value='same' <?php if ($v_ssl_home == 'same') echo "selected";?> >public_html</option>
<option value='single' <?php if ($v_ssl_home == 'single') echo "selected";?>>public_shtml</option>
</select></td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Certificate</td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_crt"><?php if (!empty($v_ssl_crt)) echo $v_ssl_crt; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Key</td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_key"><?php if (!empty($v_ssl_key)) echo $v_ssl_key; ?></textarea></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">SSL Certificate Authority <span style="padding:0 0 0 6px; font-size: 10pt; color:#555;">(optional)</span></td></tr>
<tr><td><textarea size="20" class="add-textinput" name="v_ssl_ca"><?php if (!empty($v_ssl_ca)) echo $v_ssl_ca; ?></textarea></tr>
</td></tr></tr></table>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics</td></tr>
<tr><td><select class="add-list" name="v_stats">
<?php
foreach ($stats as $key => $value) {
$svalue = "'".$value."'";
echo "\t\t\t\t<option value=\"".$value."\"";
if (empty($v_stats)) $v_stats = 'none';
if (( $value == $v_stats ) || ($svalue == $v_stats )){
echo ' selected' ;
}
echo ">".$value."</option>\n";
}
?>
</select></td></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistic Authorization</td></tr>
<tr><td><input type="checkbox" size="20" class="add-checkbox" name="v_stats_auth" <?php if (!empty($v_stats_user)) echo "checked=yes" ?> onclick="javascript:elementHideShow('statstable');"> </tr>
<tr><td><table style="display:<?php if (empty($v_stats_user)) { echo 'none';} else {echo 'block';}?> ;" id="statstable" name="v_add_web_domain_stats_user"><tr>
<tr><td class="add-text" style="padding: 9px 0 0 2px;">Web Statistics Username</td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_stats_user" <?php if (!empty($v_stats_user)) echo "value=".$v_stats_user; ?>></tr>
<tr><td class="add-text" style="padding: 10px 0 0 2px;">Web Statistics Password <a onclick="randomString();" class="genpass">generate</a></td></tr>
<tr><td><input type="text" size="20" class="add-input" name="v_stats_password" <?php if (!empty($v_stats_password)) echo "value=".$v_stats_password; ?> id="v_password"></tr>
</td></tr></tr></table>
<tr><td style="padding: 24px 0 0 0;">
<input type="submit" class="add-button" name="save" value="Save">
<input type="submit" class="add-button" name="cancel" value="Cancel">
</td></tr>
</form>
</table>
</td>
</tr>
</table>

View file

@ -28,7 +28,7 @@ foreach ($data as $key => $value) {
<td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"><tr>
<td></td>
<td class="data-controls" width="118px"><img src="/images/new_window.png" width="8px" height="8px"><a href="#"> open web admin</a></td>
<td class="data-controls" width="120px"><img src="/images/new_window.png" width="8px" height="8px"><a href="#"> open web admin</a></td>
<td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="#"> edit</a></td>
<td class="data-controls" width="80px"><img src="/images/suspend.png" width="7px" height="8px"><a href="#"> <?php echo $spnd_action ?></a></td>
<td class="data-controls" width="70px"><img src="/images/delete.png" width="7px" height="7px"><a href="#"> delete</a></td>

View file

@ -28,8 +28,8 @@ foreach ($data as $key => $value) {
<td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"><tr>
<td></td>
<td class="data-controls" width="96px"><img src="/images/more.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> list accounts</a></td>
<td class="data-controls" width="92px"><img src="/images/add.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> add account</a></td>
<td class="data-controls" width="100px"><img src="/images/more.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> list accounts</a></td>
<td class="data-controls" width="98px"><img src="/images/add.png" width="8px" height="8px"><a href="?domain=<?php echo $key ?>"> add account</a></td>
<td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="#"> edit</a></td>
<td class="data-controls" width="80px"><img src="/images/suspend.png" width="7px" height="8px"><a href="#"> <?php echo $spnd_action ?></a></td>
<td class="data-controls" width="70px"><img src="/images/delete.png" width="7px" height="7px"><a href="#"> delete</a></td>

View file

@ -10,6 +10,16 @@ foreach ($data as $key => $value) {
$status = 'active';
$spnd_action = 'suspend' ;
}
if (!empty($data[$key]['SSL_HOME'])) {
if ($data[$key]['SSL_HOME'] == 'same') {
$ssl_home = 'public_html';
} else {
$ssl_home = 'public_shtml';
}
} else {
$ssl_home = '';
}
?>
<tr class="data-row">
@ -24,7 +34,7 @@ foreach ($data as $key => $value) {
<td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"><tr>
<td></td>
<td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="#"> edit</a></td>
<td class="data-controls" width="50px"><img src="/images/edit.png" width="8px" height="8px"><a href="/edit/web/?domain=<?php echo "$key" ?>"> edit</a></td>
<td class="data-controls" width="80px"><img src="/images/suspend.png" width="7px" height="8px"><a href="#"> <?php echo $spnd_action ?></a></td>
<td class="data-controls" width="70px"><img src="/images/delete.png" width="7px" height="7px"><a href="#"> delete</a></td>
</tr></table>
@ -54,7 +64,7 @@ foreach ($data as $key => $value) {
<td rowspan=4 style="vertical-align:top;" width="300">
<table width="300">
<tr><td class="counter-name" width="40%">SSL Support:</td><td class="counter-value"><?php echo $data[$key]['SSL'] ?></td></tr>
<tr><td class="counter-name">SSL Home:</td><td class="counter-value"><?php echo $data[$key]['SSL_HOME'] ?></td></tr>
<tr><td class="counter-name">SSL Home:</td><td class="counter-value"><?php echo $ssl_home ?></td></tr>
<tr><td class="counter-name">Nginx Template:</td><td class="counter-value"><?php echo $data[$key]['NGINX'] ?></td></tr>
<tr><td colspan="2" class="counter-name">Nginx Extentions: <a class="nginx-ext" style="padding: 0 12 0 12"><?php echo str_replace(',', ', ', $data[$key]['NGINX_EXT']) ?></td></tr>
</table>

View file

@ -0,0 +1,15 @@
<table class="sub-menu">
<tr>
<td style="padding: 10px 2px 28px 0;" ><a class="add-name"><i>Editing Domain</i></a>
<?php
if (!empty($_SESSION['error_msg'])) {
echo "<a class=\"add-error\"><i> → ".$_SESSION['error_msg']."</i></a>";
} else {
if (!empty($_SESSION['ok_msg'])) {
echo "<a class=\"add-ok\"><i> → ".$_SESSION['ok_msg']."</i></a>";
}
}
?>
</td>
</tr>
</table>

View file

@ -1,11 +1,12 @@
<table class="main"><tr><td>
<table class="top">
<tr>
<td width="154px"><p class="hostname"><?php echo exec('hostname') ?></p></td>
<td><a class="top-<?php if($TAB == 'IP' ) echo 's' ?>link" href="/list/ip/">IP Adresses </a></td>
<td><a class="top-<?php if($TAB == 'RRD' ) echo 's' ?>link" href="/list/rrd/">RRD Graphics</a></td>
<td><a class="top-<?php if($TAB == 'STATS' ) echo 's' ?>link" href="/list/stats/">Statistics</a></td>
<td><a class="top-<?php if($TAB == 'LOG' ) echo 's' ?>link" href="/list/log/">History Log</a></td>
<td width="188px"><p class="hostname"><?php echo exec('hostname') ?></p></td>
<td width="100px"><a class="top-<?php if($TAB == 'IP' ) echo 's' ?>link" href="/list/ip/">IP Adresses </a></td>
<td width="100px"><a class="top-<?php if($TAB == 'RRD' ) echo 's' ?>link" href="/list/rrd/">RRD Graphics</a></td>
<td width="84px"><a class="top-<?php if($TAB == 'STATS' ) echo 's' ?>link" href="/list/stats/">Statistics</a></td>
<td width="90px"><a class="top-<?php if($TAB == 'LOG' ) echo 's' ?>link" href="/list/log/">History Log</a></td>
<td></td>
<td width="260px"><b><?php if($user != $_SESSION['user']) echo 'admin / ' ?><?php echo $user ?></b><a class="top-link" style="padding: 0 0 0 6" href="/logout/">Log out</a></td>
</tr>
</table>

View file

@ -27,7 +27,7 @@ if (!empty($_SESSION['look'])) {
?>
}
.top {
background: #484243;
background: #574f51;
color: #ebe2ae;
padding: 0 10 0 0;
margin-left: auto;
@ -36,9 +36,11 @@ if (!empty($_SESSION['look'])) {
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
text-align: right;
line-height: 1.4em;
}
.top-link {
font-family: 'Trebuchet MS';
text-decoration: none;
color: #dbdbdb;
}
@ -395,7 +397,7 @@ if (!empty($_SESSION['look'])) {
.counter-name {
vertical-align:top;
line-height: 1em;
line-height: 1.2em;
font-family: Arial, Helvetica, sans-serif;
font-size: 10pt;
color: #484243;
@ -459,6 +461,15 @@ if (!empty($_SESSION['look'])) {
font-size: 12pt;
}
.add-textinput {
width: 280px;
height: 120px;
padding: 4px;
font-size: 12pt;
color: #555;
font-family: Arial, Helvetica, sans-serif;
}
.add-input {
width: 280px;
padding: 4px;
@ -490,6 +501,7 @@ if (!empty($_SESSION['look'])) {
font-family: Arial, Helvetica, sans-serif;
padding: 0 5px 0 8px;
letter-spacing: 0.1em;
text-decoration: underline;
}
.genpass:hover {

View file

@ -1,3 +1,15 @@
<?php
<br>
<form method="post">
<textarea size="20" class="add-input" name="v_ssl_cert"><?php if (!empty($v_ssl_cert)) echo $v_ssl_cert; ?></textarea>
<br>
<input type="submit" name="ok" value="OK" class="add-button">
echo $_SERVER['REQUEST_URI'];
<br>
<?php
if (!empty($_POST['v_ssl_cert'])) {
$fp = fopen("/tmp/test.crt", 'w');
fwrite($fp, str_replace("\r\n", "\n", $_POST['v_ssl_cert']));
fclose($fp);
}
?>