Merge branch 'master' into length-limits
* master: (84 commits) Update nl.php update css file Update es.php 0.9.8-10 Release Protecting roundcube installer Protecting pma installer Protecting roundcube installer Removing phpcgi template for Ubuntu 14.04 as deprecated added bsdutils package Add one more FTP / Restart confirmation Restart confirmation window send detailed mysql error if dump failed Fixed syntax errors Multiftp support scrollable top panel Renamed dialog button Multiple FTP Account Support Improved css style new icon for webmail file manager api commands ... Conflicts: web/add/db/index.php web/add/user/index.php web/templates/admin/add_db.html
|
@ -55,7 +55,7 @@ str="$str CMD='$command' SUSPENDED='no' TIME='$TIME' DATE='$DATE'"
|
|||
# Adding to crontab
|
||||
echo "$str" >> $VESTA/data/users/$user/cron.conf
|
||||
|
||||
# Chaning permissions
|
||||
# Changing permissions
|
||||
chmod 660 $VESTA/data/users/$user/cron.conf
|
||||
|
||||
# Sort jobs by id number
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
# Argument definition
|
||||
user=$1
|
||||
domain=$2
|
||||
ip=$3
|
||||
|
@ -48,29 +48,31 @@ if [ -z "$ip" ]; then
|
|||
fi
|
||||
|
||||
# Web domain
|
||||
# Do Not restart at this point, will loose connection from API calls
|
||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||
$BIN/v-add-web-domain $user $domain $ip
|
||||
retun_code=$?
|
||||
$BIN/v-add-web-domain $user $domain $ip no
|
||||
return_code=$?
|
||||
fi
|
||||
|
||||
# Proxy support
|
||||
if [ ! -z "$PROXY_SYSTEM" ] && [ "$retun_code" -eq 0 ]; then
|
||||
$BIN/v-add-web-domain-proxy $user $domain
|
||||
# Do Not restart at this point, will loose connection from API calls
|
||||
if [ ! -z "$PROXY_SYSTEM" ] && [ "$return_code" -eq 0 ]; then
|
||||
$BIN/v-add-web-domain-proxy $user $domain '' '' no
|
||||
fi
|
||||
|
||||
# DNS domain
|
||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
|
||||
if [ "$retun_code" -eq 0 ]; then
|
||||
if [ "$return_code" -eq 0 ]; then
|
||||
$BIN/v-add-dns-domain $user $domain $ip
|
||||
retun_code=$?
|
||||
return_code=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Mail domain
|
||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
if [ "$retun_code" -eq 0 ]; then
|
||||
if [ "$return_code" -eq 0 ]; then
|
||||
$BIN/v-add-mail-domain $user $domain
|
||||
retun_code=$?
|
||||
return_code=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -79,4 +81,4 @@ fi
|
|||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
exit $retun_code
|
||||
exit $return_code
|
||||
|
|
|
@ -16,6 +16,7 @@ user=$3
|
|||
password=$4
|
||||
type=${5-api}
|
||||
dns_user=${6-dns-cluster}
|
||||
DNS_USER=$dns_user
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
@ -42,9 +43,10 @@ is_dnshost_alive
|
|||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Concatentating db host string
|
||||
str="HOST='$host' USER='$user' PASSWORD='$password' DNS_USER='$dns_user'"
|
||||
str="$str TYPE='$type' SUSPENDED='no' TIME='$TIME' DATE='$DATE'"
|
||||
# Concatentating dns host string
|
||||
str="HOST='$host' PORT='$port' USER='$user' PASSWORD='$password'"
|
||||
str="$str DNS_USER='$dns_user' TYPE='$type' SUSPENDED='no'"
|
||||
str="$str TIME='$TIME' DATE='$DATE'"
|
||||
|
||||
# Adding host to dns-cluster.conf
|
||||
echo "$str" >> $VESTA/conf/dns-cluster.conf
|
||||
|
|
|
@ -28,7 +28,7 @@ EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9"
|
|||
is_user_free() {
|
||||
check_sysuser=$(cut -f 1 -d : /etc/passwd | grep -w "$user" )
|
||||
if [ ! -z "$check_sysuser" ] || [ -e "$USER_DATA" ]; then
|
||||
echo "Error: user $user exist"
|
||||
echo "Error: user $user exists"
|
||||
log_event "$E_EXISTS" "$EVENT"
|
||||
exit $E_EXISTS
|
||||
fi
|
||||
|
@ -207,7 +207,6 @@ chmod 660 $USER_DATA/user.conf
|
|||
|
||||
# Updating quota
|
||||
if [ "$DISK_QUOTA" = 'yes' ]; then
|
||||
echo "Setting quota"
|
||||
$BIN/v-update-user-quota "$user"
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: add ftp account for web domain.
|
||||
# options: USER DOMAIN FTP_USER FTP_PASSWORD
|
||||
# options: USER DOMAIN FTP_USER FTP_PASSWORD [FTP_PATH]
|
||||
#
|
||||
# The function creates addutional ftp account for web domain.
|
||||
# The function creates additional ftp account for web domain.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -15,6 +15,7 @@ domain=$(idn -t --quiet -u "$2" )
|
|||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
ftp_user=${1}_${3}
|
||||
ftp_password=$4
|
||||
ftp_path=$5
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
@ -30,57 +31,93 @@ EVENT="$DATE $TIME $SCRIPT $A1 $A2 $A3 $A4 $A5 $A6 $A7 $A8 $A9"
|
|||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PASSWORD'
|
||||
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PASSWORD [FTP_PATH]'
|
||||
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
|
||||
is_system_enabled "$WEB_SYSTEM" 'WEB_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"
|
||||
check_ftp_user=$(grep "^$ftp_user:" /etc/passwd)
|
||||
if [ ! -z "$check_ftp_user" ] && [ "$FTP_USER" != "$ftp_user" ]; then
|
||||
echo "Error: ftp user $ftp_user already exists"
|
||||
log_event "$E_EXISTS" "$EVENT"
|
||||
exit $E_EXISTS
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Get domain values
|
||||
get_domain_values 'web'
|
||||
check_ftp_user=$(grep "^$ftp_user:" /etc/passwd)
|
||||
if [ ! -z "$check_ftp_user" ] && [ "$FTP_USER" != "$ftp_user" ]; then
|
||||
echo "Error: ftp user $ftp_user already exists"
|
||||
log_event "$E_EXISTS $EVENT"
|
||||
exit $E_EXISTS
|
||||
fi
|
||||
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
/usr/sbin/userdel -f $FTP_USER > /dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Define shell
|
||||
shell='/sbin/nologin'
|
||||
if [ -e "/usr/bin/rssh" ]; then
|
||||
# Defining ftp user shell
|
||||
if [ -z "$FTP_SHELL" ]; then
|
||||
shell='/sbin/nologin'
|
||||
if [ -e "/usr/bin/rssh" ]; then
|
||||
shell='/usr/bin/rssh'
|
||||
fi
|
||||
else
|
||||
shell=$FTP_SHELL
|
||||
fi
|
||||
|
||||
# Adding user
|
||||
# Defining path
|
||||
if [ -z "$ftp_path" ]; then
|
||||
ftp_path_a="$HOMEDIR/$user/web/$domain"
|
||||
else
|
||||
# Validating absolute path
|
||||
ftp_path_a=$(readlink -f "$HOMEDIR/$user/web/$domain/$ftp_path")
|
||||
if [ -z "$(echo $ftp_path_a |grep $HOMEDIR/$user/web/$domain)" ]; then
|
||||
echo "Error: absolute path $ftp_path_a is invalid"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
# Creating ftp user home directory
|
||||
if [ ! -e "$ftp_path_a" ]; then
|
||||
mkdir -p $ftp_path_a
|
||||
chown $user:$user "$ftp_path_a"
|
||||
chmod 751 "$ftp_path_a"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Adding ftp user
|
||||
/usr/sbin/useradd $ftp_user \
|
||||
-s $shell \
|
||||
-o -u $(id -u $user) \
|
||||
-g $(id -u $user) \
|
||||
-M -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
||||
-M -d "$ftp_path_a" > /dev/null 2>&1
|
||||
|
||||
# Set ftp user password
|
||||
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
||||
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
|
||||
ftp_md5=$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Update config
|
||||
# Transforming absolute path to relative
|
||||
ftp_path_r=$(echo $ftp_path_a |sed "s%$HOMEDIR/$user/web/$domain%%")
|
||||
|
||||
# Concatenating ftp variables
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
ftp_user="$FTP_USER:$ftp_user"
|
||||
ftp_md5="$FTP_MD5:$ftp_md5"
|
||||
ftp_path="$FTP_PATH:$ftp_path_r"
|
||||
fi
|
||||
|
||||
# Adding new key into web.conf
|
||||
add_object_key "web" 'DOMAIN' "$domain" 'FTP_PATH' 'PROXY'
|
||||
|
||||
# Updating config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||
|
||||
# Logging
|
||||
log_history "added ftp account $ftp_user for $domain"
|
||||
log_history "added ftp account ${1}_${3}@$domain"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
||||
|
|
|
@ -52,20 +52,20 @@ upd_web_domain_values
|
|||
|
||||
# Adding statistic config
|
||||
cat $WEBTPL/$type/$type.tpl |\
|
||||
sed -e "s/%ip%/$ip/g" \
|
||||
-e "s/%web_port%/$WEB_PORT/g" \
|
||||
-e "s/%web_system%/$WEB_SYSTEM/g" \
|
||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
||||
-e "s/%rgroups%/$WEB_RGROUPS/g" \
|
||||
-e "s/%proxy_system%/$PROXY_SYSTEM/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" \
|
||||
sed -e "s|%ip%|$ip|g" \
|
||||
-e "s|%web_port%|$WEB_PORT|g" \
|
||||
-e "s|%web_system%|$WEB_SYSTEM|g" \
|
||||
-e "s|%web_ssl_port%|$WEB_SSL_PORT|g" \
|
||||
-e "s|%rgroups%|$WEB_RGROUPs|g" \
|
||||
-e "s|%proxy_system%|$PROXY_SYSTEM|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
|
||||
|
||||
if [ "$type" == 'awstats' ]; then
|
||||
|
|
|
@ -49,14 +49,6 @@ else
|
|||
update_user_value "$user" '$LANGUAGE' "$language"
|
||||
fi
|
||||
|
||||
exit
|
||||
# Changing user contact email
|
||||
old_email=$(get_user_value '$CONTACT')
|
||||
update_user_value "$user" '$CONTACT' "$email"
|
||||
pw_str=$(grep -n "^$user:" /etc/passwd)
|
||||
str=$(echo "$pw_str" | cut -f 1 -d :)
|
||||
sed -i "$str s/$old_email/$email/g" /etc/passwd
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
# info: add ftp account for web domain.
|
||||
# info: change ftp user password.
|
||||
# options: USER DOMAIN FTP_USER FTP_PASSWORD
|
||||
#
|
||||
# The function creates addutional ftp account for web domain.
|
||||
# The function changes ftp user password.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -13,7 +13,7 @@
|
|||
user=$1
|
||||
domain=$(idn -t --quiet -u "$2" )
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
ftp_user=${1}_${3}
|
||||
ftp_user=$3
|
||||
ftp_password=$4
|
||||
|
||||
# Includes
|
||||
|
@ -33,31 +33,39 @@ 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_empty 'web' 'DOMAIN' "$domain" '$FTP_USER'
|
||||
get_domain_values 'web'
|
||||
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||
echo "Error: account $ftp_user doesn't exist"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Adding user
|
||||
/usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \
|
||||
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
||||
# Changing ftp user password
|
||||
echo "$ftp_user:$ftp_password" | /usr/sbin/chpasswd
|
||||
|
||||
ftp_md5="$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)"
|
||||
ftp_md5=$(awk -v user=$ftp_user -F : 'user == $1 {print $2}' /etc/shadow)
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Update config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
||||
# Rebuilding FTP variables
|
||||
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||
cut -f 1 -d:)
|
||||
ftp_md5=$(echo $FTP_MD5 |tr ':' '\n' |grep -n '' |\
|
||||
sed -e "s%^$position:.*%$position:$ftp_md5%" |\
|
||||
cut -f 2 -d :| sed -e "/^$/d"| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||
|
||||
# Updating config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||
|
||||
# Logging
|
||||
log_history "added ftp account $ftp_user for $domain"
|
||||
log_history "changed password for $ftp_user on $domain"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
89
bin/v-change-web-domain-ftp-path
Executable file
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
# info: change path for ftp user.
|
||||
# options: USER DOMAIN FTP_USER FTP_PATH
|
||||
#
|
||||
# The function changes ftp user path.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
user=$1
|
||||
domain=$(idn -t --quiet -u "$2" )
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
ftp_user=$3
|
||||
ftp_path=$4
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/func/domain.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PATH'
|
||||
validate_format 'user' 'domain' 'ftp_user'
|
||||
is_system_enabled "$WEB_SYSTEM" 'WEB_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"
|
||||
get_domain_values 'web'
|
||||
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||
echo "Error: account $ftp_user doesn't exist"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
ftp_path_a=$(readlink -f "$HOMEDIR/$user/web/$domain/$ftp_path")
|
||||
if [ -z "$(echo $ftp_path_a |grep $HOMEDIR/$user/web/$domain)" ]; then
|
||||
echo "Error: absolute path $ftp_path_a is invalid"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# MKDIR if path doesn't exist
|
||||
if [ ! -e "$ftp_path_a" ]; then
|
||||
mkdir -p "$ftp_path_a"
|
||||
chown $user:$user "$ftp_path_a"
|
||||
chmod 751 "$ftp_path_a"
|
||||
fi
|
||||
|
||||
# Chaning ftp user path
|
||||
pw_str=$(grep -n "^$ftp_user:" /etc/passwd)
|
||||
str=$(echo "$pw_str" | cut -f 1 -d :)
|
||||
old_path=$(echo "$pw_str" | cut -f 7 -d :)
|
||||
sed -i "$str s%$old_path%$ftp_path_a%g" /etc/passwd
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Transforming absolute path to relative
|
||||
ftp_path_r=$(echo $ftp_path_a |sed "s%$HOMEDIR/$user/web/$domain%%")
|
||||
|
||||
# Rebuilding FTP variables
|
||||
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||
cut -f 1 -d:)
|
||||
ftp_path=$(echo $FTP_PATH |tr ':' '\n' |grep -n '' |\
|
||||
sed -e "s%^$position:.*%$position:$ftp_path_r%" |\
|
||||
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||
|
||||
# Updating config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||
|
||||
# Logging
|
||||
log_history "changed path to $ftp_path_a for $ftp_user@$domain"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
58
bin/v-copy-fs-file
Executable file
|
@ -0,0 +1,58 @@
|
|||
#!/bin/bash
|
||||
# File copier
|
||||
|
||||
user=$1
|
||||
file_src=$2
|
||||
file_dst=$3
|
||||
|
||||
# Checking arguments
|
||||
if [ -z "$file_dst" ]; then
|
||||
echo "Usage: USER SRC_FILE DST_FILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking users
|
||||
if [ ! -e "$VESTA/data/users/$user" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking homedir
|
||||
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
|
||||
if [ -z $homedir ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking source file
|
||||
if [ ! -e "$file_src" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking source path
|
||||
rpath=$(readlink -f "$file_src")
|
||||
if [ -z "$(echo $rpath |grep ^/tmp)" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking destination path
|
||||
rpath=$(readlink -f "$file_dst")
|
||||
if [ -z "$(echo $rpath |grep ^$homedir)" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking dst file permission
|
||||
if [ -e "$file_dst" ]; then
|
||||
perms=$(stat --format '%a' $file_dst)
|
||||
fi
|
||||
|
||||
# Copying file
|
||||
cp $file_src $file_dst
|
||||
|
||||
# Changing ownership
|
||||
chown $user:$user $file_dst
|
||||
|
||||
# Changin permissions
|
||||
if [ ! -z "$perms" ]; then
|
||||
chmod $perms $file_dst
|
||||
fi
|
||||
|
||||
exit
|
|
@ -89,8 +89,14 @@ fi
|
|||
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
||||
sed -i "/ $user$/d" $VESTA/data/queue/traffic.pipe
|
||||
|
||||
# Removing system user
|
||||
/usr/sbin/userdel -f $user
|
||||
# Deleting system user
|
||||
/usr/sbin/userdel -f $user >> /dev/null 2>&1
|
||||
if [ "$?" != 0 ]; then
|
||||
sed -i "/^$user:/d" /etc/passwd
|
||||
sed -i "/^$user:/d" /etc/shadow
|
||||
fi
|
||||
|
||||
# Deleting user directories
|
||||
chattr -i $HOMEDIR/$user/conf
|
||||
rm -rf $HOMEDIR/$user
|
||||
rm -f /var/spool/mail/$user
|
||||
|
|
|
@ -89,9 +89,15 @@ if [ ! -z "$STATS" ] && [ "$STATS" != 'no' ]; then
|
|||
rm -f /etc/awstats/$STATS.$domain.conf
|
||||
fi
|
||||
|
||||
# Deleting ftp account
|
||||
# Deleting ftp users
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
/usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
|
||||
for ftp_user in ${FTP_USER//:/ }; do
|
||||
/usr/sbin/userdel $ftp_user >> /dev/null 2>&1
|
||||
if [ "$?" != 0 ]; then
|
||||
sed -i "/^$ftp_user:/d" /etc/passwd
|
||||
sed -i "/^$ftp_user:/d" /etc/shadow
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Deleting directory
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
# info: delete webdomain ftp account.
|
||||
# options: USER DOMAIN
|
||||
# info: delete webdomain ftp account
|
||||
# options: USER DOMAIN FTP_USER
|
||||
#
|
||||
# The function deletes additional ftp account.
|
||||
|
||||
|
@ -13,6 +13,7 @@
|
|||
user=$1
|
||||
domain=$(idn -t --quiet -u "$2" )
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
ftp_user=$3
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
|
@ -24,14 +25,19 @@ source $VESTA/conf/vesta.conf
|
|||
# Verifications #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
check_args '2' "$#" 'USER DOMAIN'
|
||||
validate_format 'user' 'domain'
|
||||
check_args '3' "$#" 'USER DOMAIN FTP_USER'
|
||||
validate_format 'user' 'domain' 'ftp_user'
|
||||
is_system_enabled "$WEB_SYSTEM" 'WEB_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" '$FTP_USER'
|
||||
get_domain_values 'web'
|
||||
if [ -z "$(echo $FTP_USER | tr ':' '\n' | grep ^$ftp_user$)" ]; then
|
||||
echo "Error: account $ftp_user doesn't exist"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -39,20 +45,34 @@ is_object_value_exist 'web' 'DOMAIN' "$domain" '$FTP_USER'
|
|||
#----------------------------------------------------------#
|
||||
|
||||
# Deleting ftp user
|
||||
get_domain_values 'web'
|
||||
/usr/sbin/userdel -f $FTP_USER >> /dev/null 2>&1
|
||||
/usr/sbin/userdel $ftp_user >> /dev/null 2>&1
|
||||
if [ "$?" != 0 ]; then
|
||||
sed -i "/^$ftp_user:/d" /etc/passwd
|
||||
sed -i "/^$ftp_user:/d" /etc/shadow
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Rebuilding FTP variables
|
||||
position=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep ":$ftp_user$" |\
|
||||
cut -f 1 -d:)
|
||||
ftp_user=$(echo $FTP_USER |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||
cut -f 2 -d :| sed -e "/^$/d"| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||
ftp_md5=$(echo $FTP_MD5 |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||
ftp_path=$(echo $FTP_PATH |tr ':' '\n' |grep -n '' |grep -v "^$position:" |\
|
||||
cut -f 2 -d :| sed -e ':a;N;$!ba;s/\n/:/g')
|
||||
|
||||
# Update config
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' ''
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' ''
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_USER' "$ftp_user"
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
|
||||
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_PATH' "$ftp_path"
|
||||
|
||||
# Logging
|
||||
log_history "deleted ftp account $FTP_USER for $domain"
|
||||
log_history "deleted ftp account ${3} for $domain"
|
||||
log_event "$OK" "$EVENT"
|
||||
|
||||
exit
|
||||
|
|
39
bin/v-list-fs-directory
Executable file
|
@ -0,0 +1,39 @@
|
|||
#!/bin/bash
|
||||
# File list wrapper
|
||||
|
||||
user=$1
|
||||
path=$2
|
||||
|
||||
# Checking arguments
|
||||
if [ -z "$user" ]; then
|
||||
echo "Usage: USER [PATH]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking users
|
||||
if [ ! -e "$VESTA/data/users/$user" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking homedir
|
||||
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
|
||||
if [ -z $homedir ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking path
|
||||
if [ ! -z "$path" ]; then
|
||||
# Validating absolute path
|
||||
rpath=$(readlink -f "$path")
|
||||
if [ -z "$(echo $rpath |grep $homedir)" ]; then
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
path=$homedir
|
||||
fi
|
||||
|
||||
# Listing files
|
||||
find "$path" -maxdepth 1 -printf "%y/%m/%TY-%Tm-%Td/%TH:%TM:%TS/%u/%g/%s/%P\n"
|
||||
|
||||
|
||||
exit
|
|
@ -37,6 +37,9 @@ json_list_rrd() {
|
|||
[ "$type" = 'ssh' ]; then
|
||||
title="$(echo $rrd| tr '[:lower:]' '[:upper:]') Usage"
|
||||
fi
|
||||
if [ "$type" = 'mail' ]; then
|
||||
title="Exim Usage"
|
||||
fi
|
||||
if [ "$type" = 'db' ]; then
|
||||
db_type=$(echo $rrd|cut -f 1 -d _ |sed -e 's/mysql/MySQL/g' \
|
||||
-e 's/pgsql/PostgreSQL/g' )
|
||||
|
@ -84,14 +87,14 @@ if [ -n "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
|||
rrd_types="$rrd_types web"
|
||||
fi
|
||||
|
||||
if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
rrd_types="$rrd_types mail"
|
||||
fi
|
||||
|
||||
if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||
rrd_types="$rrd_types db"
|
||||
fi
|
||||
|
||||
#if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
# rrd_types="$rrd_types mail"
|
||||
#fi
|
||||
|
||||
if [ -n "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
||||
rrd_types="$rrd_types ftp"
|
||||
fi
|
||||
|
|
|
@ -70,6 +70,7 @@ is_object_valid 'user' 'USER' "$user"
|
|||
|
||||
# Defining config
|
||||
conf=$USER_DATA/user.conf
|
||||
HOME=$HOMEDIR/$user
|
||||
|
||||
# Defining fileds to select
|
||||
fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
||||
|
@ -81,7 +82,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_TEMPLATE $PROXY_TEMPLATE
|
|||
$U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
|
||||
$U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
|
||||
$U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
|
||||
$U_BACKUPS $LANGUAGE $TIME $DATE'
|
||||
$U_BACKUPS $LANGUAGE $HOME $TIME $DATE'
|
||||
|
||||
# Listing user
|
||||
case $format in
|
||||
|
|
|
@ -21,7 +21,7 @@ json_list_ns() {
|
|||
ns=$(grep "^NS='" $USER_DATA/user.conf |cut -f 2 -d \')
|
||||
echo '['
|
||||
i=1
|
||||
nslistc=$(echo -e "${ns//,/\n}"|wc -l)
|
||||
nslistc=$(echo -e "${ns//,/\\n}"|wc -l)
|
||||
for nameserver in ${ns//,/ };do
|
||||
if [ "$i" -ne "$nslistc" ]; then
|
||||
echo -e "\t\"$nameserver\","
|
||||
|
|
|
@ -76,7 +76,11 @@ conf=$USER_DATA/web.conf
|
|||
|
||||
# Defining fileds to select
|
||||
fields='$DOMAIN $IP $IP6 $U_DISK $U_BANDWIDTH $TPL $ALIAS $STATS $STATS_USER
|
||||
$SSL $SSL_HOME $FTP_USER $PROXY $PROXY_EXT $SUSPENDED $TIME $DATE'
|
||||
$SSL $SSL_HOME $FTP_USER $FTP_PATH $PROXY $PROXY_EXT $DOCUMENT_ROOT
|
||||
$SUSPENDED $TIME $DATE'
|
||||
|
||||
# Defining document root
|
||||
DOCUMENT_ROOT="$HOMEDIR/$user/web/$domain/public_html"
|
||||
|
||||
# Listing domains
|
||||
case $format in
|
||||
|
|
|
@ -34,8 +34,8 @@ is_object_valid 'user' 'USER' "$user"
|
|||
conf=$USER_DATA/web.conf
|
||||
|
||||
# Defining fileds to select
|
||||
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS"
|
||||
fields="$fields \$STATS \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER"
|
||||
fields="\$DOMAIN \$IP \$IP6 \$U_DISK \$U_BANDWIDTH \$TPL \$ALIAS \$STATS"
|
||||
fields="$fields \$STATS_USER \$SSL \$SSL_HOME \$FTP_USER \$FTP_PATH"
|
||||
fields="$fields \$PROXY \$PROXY_EXT \$SUSPENDED \$TIME \$DATE"
|
||||
|
||||
# Listing domains
|
||||
|
|
36
bin/v-open-fs-file
Executable file
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
# File reader
|
||||
|
||||
user=$1
|
||||
path=$2
|
||||
|
||||
# Checking arguments
|
||||
if [ -z "$path" ]; then
|
||||
echo "Usage: USER PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking users
|
||||
if [ ! -e "$VESTA/data/users/$user" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking homedir
|
||||
homedir=$(grep "^$user:" /etc/passwd | cut -f 6 -d :)
|
||||
if [ -z $homedir ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Checking path
|
||||
if [ ! -z "$path" ]; then
|
||||
# Validating absolute path
|
||||
rpath=$(readlink -f "$path")
|
||||
if [ -z "$(echo $rpath |grep $homedir)" ]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cat "$path"
|
||||
|
||||
exit
|
||||
|
|
@ -363,11 +363,16 @@ if [ "$web" != 'no' ]; then
|
|||
exit $E_PARSING
|
||||
fi
|
||||
|
||||
# Fix for tar < 1.24
|
||||
find $HOMEDIR/$user/web/$domain -type d \
|
||||
-exec chown -h $user:$user {} \;
|
||||
|
||||
# ReChown files if uid differs
|
||||
if [ "$old_uid" -ne "$new_uid" ]; then
|
||||
find $HOMEDIR/$user/web/$domain/ -user $old_uid \
|
||||
-exec chown -h $user:$user {} \;
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
# Restart WEB
|
||||
|
|
|
@ -110,6 +110,11 @@ for period in $periods; do
|
|||
$BIN/v-update-sys-rrd-$PROXY_SYSTEM $period >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Updating mail stats
|
||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||
$BIN/v-update-sys-rrd-mail $period >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
# Updating ftp stats
|
||||
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
|
||||
$BIN/v-update-sys-rrd-ftp $period >/dev/null 2>&1
|
||||
|
|
96
bin/v-update-sys-rrd-mail
Executable file
|
@ -0,0 +1,96 @@
|
|||
#!/bin/bash
|
||||
# info: update mail rrd
|
||||
# options: PERIOD
|
||||
#
|
||||
# The function is for updating mail rrd database and graphic.
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variable&Function #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Argument defenition
|
||||
period=${1-daily}
|
||||
|
||||
# Includes
|
||||
source $VESTA/func/main.sh
|
||||
source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Action #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
# Switching on time period
|
||||
case $period in
|
||||
daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';;
|
||||
weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';;
|
||||
monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';;
|
||||
yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';;
|
||||
*) exit $E_RRD ;;
|
||||
esac
|
||||
|
||||
# Checking directory
|
||||
if [ ! -d "$RRD/mail" ]; then
|
||||
mkdir $RRD/mail
|
||||
fi
|
||||
|
||||
# Checking database
|
||||
if [ ! -e "$RRD/mail/mail.rrd" ]; then
|
||||
# Adding database
|
||||
rrdtool create $RRD/mail/mail.rrd --step $RRD_STEP \
|
||||
DS:A:GAUGE:600:U:U \
|
||||
RRA:AVERAGE:0.5:1:600 \
|
||||
RRA:AVERAGE:0.5:6:700 \
|
||||
RRA:AVERAGE:0.5:24:775 \
|
||||
RRA:AVERAGE:0.5:288:797 \
|
||||
RRA:MAX:0.5:1:600 \
|
||||
RRA:MAX:0.5:6:700 \
|
||||
RRA:MAX:0.5:24:775 \
|
||||
RRA:MAX:0.5:288:797
|
||||
fi
|
||||
|
||||
# Parsing data
|
||||
if [ "$period" = 'daily' ]; then
|
||||
a=0
|
||||
a=$(exim -bpc)
|
||||
|
||||
# Updating rrd database
|
||||
rrdtool update $RRD/mail/mail.rrd N:$a
|
||||
fi
|
||||
|
||||
# Updating daily graph
|
||||
rrdtool graph $RRD/mail/$period-mail.png \
|
||||
--imgformat PNG \
|
||||
--height="120" \
|
||||
--width="440" \
|
||||
--start "$start" \
|
||||
--end "$end" \
|
||||
--vertical-label "Queue Size" \
|
||||
--x-grid "$grid" \
|
||||
-c "BACK#7a766d" \
|
||||
-c "SHADEA#7a766d" \
|
||||
-c "SHADEB#7a766d" \
|
||||
-c "FONT#FFFFFF" \
|
||||
-c "CANVAS#302c2d" \
|
||||
-c "GRID#666666" \
|
||||
-c "MGRID#AAAAAA" \
|
||||
-c "FRAME#302c2d" \
|
||||
-c "ARROW#FFFFFF" \
|
||||
DEF:a=$RRD/mail/mail.rrd:A:AVERAGE \
|
||||
COMMENT:'\r' \
|
||||
LINE1:a#fefda0:"Emails " \
|
||||
GPRINT:a:'LAST:Current\:''%8.0lf' \
|
||||
GPRINT:a:'MIN:Min\:''%8.0lf' \
|
||||
GPRINT:a:'MAX:Max\:''%8.0lf\j' &>/dev/null; result=$?
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Vesta #
|
||||
#----------------------------------------------------------#
|
||||
|
||||
if [ "$result" -ne 0 ]; then
|
||||
exit $E_RRD
|
||||
fi
|
||||
|
||||
exit
|
|
@ -67,7 +67,7 @@ echo "WEB='$WEB'" > $USER_DATA/backup-excludes.conf
|
|||
echo "DNS='$DNS'" >> $USER_DATA/backup-excludes.conf
|
||||
echo "MAIL='$MAIL'" >> $USER_DATA/backup-excludes.conf
|
||||
echo "DB='$DB'" >> $USER_DATA/backup-excludes.conf
|
||||
echo "CRON='$DB'" >> $USER_DATA/backup-excludes.conf
|
||||
echo "CRON='$CRON'" >> $USER_DATA/backup-excludes.conf
|
||||
echo "USER='$USER'" >> $USER_DATA/backup-excludes.conf
|
||||
chmod 660 $USER_DATA/backup-excludes.conf
|
||||
|
||||
|
|
|
@ -337,20 +337,20 @@ dump_mysql_database() {
|
|||
fi
|
||||
|
||||
query='SELECT VERSION()'
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" >/dev/null 2>/tmp/e.mysql
|
||||
if [ '0' -ne "$?" ]; then
|
||||
rm -rf $tmpdir
|
||||
echo "Can't connect to mysql server $HOST" |\
|
||||
echo -e "Can't connect to $HOST\n$(cat /tmp/e.mysql)" |\
|
||||
$send_mail -s "$subj" $email
|
||||
echo "Error: Connection failed"
|
||||
log_event "$E_CONNECT $EVENT"
|
||||
exit $E_CONNECT
|
||||
fi
|
||||
|
||||
mysqldump -h $HOST -u $USER -p$PASSWORD -r $dump $database
|
||||
mysqldump -h $HOST -u $USER -p$PASSWORD -r $dump $database 2>/tmp/e.mysql
|
||||
if [ '0' -ne "$?" ]; then
|
||||
rm -rf $tmpdir
|
||||
echo "Can't dump mysql database $database" |\
|
||||
echo -e "Can't dump database $database\n$(cat /tmp/e.mysql)" |\
|
||||
$send_mail -s "$subj" $email
|
||||
echo "Error: dump $database failed"
|
||||
log_event "$E_DB $EVENT"
|
||||
|
|
|
@ -327,15 +327,9 @@ is_web_domain_cert_valid() {
|
|||
fi
|
||||
|
||||
if [ -e "$ssl_dir/$domain.ca" ]; then
|
||||
ca_vrf=$(openssl verify $ssl_dir/$domain.ca 2>/dev/null |grep 'OK')
|
||||
if [ -z "$ca_vrf" ]; then
|
||||
echo "Error: ssl certificate authority is not valid"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
|
||||
crt_vrf=$(openssl verify -untrusted $ssl_dir/$domain.ca \
|
||||
$ssl_dir/$domain.crt 2>/dev/null |grep 'OK')
|
||||
crt_vrf=$(openssl verify -purpose sslserver \
|
||||
-CAfile $ssl_dir/$domain.ca $ssl_dir/$domain.crt 2>/dev/null |\
|
||||
grep 'OK')
|
||||
if [ -z "$crt_vrf" ]; then
|
||||
echo "Error: root or/and intermediate cerificate not found"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
|
@ -491,9 +485,9 @@ is_dns_nameserver_valid() {
|
|||
if [ ! -z "$remote" ]; then
|
||||
zone=$USER_DATA/dns/$d.conf
|
||||
a_record=$(echo $r |cut -f 1 -d '.')
|
||||
record=$(grep "RECORD='$a_record'" $zone| grep "TYPE='A'")
|
||||
if [ -z "$record" ]; then
|
||||
echo "Error: corresponding A record $a_record.$d is not exist"
|
||||
n_record=$(grep "RECORD='$a_record'" $zone| grep "TYPE='A'")
|
||||
if [ -z "$n_record" ]; then
|
||||
echo "Error: corresponding A record $a_record.$d does not exist"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
|
|
|
@ -740,11 +740,16 @@ validate_format_mhdmw() {
|
|||
# proxy extention or DNS record
|
||||
validate_format_common() {
|
||||
exclude="[!|#|$|^|&|(|)|+|=|{|}|:|<|>|?|/|\|\"|'|;|%|\`| ]"
|
||||
if [[ "$1" =~ $exclude ]] || [ 200 -le ${#1} ]; then
|
||||
if [[ "$1" =~ $exclude ]]; then
|
||||
echo "Error: $2 $1 is not valid"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
if [ 400 -le ${#1} ]; then
|
||||
echo "Error: $2 $1 is too long"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
}
|
||||
|
||||
# DNS record value
|
||||
|
|
|
@ -318,21 +318,36 @@ rebuild_web_domain_conf() {
|
|||
$WEBTPL/$PROXY_SYSTEM/$PROXY.sh $user $domain $ip $HOMEDIR $docroot
|
||||
fi
|
||||
|
||||
# Checking ftp
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
|
||||
# Defining ftp user shell
|
||||
if [ -z "$FTP_SHELL" ]; then
|
||||
shell='/sbin/nologin'
|
||||
if [ -e "/usr/bin/rssh" ]; then
|
||||
shell='/usr/bin/rssh'
|
||||
fi
|
||||
/usr/sbin/useradd $FTP_USER \
|
||||
else
|
||||
shell=$FTP_SHELL
|
||||
fi
|
||||
|
||||
# Checking ftp users
|
||||
for ftp_user in ${FTP_USER//:/ }; do
|
||||
if [ -z "$(grep ^$ftp_user: /etc/passwd)" ]; then
|
||||
# Parsing ftp user variables
|
||||
position=$(echo $FTP_USER | tr ':' '\n' | grep -n '' |\
|
||||
grep ":$ftp_user$" | cut -f 1 -d:)
|
||||
ftp_path=$(echo $FTP_PATH | tr ':' '\n' | grep -n '' |\
|
||||
grep "^$position:" | cut -f 2 -d :)
|
||||
ftp_md5=$(echo $FTP_MD5 | tr ':' '\n' | grep -n '' |\
|
||||
grep "^$position:" | cut -f 2 -d :)
|
||||
|
||||
# Adding ftp user
|
||||
/usr/sbin/useradd $ftp_user \
|
||||
-s $shell \
|
||||
-o -u $(id -u $user) \
|
||||
-g $(id -u $user) \
|
||||
-M -d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
|
||||
-M -d "$HOMEDIR/$user/web/$domain${ftp_path}" >/dev/null 2>&1
|
||||
|
||||
# Update password
|
||||
shadow=$(grep "^$FTP_USER:" /etc/shadow)
|
||||
# Updating ftp user password
|
||||
shadow=$(grep "^$ftp_user:" /etc/shadow)
|
||||
shdw3=$(echo "$shadow" | cut -f3 -d :)
|
||||
shdw4=$(echo "$shadow" | cut -f4 -d :)
|
||||
shdw5=$(echo "$shadow" | cut -f5 -d :)
|
||||
|
@ -340,15 +355,14 @@ rebuild_web_domain_conf() {
|
|||
shdw7=$(echo "$shadow" | cut -f7 -d :)
|
||||
shdw8=$(echo "$shadow" | cut -f8 -d :)
|
||||
shdw9=$(echo "$shadow" | cut -f9 -d :)
|
||||
shadow_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
|
||||
shadow_str="$ftp_user:$ftp_md5:$shdw3:$shdw4:$shdw5:$shdw6"
|
||||
shadow_str="$shadow_str:$shdw7:$shdw8:$shdw9"
|
||||
|
||||
chmod u+w /etc/shadow
|
||||
sed -i "/^$FTP_USER:*/d" /etc/shadow
|
||||
sed -i "/^$ftp_user:*/d" /etc/shadow
|
||||
echo "$shadow_str" >> /etc/shadow
|
||||
chmod u-w /etc/shadow
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# DNS domain rebuild
|
||||
|
|
|
@ -6,11 +6,21 @@ send_api_cmd() {
|
|||
USER=admin
|
||||
fi
|
||||
|
||||
auth="user=$USER&password=$PASSWORD&returncode=yes"
|
||||
cmd="cmd=$1"
|
||||
args="arg1=$2&arg2=$3&arg3=$4&arg4=$5&arg5=$6&arg6=$7&arg7=$8&arg8=$9"
|
||||
args=$(echo "$args" |sed -e "s/+/%2B/g")
|
||||
answer=$(curl -s -k --data "$auth&$cmd&$args" https://$HOST:$PORT/api/)
|
||||
answer=$(curl -s -k \
|
||||
--data-urlencode "user=$USER" \
|
||||
--data-urlencode "password=$PASSWORD" \
|
||||
--data-urlencode "returncode=yes" \
|
||||
--data-urlencode "cmd=$1" \
|
||||
--data-urlencode "arg1=$2" \
|
||||
--data-urlencode "arg2=$3" \
|
||||
--data-urlencode "arg3=$4" \
|
||||
--data-urlencode "arg4=$5" \
|
||||
--data-urlencode "arg5=$6" \
|
||||
--data-urlencode "arg6=$7" \
|
||||
--data-urlencode "arg7=$8" \
|
||||
--data-urlencode "arg8=$9" \
|
||||
https://$HOST:$PORT/api/)
|
||||
|
||||
if [ "$answer" != '0' ]; then
|
||||
return 1
|
||||
else
|
||||
|
@ -90,7 +100,7 @@ is_dnshost_alive() {
|
|||
$send_cmd v-list-sys-config
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: $type connection to $HOST failed"
|
||||
log_event "$E_CONNECT $EVENT"
|
||||
log_event "$E_CONNECT" "$EVENT"
|
||||
exit $E_CONNECT
|
||||
fi
|
||||
|
||||
|
@ -104,7 +114,7 @@ is_dnshost_alive() {
|
|||
$send_cmd v-list-user $DNS_USER
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: dns user $DNS_USER doesn't exist"
|
||||
log_event "$E_NOTEXIST $EVENT"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
}
|
||||
|
@ -146,7 +156,7 @@ remote_dns_health_check() {
|
|||
echo -e "\n\n--\nVesta Control Panel\n$(hostname)" >> $tmpfile
|
||||
cat $tmpfile | $send_mail -s "$subj" $email
|
||||
|
||||
log_event "$E_CONNECT $EVENT"
|
||||
log_event "$E_CONNECT" "$EVENT"
|
||||
dconf="../../../conf/dns-cluster"
|
||||
update_object_value "$dconf" 'HOST' "$HOST" '$SUSPENDED' 'yes'
|
||||
fi
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
##########################################################################
|
||||
######################################################################
|
||||
# #
|
||||
# Exim configuration file for Vesta Control Panel #
|
||||
# #
|
||||
######################################################################
|
||||
|
||||
#SPAMASSASSIN = yes
|
||||
SPAM_SCORE = 50
|
||||
CLAMD = yes
|
||||
##########################################################################
|
||||
#SPAM_SCORE = 50
|
||||
#CLAMD = yes
|
||||
|
||||
domainlist local_domains = dsearch;/etc/exim4/domains/
|
||||
domainlist relay_to_domains = dsearch;/etc/exim4/domains/
|
||||
|
@ -43,43 +47,38 @@ DKIM_FILE = /etc/exim4/domains/${lc:${domain:$h_from:}}/dkim.pem
|
|||
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# ACL CONFIGURATION #
|
||||
# Specifies access control lists for incoming SMTP mail #
|
||||
######################################################################
|
||||
begin acl
|
||||
##########################################################################
|
||||
|
||||
acl_check_spammers:
|
||||
accept hosts = +whitelist
|
||||
|
||||
drop message = Your host in blacklist on this server.
|
||||
log_message = Host in blacklist
|
||||
hosts = +spammers
|
||||
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
|
||||
dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}}
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mail:
|
||||
deny
|
||||
condition = ${if eq{$sender_helo_name}{}}
|
||||
deny condition = ${if eq{$sender_helo_name}{}}
|
||||
message = HELO required before MAIL
|
||||
# drop
|
||||
# condition = ${if isip{$sender_helo_name}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
|
||||
drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid
|
||||
condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}}
|
||||
condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
|
||||
delay = 45s
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
|
||||
# condition = ${if match{$sender_helo_name}{\N\.\N}{no}{yes}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
drop
|
||||
condition = ${if isip{$sender_helo_name}}
|
||||
|
||||
drop condition = ${if isip{$sender_helo_name}}
|
||||
message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N\.$\N}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
# drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]"
|
||||
# condition = ${if match{$sender_helo_name}{$primary_hostname}}
|
||||
|
||||
drop condition = ${if eq{[$interface_address]}{$sender_helo_name}}
|
||||
message = $interface_address is _my_ address
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -102,6 +101,10 @@ acl_check_rcpt:
|
|||
accept authenticated = *
|
||||
control = submission/domain=
|
||||
|
||||
deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
|
||||
hosts = !+whitelist
|
||||
dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}}
|
||||
|
||||
require message = relay not permitted
|
||||
domains = +local_domains : +relay_to_domains
|
||||
|
||||
|
@ -113,14 +116,18 @@ acl_check_rcpt:
|
|||
|
||||
.ifdef CLAMD
|
||||
warn set acl_m0 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim4/domains/$domain/antivirus}{yes}{no}}
|
||||
set acl_m0 = yes
|
||||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn set acl_m1 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim4/domains/$domain/antispam}{yes}{no}}
|
||||
set acl_m1 = yes
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -132,8 +139,7 @@ acl_check_data:
|
|||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn
|
||||
!authenticated = *
|
||||
warn !authenticated = *
|
||||
hosts = !+relay_from_hosts
|
||||
condition = ${if < {$message_size}{100K}}
|
||||
condition = ${if eq{$acl_m1}{yes}{yes}{no}}
|
||||
|
@ -142,23 +148,29 @@ acl_check_data:
|
|||
add_header = X-Spam-Bar: $spam_bar
|
||||
add_header = X-Spam-Report: $spam_report
|
||||
set acl_m2 = $spam_score_int
|
||||
warn
|
||||
condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
|
||||
warn condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}}
|
||||
add_header = X-Spam-Status: Yes
|
||||
message = SpamAssassin detected spam (from $sender_address to $recipients).
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mime:
|
||||
deny message = Blacklisted file extension detected
|
||||
condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh)$\N}{1}{0}}
|
||||
|
||||
accept
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# AUTHENTICATION CONFIGURATION #
|
||||
######################################################################
|
||||
begin authenticators
|
||||
##########################################################################
|
||||
|
||||
dovecot_plain:
|
||||
driver = dovecot
|
||||
public_name = PLAIN
|
||||
|
@ -171,9 +183,14 @@ dovecot_login:
|
|||
server_socket = /var/run/dovecot/auth-client
|
||||
server_set_id = $auth1
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# ROUTERS CONFIGURATION #
|
||||
# Specifies how addresses are handled #
|
||||
######################################################################
|
||||
begin routers
|
||||
##########################################################################
|
||||
|
||||
#smarthost:
|
||||
# driver = manualroute
|
||||
# domains = ! +local_domains
|
||||
|
@ -253,9 +270,12 @@ terminate_alias:
|
|||
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# TRANSPORTS CONFIGURATION #
|
||||
######################################################################
|
||||
begin transports
|
||||
##########################################################################
|
||||
|
||||
remote_smtp:
|
||||
driver = smtp
|
||||
#helo_data = $sender_address_domain
|
||||
|
@ -265,7 +285,6 @@ remote_smtp:
|
|||
dkim_canon = relaxed
|
||||
dkim_strict = 0
|
||||
|
||||
|
||||
procmail:
|
||||
driver = pipe
|
||||
command = "/usr/bin/procmail -d $local_part"
|
||||
|
@ -306,7 +325,7 @@ local_spam_delivery:
|
|||
delivery_date_add
|
||||
envelope_to_add
|
||||
return_path_add
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.spam"
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam"
|
||||
quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M
|
||||
quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part"
|
||||
quota_warn_threshold = 75%
|
||||
|
@ -335,8 +354,24 @@ devnull:
|
|||
driver = appendfile
|
||||
file = /dev/null
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# RETRY CONFIGURATION #
|
||||
######################################################################
|
||||
begin retry
|
||||
|
||||
# Address or Domain Error Retries
|
||||
# ----------------- ----- -------
|
||||
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
|
||||
##########################################################################
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
# REWRITE CONFIGURATION #
|
||||
######################################################################
|
||||
begin rewrite
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
##########################################################################
|
||||
######################################################################
|
||||
# #
|
||||
# Exim configuration file for Vesta Control Panel #
|
||||
# #
|
||||
######################################################################
|
||||
|
||||
#SPAMASSASSIN = yes
|
||||
SPAM_SCORE = 10
|
||||
#SPAM_SCORE = 50
|
||||
#CLAMD = yes
|
||||
##########################################################################
|
||||
|
||||
domainlist local_domains = dsearch;/etc/exim/domains/
|
||||
domainlist relay_to_domains = dsearch;/etc/exim/domains/
|
||||
|
@ -43,43 +47,37 @@ DKIM_FILE = /etc/exim/domains/${lc:${domain:$h_from:}}/dkim.pem
|
|||
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
######################################################################
|
||||
# ACL CONFIGURATION #
|
||||
# Specifies access control lists for incoming SMTP mail #
|
||||
######################################################################
|
||||
begin acl
|
||||
##########################################################################
|
||||
|
||||
acl_check_spammers:
|
||||
accept hosts = +whitelist
|
||||
|
||||
drop message = Your host in blacklist on this server.
|
||||
log_message = Host in blacklist
|
||||
hosts = +spammers
|
||||
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
|
||||
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mail:
|
||||
deny
|
||||
condition = ${if eq{$sender_helo_name}{}}
|
||||
deny condition = ${if eq{$sender_helo_name}{}}
|
||||
message = HELO required before MAIL
|
||||
# drop
|
||||
# condition = ${if isip{$sender_helo_name}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
|
||||
drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid
|
||||
condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}}
|
||||
condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
|
||||
delay = 45s
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
|
||||
# condition = ${if match{$sender_helo_name}{\N\.\N}{no}{yes}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
drop
|
||||
condition = ${if isip{$sender_helo_name}}
|
||||
|
||||
drop condition = ${if isip{$sender_helo_name}}
|
||||
message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N\.$\N}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
# drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]"
|
||||
# condition = ${if match{$sender_helo_name}{$primary_hostname}}
|
||||
|
||||
drop condition = ${if eq{[$interface_address]}{$sender_helo_name}}
|
||||
message = $interface_address is _my_ address
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -102,6 +100,10 @@ acl_check_rcpt:
|
|||
accept authenticated = *
|
||||
control = submission/domain=
|
||||
|
||||
deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
|
||||
hosts = !+whitelist
|
||||
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
|
||||
|
||||
require message = relay not permitted
|
||||
domains = +local_domains : +relay_to_domains
|
||||
|
||||
|
@ -113,14 +115,18 @@ acl_check_rcpt:
|
|||
|
||||
.ifdef CLAMD
|
||||
warn set acl_m0 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim/domains/$domain/antivirus}{yes}{no}}
|
||||
set acl_m0 = yes
|
||||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn set acl_m1 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim/domains/$domain/antispam}{yes}{no}}
|
||||
set acl_m1 = yes
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -132,8 +138,7 @@ acl_check_data:
|
|||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn
|
||||
!authenticated = *
|
||||
warn !authenticated = *
|
||||
hosts = !+relay_from_hosts
|
||||
condition = ${if < {$message_size}{100K}}
|
||||
condition = ${if eq{$acl_m1}{yes}{yes}{no}}
|
||||
|
@ -142,23 +147,29 @@ acl_check_data:
|
|||
add_header = X-Spam-Bar: $spam_bar
|
||||
add_header = X-Spam-Report: $spam_report
|
||||
set acl_m2 = $spam_score_int
|
||||
warn
|
||||
condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
|
||||
warn condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}}
|
||||
add_header = X-Spam-Status: Yes
|
||||
message = SpamAssassin detected spam (from $sender_address to $recipients).
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mime:
|
||||
deny message = Blacklisted file extension detected
|
||||
condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh)$\N}{1}{0}}
|
||||
|
||||
accept
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# AUTHENTICATION CONFIGURATION #
|
||||
######################################################################
|
||||
begin authenticators
|
||||
##########################################################################
|
||||
|
||||
login:
|
||||
driver = plaintext
|
||||
public_name = LOGIN
|
||||
|
@ -178,9 +189,13 @@ dovecot_login:
|
|||
server_set_id = $auth1
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# ROUTERS CONFIGURATION #
|
||||
# Specifies how addresses are handled #
|
||||
######################################################################
|
||||
begin routers
|
||||
##########################################################################
|
||||
|
||||
smarthost:
|
||||
driver = manualroute
|
||||
domains = ! +local_domains
|
||||
|
@ -258,9 +273,12 @@ terminate_alias:
|
|||
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}{true}{false}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# TRANSPORTS CONFIGURATION #
|
||||
######################################################################
|
||||
begin transports
|
||||
##########################################################################
|
||||
|
||||
remote_smtp:
|
||||
driver = smtp
|
||||
dkim_domain = DKIM_DOMAIN
|
||||
|
@ -314,7 +332,7 @@ local_spam_delivery:
|
|||
delivery_date_add
|
||||
envelope_to_add
|
||||
return_path_add
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part/.spam"
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam"
|
||||
quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}M
|
||||
quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part"
|
||||
quota_warn_threshold = 75%
|
||||
|
@ -343,8 +361,24 @@ devnull:
|
|||
driver = appendfile
|
||||
file = /dev/null
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# RETRY CONFIGURATION #
|
||||
######################################################################
|
||||
begin retry
|
||||
|
||||
# Address or Domain Error Retries
|
||||
# ----------------- ----- -------
|
||||
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
|
||||
##########################################################################
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
# REWRITE CONFIGURATION #
|
||||
######################################################################
|
||||
begin rewrite
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
##########################################################################
|
||||
######################################################################
|
||||
# #
|
||||
# Exim configuration file for Vesta Control Panel #
|
||||
# #
|
||||
######################################################################
|
||||
|
||||
#SPAMASSASSIN = yes
|
||||
SPAM_SCORE = 50
|
||||
#SPAM_SCORE = 50
|
||||
#CLAMD = yes
|
||||
##########################################################################
|
||||
|
||||
domainlist local_domains = dsearch;/etc/exim/domains/
|
||||
domainlist relay_to_domains = dsearch;/etc/exim/domains/
|
||||
|
@ -26,8 +30,8 @@ av_scanner = clamd: /var/run/clamav/clamd.sock
|
|||
.endif
|
||||
|
||||
tls_advertise_hosts = *
|
||||
tls_certificate = /etc/pki/tls/certs/exim.pem
|
||||
tls_privatekey = /etc/pki/tls/private/exim.pem
|
||||
tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
||||
tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
||||
|
||||
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
||||
tls_on_connect_ports = 465
|
||||
|
@ -43,43 +47,38 @@ DKIM_FILE = /etc/exim/domains/${lc:${domain:$h_from:}}/dkim.pem
|
|||
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# ACL CONFIGURATION #
|
||||
# Specifies access control lists for incoming SMTP mail #
|
||||
######################################################################
|
||||
begin acl
|
||||
##########################################################################
|
||||
|
||||
acl_check_spammers:
|
||||
accept hosts = +whitelist
|
||||
|
||||
drop message = Your host in blacklist on this server.
|
||||
log_message = Host in blacklist
|
||||
hosts = +spammers
|
||||
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
|
||||
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mail:
|
||||
deny
|
||||
condition = ${if eq{$sender_helo_name}{}}
|
||||
deny condition = ${if eq{$sender_helo_name}{}}
|
||||
message = HELO required before MAIL
|
||||
# drop
|
||||
# condition = ${if isip{$sender_helo_name}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
|
||||
drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid
|
||||
condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}}
|
||||
condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
|
||||
delay = 45s
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
|
||||
# condition = ${if match{$sender_helo_name}{\N\.\N}{no}{yes}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
drop
|
||||
condition = ${if isip{$sender_helo_name}}
|
||||
|
||||
drop condition = ${if isip{$sender_helo_name}}
|
||||
message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N\.$\N}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
# drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]"
|
||||
# condition = ${if match{$sender_helo_name}{$primary_hostname}}
|
||||
|
||||
drop condition = ${if eq{[$interface_address]}{$sender_helo_name}}
|
||||
message = $interface_address is _my_ address
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -102,6 +101,10 @@ acl_check_rcpt:
|
|||
accept authenticated = *
|
||||
control = submission/domain=
|
||||
|
||||
deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
|
||||
hosts = !+whitelist
|
||||
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
|
||||
|
||||
require message = relay not permitted
|
||||
domains = +local_domains : +relay_to_domains
|
||||
|
||||
|
@ -113,14 +116,18 @@ acl_check_rcpt:
|
|||
|
||||
.ifdef CLAMD
|
||||
warn set acl_m0 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim/domains/$domain/antivirus}{yes}{no}}
|
||||
set acl_m0 = yes
|
||||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn set acl_m1 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim/domains/$domain/antispam}{yes}{no}}
|
||||
set acl_m1 = yes
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -132,8 +139,7 @@ acl_check_data:
|
|||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn
|
||||
!authenticated = *
|
||||
warn !authenticated = *
|
||||
hosts = !+relay_from_hosts
|
||||
condition = ${if < {$message_size}{100K}}
|
||||
condition = ${if eq{$acl_m1}{yes}{yes}{no}}
|
||||
|
@ -142,23 +148,29 @@ acl_check_data:
|
|||
add_header = X-Spam-Bar: $spam_bar
|
||||
add_header = X-Spam-Report: $spam_report
|
||||
set acl_m2 = $spam_score_int
|
||||
warn
|
||||
condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
|
||||
warn condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}}
|
||||
add_header = X-Spam-Status: Yes
|
||||
message = SpamAssassin detected spam (from $sender_address to $recipients).
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mime:
|
||||
deny message = Blacklisted file extension detected
|
||||
condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh)$\N}{1}{0}}
|
||||
|
||||
accept
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# AUTHENTICATION CONFIGURATION #
|
||||
######################################################################
|
||||
begin authenticators
|
||||
##########################################################################
|
||||
|
||||
dovecot_plain:
|
||||
driver = dovecot
|
||||
public_name = PLAIN
|
||||
|
@ -171,9 +183,14 @@ dovecot_login:
|
|||
server_socket = /var/run/dovecot/auth-client
|
||||
server_set_id = $auth1
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# ROUTERS CONFIGURATION #
|
||||
# Specifies how addresses are handled #
|
||||
######################################################################
|
||||
begin routers
|
||||
##########################################################################
|
||||
|
||||
#smarthost:
|
||||
# driver = manualroute
|
||||
# domains = ! +local_domains
|
||||
|
@ -253,9 +270,12 @@ terminate_alias:
|
|||
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}{true}{false}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# TRANSPORTS CONFIGURATION #
|
||||
######################################################################
|
||||
begin transports
|
||||
##########################################################################
|
||||
|
||||
remote_smtp:
|
||||
driver = smtp
|
||||
#helo_data = $sender_address_domain
|
||||
|
@ -265,7 +285,6 @@ remote_smtp:
|
|||
dkim_canon = relaxed
|
||||
dkim_strict = 0
|
||||
|
||||
|
||||
procmail:
|
||||
driver = pipe
|
||||
command = "/usr/bin/procmail -d $local_part"
|
||||
|
@ -335,8 +354,23 @@ devnull:
|
|||
driver = appendfile
|
||||
file = /dev/null
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# RETRY CONFIGURATION #
|
||||
######################################################################
|
||||
begin retry
|
||||
|
||||
# Address or Domain Error Retries
|
||||
# ----------------- ----- -------
|
||||
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
|
||||
##########################################################################
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
# REWRITE CONFIGURATION #
|
||||
######################################################################
|
||||
begin rewrite
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
|
|
|
@ -37,3 +37,9 @@ Alias /phpmyadmin /usr/share/phpMyAdmin
|
|||
# SecRuleInheritance Off
|
||||
# </Directory>
|
||||
#</IfModule>
|
||||
|
||||
<Directory /usr/share/phpMyAdmin/setup/>
|
||||
Order Deny,Allow
|
||||
Deny from All
|
||||
Allow from None
|
||||
</Directory>
|
||||
|
|
|
@ -10,3 +10,9 @@ Alias /webmail /usr/share/roundcubemail
|
|||
Deny from all
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
<Directory /usr/share/roundcubemail/installer>
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
Allow from None
|
||||
</Directory>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
ssl = yes
|
||||
ssl_cert = </etc/dovecot/dovecot.pem
|
||||
ssl_key = </etc/dovecot/private/dovecot.pem
|
||||
ssl_cert = </usr/local/vesta/ssl/certificate.crt
|
||||
ssl_key = </usr/local/vesta/ssl/certificate.key
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
##########################################################################
|
||||
######################################################################
|
||||
# #
|
||||
# Exim configuration file for Vesta Control Panel #
|
||||
# #
|
||||
######################################################################
|
||||
|
||||
#SPAMASSASSIN = yes
|
||||
SPAM_SCORE = 50
|
||||
CLAMD = yes
|
||||
##########################################################################
|
||||
#SPAM_SCORE = 50
|
||||
#CLAMD = yes
|
||||
|
||||
domainlist local_domains = dsearch;/etc/exim4/domains/
|
||||
domainlist relay_to_domains = dsearch;/etc/exim4/domains/
|
||||
|
@ -25,9 +29,9 @@ spamd_address = 127.0.0.1 783
|
|||
av_scanner = clamd: /var/run/clamav/clamd.ctl
|
||||
.endif
|
||||
|
||||
#tls_advertise_hosts = *
|
||||
#tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
||||
#tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
||||
tls_advertise_hosts = *
|
||||
tls_certificate = /usr/local/vesta/ssl/certificate.crt
|
||||
tls_privatekey = /usr/local/vesta/ssl/certificate.key
|
||||
|
||||
daemon_smtp_ports = 25 : 465 : 587 : 2525
|
||||
tls_on_connect_ports = 465
|
||||
|
@ -43,43 +47,38 @@ DKIM_FILE = /etc/exim4/domains/${lc:${domain:$h_from:}}/dkim.pem
|
|||
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# ACL CONFIGURATION #
|
||||
# Specifies access control lists for incoming SMTP mail #
|
||||
######################################################################
|
||||
begin acl
|
||||
##########################################################################
|
||||
|
||||
acl_check_spammers:
|
||||
accept hosts = +whitelist
|
||||
|
||||
drop message = Your host in blacklist on this server.
|
||||
log_message = Host in blacklist
|
||||
hosts = +spammers
|
||||
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
|
||||
dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}}
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mail:
|
||||
deny
|
||||
condition = ${if eq{$sender_helo_name}{}}
|
||||
deny condition = ${if eq{$sender_helo_name}{}}
|
||||
message = HELO required before MAIL
|
||||
# drop
|
||||
# condition = ${if isip{$sender_helo_name}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
|
||||
drop message = Helo name contains a ip address (HELO was $sender_helo_name) and not is valid
|
||||
condition = ${if match{$sender_helo_name}{\N((\d{1,3}[.-]\d{1,3}[.-]\d{1,3}[.-]\d{1,3})|([0-9a-f]{8})|([0-9A-F]{8}))\N}{yes}{no}}
|
||||
condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
|
||||
delay = 45s
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
|
||||
# condition = ${if match{$sender_helo_name}{\N\.\N}{no}{yes}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
drop
|
||||
condition = ${if isip{$sender_helo_name}}
|
||||
|
||||
drop condition = ${if isip{$sender_helo_name}}
|
||||
message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
|
||||
# drop
|
||||
# condition = ${if match{$sender_helo_name}{\N\.$\N}}
|
||||
# message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
|
||||
# drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]"
|
||||
# condition = ${if match{$sender_helo_name}{$primary_hostname}}
|
||||
|
||||
drop condition = ${if eq{[$interface_address]}{$sender_helo_name}}
|
||||
message = $interface_address is _my_ address
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -102,6 +101,10 @@ acl_check_rcpt:
|
|||
accept authenticated = *
|
||||
control = submission/domain=
|
||||
|
||||
deny message = Rejected because $sender_host_address is in a black list at $dnslist_domain\n$dnslist_text
|
||||
hosts = !+whitelist
|
||||
dnslists = ${readfile {/etc/exim4/dnsbl.conf}{:}}
|
||||
|
||||
require message = relay not permitted
|
||||
domains = +local_domains : +relay_to_domains
|
||||
|
||||
|
@ -113,14 +116,18 @@ acl_check_rcpt:
|
|||
|
||||
.ifdef CLAMD
|
||||
warn set acl_m0 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim4/domains/$domain/antivirus}{yes}{no}}
|
||||
set acl_m0 = yes
|
||||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn set acl_m1 = no
|
||||
|
||||
warn condition = ${if exists {/etc/exim4/domains/$domain/antispam}{yes}{no}}
|
||||
set acl_m1 = yes
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
|
@ -132,8 +139,7 @@ acl_check_data:
|
|||
.endif
|
||||
|
||||
.ifdef SPAMASSASSIN
|
||||
warn
|
||||
!authenticated = *
|
||||
warn !authenticated = *
|
||||
hosts = !+relay_from_hosts
|
||||
condition = ${if < {$message_size}{100K}}
|
||||
condition = ${if eq{$acl_m1}{yes}{yes}{no}}
|
||||
|
@ -142,23 +148,29 @@ acl_check_data:
|
|||
add_header = X-Spam-Bar: $spam_bar
|
||||
add_header = X-Spam-Report: $spam_report
|
||||
set acl_m2 = $spam_score_int
|
||||
warn
|
||||
condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
|
||||
warn condition = ${if !eq{$acl_m2}{} {yes}{no}}
|
||||
condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}}
|
||||
add_header = X-Spam-Status: Yes
|
||||
message = SpamAssassin detected spam (from $sender_address to $recipients).
|
||||
.endif
|
||||
|
||||
accept
|
||||
|
||||
|
||||
acl_check_mime:
|
||||
deny message = Blacklisted file extension detected
|
||||
condition = ${if match {${lc:$mime_filename}}{\N(\.ade|\.adp|\.bat|\.chm|\.cmd|\.com|\.cpl|\.exe|\.hta|\.ins|\.isp|\.jse|\.lib|\.lnk|\.mde|\.msc|\.msp|\.mst|\.pif|\.scr|\.sct|\.shb|\.sys|\.vb|\.vbe|\.vbs|\.vxd|\.wsc|\.wsf|\.wsh)$\N}{1}{0}}
|
||||
|
||||
accept
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# AUTHENTICATION CONFIGURATION #
|
||||
######################################################################
|
||||
begin authenticators
|
||||
##########################################################################
|
||||
|
||||
dovecot_plain:
|
||||
driver = dovecot
|
||||
public_name = PLAIN
|
||||
|
@ -171,9 +183,14 @@ dovecot_login:
|
|||
server_socket = /var/run/dovecot/auth-client
|
||||
server_set_id = $auth1
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# ROUTERS CONFIGURATION #
|
||||
# Specifies how addresses are handled #
|
||||
######################################################################
|
||||
begin routers
|
||||
##########################################################################
|
||||
|
||||
#smarthost:
|
||||
# driver = manualroute
|
||||
# domains = ! +local_domains
|
||||
|
@ -253,9 +270,12 @@ terminate_alias:
|
|||
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim4/domains/$domain/aliases}{true}{false}}
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
######################################################################
|
||||
# TRANSPORTS CONFIGURATION #
|
||||
######################################################################
|
||||
begin transports
|
||||
##########################################################################
|
||||
|
||||
remote_smtp:
|
||||
driver = smtp
|
||||
#helo_data = $sender_address_domain
|
||||
|
@ -265,7 +285,6 @@ remote_smtp:
|
|||
dkim_canon = relaxed
|
||||
dkim_strict = 0
|
||||
|
||||
|
||||
procmail:
|
||||
driver = pipe
|
||||
command = "/usr/bin/procmail -d $local_part"
|
||||
|
@ -306,7 +325,7 @@ local_spam_delivery:
|
|||
delivery_date_add
|
||||
envelope_to_add
|
||||
return_path_add
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.spam"
|
||||
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part/.Spam"
|
||||
quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}M
|
||||
quota_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/$domain/passwd}}}}/mail/$domain/$local_part"
|
||||
quota_warn_threshold = 75%
|
||||
|
@ -335,8 +354,24 @@ devnull:
|
|||
driver = appendfile
|
||||
file = /dev/null
|
||||
|
||||
##########################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
# RETRY CONFIGURATION #
|
||||
######################################################################
|
||||
begin retry
|
||||
|
||||
# Address or Domain Error Retries
|
||||
# ----------------- ----- -------
|
||||
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
|
||||
##########################################################################
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
# REWRITE CONFIGURATION #
|
||||
######################################################################
|
||||
begin rewrite
|
||||
|
||||
|
||||
|
||||
######################################################################
|
||||
|
|
|
@ -10,12 +10,13 @@ export DEBIAN_FRONTEND=noninteractive
|
|||
RHOST='apt.vestacp.com'
|
||||
CHOST='c.vestacp.com'
|
||||
VERSION='0.9.8/debian'
|
||||
software="nginx apache2 apache2-utils apache2.2-common apache2-suexec-custom
|
||||
libapache2-mod-ruid2 libapache2-mod-rpaf libapache2-mod-fcgid bind9 idn
|
||||
mysql-server mysql-common mysql-client php5-common php5-cgi php5-mysql
|
||||
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
||||
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats
|
||||
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql
|
||||
software="nginx apache2 apache2-utils apache2.2-common bsdutils
|
||||
apache2-suexec-custom libapache2-mod-ruid2 libapache2-mod-rpaf
|
||||
libapache2-mod-fcgid bind9 idn mysql-server mysql-common
|
||||
mysql-client php5-common php5-cgi php5-mysql php5-curl
|
||||
libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy clamav-daemon
|
||||
flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats webalizer
|
||||
jwhois rssh git spamassassin roundcube roundcube-mysql
|
||||
roundcube-plugins sudo bc ftp lsof ntpdate rrdtool quota e2fslibs
|
||||
dnsutils vesta vesta-nginx vesta-php"
|
||||
|
||||
|
@ -24,7 +25,7 @@ help() {
|
|||
-e, --email Set email address
|
||||
-f, --force Force installation
|
||||
-h, --help Print this help and exit
|
||||
-n, --noupdate Do not run yum update command
|
||||
-n, --noupdate Do not run apt-get upgrade command
|
||||
-m, --mysql-password Set MySQL password instead of generating it
|
||||
-p, --password Set admin password instead of generating it
|
||||
-s, --hostname Set server hostname
|
||||
|
@ -72,7 +73,7 @@ while getopts "dhfnqe:m:p:s:" Option; do
|
|||
h) help ;; # Help
|
||||
e) email=$OPTARG ;; # Set email
|
||||
f) force='yes' ;; # Force install
|
||||
n) noupdate='yes' ;; # Disable yum update
|
||||
n) noupdate='yes' ;; # Disable apt-get upgrade
|
||||
m) mpass=$OPTARG ;; # MySQL pasword
|
||||
p) vpass=$OPTARG ;; # Admin password
|
||||
s) servername=$OPTARG ;; # Server hostname
|
||||
|
@ -89,7 +90,7 @@ fi
|
|||
|
||||
# Check supported version
|
||||
if [ -e '/etc/redhat-release' ] || [ -e '/etc/lsb-release' ]; then
|
||||
echo 'Error: sorry, this installer can work only on Debian 7'
|
||||
echo 'Error: sorry, this installer works only on Debian 7'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -233,9 +234,6 @@ if [ -z $email ]; then
|
|||
if [ -z "$servername" ]; then
|
||||
read -p "Please enter hostname [$(hostname)]: " servername
|
||||
fi
|
||||
if [ -z "$servername" ]; then
|
||||
servername=$(hostname)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Validate email
|
||||
|
@ -464,6 +462,9 @@ if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
|||
fi
|
||||
|
||||
# Set server hostname
|
||||
if [ -z "$servername" ]; then
|
||||
servername=$(hostname)
|
||||
fi
|
||||
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||
|
||||
# Templates
|
||||
|
@ -499,7 +500,7 @@ chown root:mail /usr/local/vesta/ssl/*
|
|||
chmod 660 /usr/local/vesta/ssl/*
|
||||
rm /tmp/vst.pem
|
||||
|
||||
# Enable password auth
|
||||
# Enable SSH password auth
|
||||
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
||||
service ssh restart
|
||||
|
||||
|
@ -554,9 +555,9 @@ wget $CHOST/$VERSION/apache2-status.conf \
|
|||
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
||||
rm -f /etc/apache2/conf.d/vesta.conf
|
||||
echo > /etc/apache2/conf.d/vesta.conf
|
||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default
|
||||
echo "# Powever by vestas" > /etc/apache2/sites-available/default-ssl
|
||||
echo "# Powever by vestas" > /etc/apache2/ports.conf
|
||||
echo "# Powered by vesta" > /etc/apache2/sites-available/default
|
||||
echo "# Powered by vesta" > /etc/apache2/sites-available/default-ssl
|
||||
echo "# Powered by vesta" > /etc/apache2/ports.conf
|
||||
touch /var/log/apache2/access.log
|
||||
touch /var/log/apache2/error.log
|
||||
mkdir -p /var/log/apache2/domains
|
||||
|
@ -627,9 +628,9 @@ fi
|
|||
|
||||
# Exim
|
||||
wget $CHOST/$VERSION/exim4.conf.template -O /etc/exim4/exim4.conf.template
|
||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||
sed -i "s/^SPAMASSASSIN/#SPAMASSASSIN/g" /etc/exim4/exim4.conf.template
|
||||
sed -i "s/^CLAMD/#CLAMD/g" /etc/exim4/exim4.conf.template
|
||||
if [ "$srv_type" != 'micro' ] && [ "$srv_type" != 'small' ]; then
|
||||
sed -i "s/#SPAM/SPAM/g" /etc/exim4/exim4.conf.template
|
||||
sed -i "s/#CLAMD/CLAMD/g" /etc/exim4/exim4.conf.template
|
||||
fi
|
||||
wget $CHOST/$VERSION/dnsbl.conf -O /etc/exim4/dnsbl.conf
|
||||
wget $CHOST/$VERSION/spam-blocks.conf -O /etc/exim4/spam-blocks.conf
|
||||
|
@ -665,12 +666,6 @@ tar -xzf dovecot-conf.d.tar.gz
|
|||
rm -f dovecot-conf.d.tar.gz
|
||||
chown -R root:root /etc/dovecot
|
||||
gpasswd -a dovecot mail
|
||||
if [ "$codename" = 'precise' ]; then
|
||||
dovecot_ssl_conf="/etc/dovecot/conf.d/10-ssl.conf"
|
||||
echo "ssl = yes" > $dovecot_ssl_conf
|
||||
echo "ssl_cert = </etc/ssl/certs/dovecot.pem" >> $dovecot_ssl_conf
|
||||
echo "ssl_key = </etc/ssl/private/dovecot.pem" >> $dovecot_ssl_conf
|
||||
fi
|
||||
update-rc.d dovecot defaults
|
||||
service dovecot stop > /dev/null 2>&1
|
||||
service dovecot start
|
||||
|
@ -715,6 +710,7 @@ wget $CHOST/$VERSION/apache2-pma.conf -O /etc/phpmyadmin/apache.conf
|
|||
wget $CHOST/$VERSION/pma.conf -O /etc/phpmyadmin/config.inc.php
|
||||
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
|
||||
mv -f /etc/phpmyadmin/config-db.php /etc/phpmyadmin/config-db.php_
|
||||
chmod 777 /var/lib/phpmyadmin/tmp
|
||||
|
||||
# Roundcube configuration
|
||||
wget $CHOST/$VERSION/apache2-webmail.conf -O /etc/roundcube/apache.conf
|
||||
|
@ -733,7 +729,7 @@ mysql roundcube < /usr/share/dbconfig-common/data/roundcube/install/mysql
|
|||
mkdir -p /var/log/roundcube/error
|
||||
chmod -R 777 /var/log/roundcube
|
||||
|
||||
# Adding admin user
|
||||
# Deleting old admin user account if exists
|
||||
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
||||
chattr -i /home/admin/conf > /dev/null 2>&1
|
||||
userdel -f admin
|
||||
|
@ -750,7 +746,7 @@ if [ -z "$vpass" ]; then
|
|||
vpass=$(gen_pass)
|
||||
fi
|
||||
|
||||
# Adding vesta account
|
||||
# Adding admin account
|
||||
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: can't create admin user"
|
||||
|
@ -789,7 +785,7 @@ $VESTA/bin/v-add-dns-domain admin default.domain $vst_ip
|
|||
# Add default mail domain
|
||||
$VESTA/bin/v-add-mail-domain admin default.domain
|
||||
|
||||
# Configuring crond
|
||||
# Configuring cron jobs
|
||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
||||
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
||||
|
@ -805,7 +801,7 @@ $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command"
|
|||
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
||||
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
||||
|
||||
# Build inititall rrd images
|
||||
# Building inititall rrd images
|
||||
$VESTA/bin/v-update-sys-rrd
|
||||
|
||||
# Enable file system quota
|
||||
|
|
|
@ -233,9 +233,6 @@ if [ -z $email ]; then
|
|||
if [ -z "$servername" ]; then
|
||||
read -p "Please enter hostname [$(hostname)]: " servername
|
||||
fi
|
||||
if [ -z "$servername" ]; then
|
||||
servername=$(hostname)
|
||||
fi
|
||||
fi
|
||||
|
||||
# Validate email
|
||||
|
@ -524,6 +521,9 @@ if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
|||
fi
|
||||
|
||||
# Set server hostname
|
||||
if [ -z "$servername" ]; then
|
||||
servername=$(hostname)
|
||||
fi
|
||||
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||
|
||||
# Templates
|
||||
|
@ -683,9 +683,9 @@ fi
|
|||
|
||||
# Exim
|
||||
wget $CHOST/$VERSION/exim.conf -O /etc/exim/exim.conf
|
||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||
sed -i "s/^SPAMASSASSIN/#SPAMASSASSIN/g" /etc/exim/exim.conf
|
||||
sed -i "s/^CLAMD/#CLAMD/g" /etc/exim/exim.conf
|
||||
if [ "$srv_type" != 'micro' ] && [ "$srv_type" != 'small' ]; then
|
||||
sed -i "s/#SPAM/SPAM/g" /etc/exim/exim.conf
|
||||
sed -i "s/#CLAMD/CLAMD/g" /etc/exim/exim.conf
|
||||
fi
|
||||
wget $CHOST/$VERSION/dnsbl.conf -O /etc/exim/dnsbl.conf
|
||||
wget $CHOST/$VERSION/spam-blocks.conf -O /etc/exim/spam-blocks.conf
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Vesta Ubuntu installer v.01
|
||||
# Vesta Ubuntu installer v.04
|
||||
|
||||
#----------------------------------------------------------#
|
||||
# Variables&Functions #
|
||||
|
@ -10,21 +10,25 @@ export DEBIAN_FRONTEND=noninteractive
|
|||
RHOST='apt.vestacp.com'
|
||||
CHOST='c.vestacp.com'
|
||||
VERSION='0.9.8/ubuntu'
|
||||
software="nginx apache2 apache2-utils apache2-suexec-custom
|
||||
software="nginx apache2 apache2-utils apache2-suexec-custom bsdutils
|
||||
libapache2-mod-ruid2 libapache2-mod-rpaf libapache2-mod-fcgid bind9 idn
|
||||
mysql-server mysql-common mysql-client php5-common php5-cgi php5-mysql
|
||||
php5-curl libapache2-mod-php5 vsftpd mc exim4 exim4-daemon-heavy
|
||||
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats
|
||||
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql
|
||||
clamav-daemon flex dovecot-imapd dovecot-pop3d phpMyAdmin awstats e2fslibs
|
||||
webalizer jwhois rssh git spamassassin roundcube roundcube-mysql quota
|
||||
roundcube-plugins apparmor-utils sudo bc ftp lsof ntpdate rrdtool
|
||||
dnsutils vesta vesta-nginx vesta-php"
|
||||
|
||||
help() {
|
||||
echo "usage: $0 [OPTIONS]
|
||||
-e, --email Define email address
|
||||
-h, --help Print this help and exit
|
||||
-e, --email Set email address
|
||||
-f, --force Force installation
|
||||
-n, --noupdate Do not run apt-get upgrade command"
|
||||
-h, --help Print this help and exit
|
||||
-n, --noupdate Do not run apt-get upgrade command
|
||||
-m, --mysql-password Set MySQL password instead of generating it
|
||||
-p, --password Set admin password instead of generating it
|
||||
-s, --hostname Set server hostname
|
||||
-q, --quota Enable File System Quota"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
@ -48,10 +52,14 @@ gen_pass() {
|
|||
for arg; do
|
||||
delim=""
|
||||
case "$arg" in
|
||||
--help) args="${args}-h " ;;
|
||||
--force) args="${args}-f " ;;
|
||||
--email) args="${args}-e " ;;
|
||||
--force) args="${args}-f " ;;
|
||||
--help) args="${args}-h " ;;
|
||||
--noupdate) args="${args}-n " ;;
|
||||
--mysql-password) args="${args}-m " ;;
|
||||
--password) args="${args}-p " ;;
|
||||
--hostname) args="${args}-s " ;;
|
||||
--quota) args="${args}-q " ;;
|
||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||
args="${args}${delim}${arg}${delim} ";;
|
||||
esac
|
||||
|
@ -59,12 +67,16 @@ done
|
|||
eval set -- "$args"
|
||||
|
||||
# Getopt
|
||||
while getopts "dhfne:" Option; do
|
||||
while getopts "dhfnqe:m:p:s:" Option; do
|
||||
case $Option in
|
||||
h) help ;; # Help
|
||||
e) email=$OPTARG ;; # Set email
|
||||
f) force='yes' ;; # Force apt-get install
|
||||
f) force='yes' ;; # Force install
|
||||
n) noupdate='yes' ;; # Disable apt-get upgrade
|
||||
m) mpass=$OPTARG ;; # MySQL pasword
|
||||
p) vpass=$OPTARG ;; # Admin password
|
||||
s) servername=$OPTARG ;; # Server hostname
|
||||
q) quota='yes' ;; # Enable quota
|
||||
*) help ;; # Default
|
||||
esac
|
||||
done
|
||||
|
@ -77,7 +89,7 @@ fi
|
|||
|
||||
# Check supported version
|
||||
if [ -e '/etc/redhat-release' ]; then
|
||||
echo 'Error: sorry, this installer can work only on Debian or Ubuntu'
|
||||
echo 'Error: sorry, this installer works only on Ubuntu'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -89,9 +101,9 @@ else
|
|||
fi
|
||||
os=$(head -n 1 /etc/issue | cut -f 1 -d ' ')
|
||||
release=$(head -n 1 /etc/issue | cut -f 2 -d ' ' )
|
||||
codename=$(lsb_release -cs | grep "[precise|raring|saucy]")
|
||||
codename=$(lsb_release -cs | egrep "precise|quantal|raring|saucy|trusty")
|
||||
if [ -z "$codename" ]; then
|
||||
echo 'Error: only Ubuntu 12.04, 13.04 and 13.10 is supported'
|
||||
echo "Error: Ubuntu $(lsb_release -r|awk '{print $2}') is not supported"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -214,6 +226,11 @@ if [ -z $email ]; then
|
|||
|
||||
# Check email
|
||||
read -p 'Please enter valid email address: ' email
|
||||
|
||||
# Define server hostname
|
||||
if [ -z "$servername" ]; then
|
||||
read -p "Please enter hostname [$(hostname)]: " servername
|
||||
fi
|
||||
fi
|
||||
|
||||
# Validate email
|
||||
|
@ -252,9 +269,6 @@ apt=/etc/apt/sources.list.d
|
|||
echo "deb http://nginx.org/packages/ubuntu/ $codename nginx" > $apt/nginx.list
|
||||
wget http://nginx.org/keys/nginx_signing.key -O /tmp/nginx_signing.key
|
||||
apt-key add /tmp/nginx_signing.key
|
||||
if [ $codename = 'trusty' ]; then
|
||||
sed -i "s/trusty/saucy/g" $apt/nginx.list
|
||||
fi
|
||||
|
||||
# Install vesta repo
|
||||
echo "deb http://$RHOST/$codename/ $codename vesta" > $apt/vesta.list
|
||||
|
@ -400,7 +414,99 @@ rm -f /usr/sbin/policy-rc.d
|
|||
# Set writable permission on tmp directory
|
||||
chmod 777 /tmp
|
||||
|
||||
# Enable password auth
|
||||
# Vesta configuration
|
||||
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
||||
chmod 755 /etc/profile.d/vesta.sh
|
||||
source /etc/profile.d/vesta.sh
|
||||
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
||||
echo 'export PATH' >> /root/.bash_profile
|
||||
source /root/.bash_profile
|
||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||
|
||||
# Directory tree
|
||||
mkdir -p $VESTA/conf
|
||||
mkdir -p $VESTA/log
|
||||
mkdir -p $VESTA/ssl
|
||||
mkdir -p $VESTA/data
|
||||
mkdir -p $VESTA/data/ips
|
||||
mkdir -p $VESTA/data/queue
|
||||
mkdir -p $VESTA/data/users
|
||||
touch $VESTA/data/queue/backup.pipe
|
||||
touch $VESTA/data/queue/disk.pipe
|
||||
touch $VESTA/data/queue/webstats.pipe
|
||||
touch $VESTA/data/queue/restart.pipe
|
||||
touch $VESTA/data/queue/traffic.pipe
|
||||
chmod 750 $VESTA/conf
|
||||
chmod 750 $VESTA/data/users
|
||||
chmod 750 $VESTA/data/ips
|
||||
chmod -R 750 $VESTA/data/queue
|
||||
ln -s /usr/local/vesta/log /var/log/vesta
|
||||
touch /var/log/vesta/system.log
|
||||
touch /var/log/vesta/nginx-error.log
|
||||
touch /var/log/vesta/auth.log
|
||||
chmod 660 /var/log/vesta/*
|
||||
adduser backup > /dev/null 2>&1
|
||||
mkdir -p /home/backup
|
||||
chown backup:backup /home/backup
|
||||
ln -s /home/backup /backup
|
||||
chmod a+x /backup
|
||||
|
||||
# vesta.conf
|
||||
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
||||
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
||||
fi
|
||||
|
||||
# Set server hostname
|
||||
if [ -z "$servername" ]; then
|
||||
servername=$(hostname)
|
||||
fi
|
||||
/usr/local/vesta/bin/v-change-sys-hostname $servername 2>/dev/null
|
||||
|
||||
# Templates
|
||||
cd /usr/local/vesta/data
|
||||
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
||||
tar -xzf packages.tar.gz
|
||||
rm -f packages.tar.gz
|
||||
cd /usr/local/vesta/data
|
||||
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
||||
tar -xzf templates.tar.gz
|
||||
rm -f templates.tar.gz
|
||||
if [ "$codename" = 'saucy' ] || [ "$codename" = 'trusty' ]; then
|
||||
sed -i "s/Include /IncludeOptional /g" \
|
||||
$VESTA/data/templates/web/apache2/*tpl
|
||||
fi
|
||||
chmod -R 755 /usr/local/vesta/data/templates
|
||||
cp templates/web/skel/public_html/index.html /var/www/
|
||||
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
||||
if [ "$srv_type" = 'micro' ]; then
|
||||
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
||||
fi
|
||||
|
||||
# Removing CGI templates
|
||||
if [ "$codename" = 'trusty' ]; then
|
||||
rm -f /usr/local/vesta/data/templates/web/apache2/phpcgi.*
|
||||
fi
|
||||
|
||||
# Generating SSL certificate
|
||||
$VESTA/bin/v-generate-ssl-cert $(hostname) $email 'US' 'California' \
|
||||
'San Francisco' 'Vesta Control Panel' 'IT' > /tmp/vst.pem
|
||||
|
||||
# Parsing merged certificate file
|
||||
crt_end=$(grep -n "END CERTIFICATE-" /tmp/vst.pem |cut -f 1 -d:)
|
||||
key_start=$(grep -n "BEGIN RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||
key_end=$(grep -n "END RSA" /tmp/vst.pem |cut -f 1 -d:)
|
||||
|
||||
# Adding SSL certificate
|
||||
cd /usr/local/vesta/ssl
|
||||
sed -n "1,${crt_end}p" /tmp/vst.pem > certificate.crt
|
||||
sed -n "$key_start,${key_end}p" /tmp/vst.pem > certificate.key
|
||||
chown root:mail /usr/local/vesta/ssl/*
|
||||
chmod 660 /usr/local/vesta/ssl/*
|
||||
rm /tmp/vst.pem
|
||||
|
||||
# Enable SSH password auth
|
||||
sed -i "s/rdAuthentication no/rdAuthentication yes/g" /etc/ssh/sshd_config
|
||||
service ssh restart
|
||||
|
||||
|
@ -456,9 +562,9 @@ fi
|
|||
wget $CHOST/$VERSION/apache2-status.conf \
|
||||
-O /etc/apache2/mods-enabled/status.conf
|
||||
wget $CHOST/$VERSION/apache2.log -O /etc/logrotate.d/apache2
|
||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default
|
||||
echo "# Powever by vesta" > /etc/apache2/sites-available/default-ssl
|
||||
echo "# Powever by vesta" > /etc/apache2/ports.conf
|
||||
echo "# Powered by vesta" > /etc/apache2/sites-available/default
|
||||
echo "# Powered by vesta" > /etc/apache2/sites-available/default-ssl
|
||||
echo "# Powered by vesta" > /etc/apache2/ports.conf
|
||||
mkdir -p /etc/apache2/conf.d
|
||||
rm -f /etc/apache2/conf.d/vesta.conf
|
||||
echo > /etc/apache2/conf.d/vesta.conf
|
||||
|
@ -491,11 +597,18 @@ if [ "$?" -ne 0 ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# Generating MySQL password if it wasn't set
|
||||
if [ -z "$mpass" ]; then
|
||||
mpass=$(gen_pass)
|
||||
fi
|
||||
|
||||
# MySQL configuration
|
||||
mpass=$(gen_pass)
|
||||
wget $CHOST/$VERSION/my.cnf -O /etc/mysql/my.cnf
|
||||
mysql_install_db
|
||||
update-rc.d mysql defaults
|
||||
if [ "$release" != '14.04' ]; then
|
||||
update-rc.d mysql defaults
|
||||
fi
|
||||
service mysql stop > /dev/null 2>&1
|
||||
service mysql start
|
||||
if [ "$?" -ne 0 ]; then
|
||||
|
@ -506,7 +619,7 @@ mysqladmin -u root password $mpass
|
|||
echo -e "[client]\npassword='$mpass'\n" > /root/.my.cnf
|
||||
chmod 600 /root/.my.cnf
|
||||
mysql -e "DELETE FROM mysql.user WHERE User=''"
|
||||
mysql -e "DROP DATABASE test"
|
||||
mysql -e "DROP DATABASE test" > /dev/null 2>&1
|
||||
mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
|
||||
mysql -e "DELETE FROM mysql.user WHERE user='' or password='';"
|
||||
mysql -e "FLUSH PRIVILEGES"
|
||||
|
@ -526,9 +639,9 @@ fi
|
|||
|
||||
# Exim
|
||||
wget $CHOST/$VERSION/exim4.conf.template -O /etc/exim4/exim4.conf.template
|
||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||
sed -i "s/^SPAMASSASSIN/#SPAMASSASSIN/g" /etc/exim4/exim4.conf.template
|
||||
sed -i "s/^CLAMD/#CLAMD/g" /etc/exim4/exim4.conf.template
|
||||
if [ "$srv_type" != 'micro' ] && [ "$srv_type" != 'small' ]; then
|
||||
sed -i "s/#SPAM/SPAM/g" /etc/exim4/exim4.conf.template
|
||||
sed -i "s/#CLAMD/CLAMD/g" /etc/exim4/exim4.conf.template
|
||||
fi
|
||||
wget $CHOST/$VERSION/dnsbl.conf -O /etc/exim4/dnsbl.conf
|
||||
wget $CHOST/$VERSION/spam-blocks.conf -O /etc/exim4/spam-blocks.conf
|
||||
|
@ -564,12 +677,6 @@ tar -xzf dovecot-conf.d.tar.gz
|
|||
rm -f dovecot-conf.d.tar.gz
|
||||
chown -R root:root /etc/dovecot
|
||||
gpasswd -a dovecot mail
|
||||
if [ "$codename" = 'precise' ]; then
|
||||
dovecot_ssl_conf="/etc/dovecot/conf.d/10-ssl.conf"
|
||||
echo "ssl = yes" > $dovecot_ssl_conf
|
||||
echo "ssl_cert = </etc/ssl/certs/dovecot.pem" >> $dovecot_ssl_conf
|
||||
echo "ssl_key = </etc/ssl/private/dovecot.pem" >> $dovecot_ssl_conf
|
||||
fi
|
||||
update-rc.d dovecot defaults
|
||||
service dovecot stop > /dev/null 2>&1
|
||||
service dovecot start
|
||||
|
@ -630,6 +737,7 @@ wget $CHOST/$VERSION/roundcube-driver.php -O \
|
|||
wget $CHOST/$VERSION/roundcube-pw.conf -O \
|
||||
/etc/roundcube/plugins/password/config.inc.php
|
||||
r="$(gen_pass)"
|
||||
mysql -e "DROP DATABASE roundcube" > /dev/null 2>&1
|
||||
mysql -e "CREATE DATABASE roundcube"
|
||||
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
|
||||
sed -i "s/%password%/$r/g" /etc/roundcube/db.inc.php
|
||||
|
@ -643,76 +751,7 @@ fi
|
|||
mkdir -p /var/log/roundcube/error
|
||||
chmod -R 777 /var/log/roundcube
|
||||
|
||||
# Vesta configuration
|
||||
echo "export VESTA='/usr/local/vesta'" > /etc/profile.d/vesta.sh
|
||||
chmod 755 /etc/profile.d/vesta.sh
|
||||
source /etc/profile.d/vesta.sh
|
||||
echo 'PATH=$PATH:/usr/local/vesta/bin' >> /root/.bash_profile
|
||||
echo 'export PATH' >> /root/.bash_profile
|
||||
source /root/.bash_profile
|
||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||
|
||||
# Directory tree
|
||||
mkdir -p $VESTA/conf
|
||||
mkdir -p $VESTA/log
|
||||
mkdir -p $VESTA/ssl
|
||||
mkdir -p $VESTA/data
|
||||
mkdir -p $VESTA/data/ips
|
||||
mkdir -p $VESTA/data/queue
|
||||
mkdir -p $VESTA/data/users
|
||||
touch $VESTA/data/queue/backup.pipe
|
||||
touch $VESTA/data/queue/disk.pipe
|
||||
touch $VESTA/data/queue/webstats.pipe
|
||||
touch $VESTA/data/queue/restart.pipe
|
||||
touch $VESTA/data/queue/traffic.pipe
|
||||
chmod 750 $VESTA/conf
|
||||
chmod 750 $VESTA/data/users
|
||||
chmod 750 $VESTA/data/ips
|
||||
chmod -R 750 $VESTA/data/queue
|
||||
ln -s /usr/local/vesta/log /var/log/vesta
|
||||
touch /var/log/vesta/system.log
|
||||
touch /var/log/vesta/nginx-error.log
|
||||
touch /var/log/vesta/auth.log
|
||||
chmod 660 /var/log/vesta/*
|
||||
adduser backup > /dev/null 2>&1
|
||||
mkdir -p /home/backup
|
||||
chown backup:backup /home/backup
|
||||
ln -s /home/backup /backup
|
||||
chmod a+x /backup
|
||||
|
||||
# vesta.conf
|
||||
wget $CHOST/$VERSION/vesta.conf -O $VESTA/conf/vesta.conf
|
||||
if [ "$srv_type" = 'micro' ] || [ "$srv_type" = 'small' ]; then
|
||||
sed -i "s/clamav-daemon//g" $VESTA/conf/vesta.conf
|
||||
sed -i "s/spamassassin//g" $VESTA/conf/vesta.conf
|
||||
fi
|
||||
|
||||
# Templates
|
||||
cd /usr/local/vesta/data
|
||||
wget $CHOST/$VERSION/packages.tar.gz -O packages.tar.gz
|
||||
tar -xzf packages.tar.gz
|
||||
rm -f packages.tar.gz
|
||||
cd /usr/local/vesta/data
|
||||
wget $CHOST/$VERSION/templates.tar.gz -O templates.tar.gz
|
||||
tar -xzf templates.tar.gz
|
||||
rm -f templates.tar.gz
|
||||
if [ "$codename" = 'saucy' ] || [ "$codename" = 'trusty' ]; then
|
||||
sed -i "s/Include /IncludeOptional /g" \
|
||||
$VESTA/data/templates/web/apache2/*tpl
|
||||
fi
|
||||
chmod -R 755 /usr/local/vesta/data/templates
|
||||
cp templates/web/skel/public_html/index.html /var/www/
|
||||
sed -i 's/%domain%/It worked!/g' /var/www/index.html
|
||||
if [ "$srv_type" = 'micro' ]; then
|
||||
rm -f /usr/local/vesta/data/templates/web/apache2/phpfcgid.*
|
||||
fi
|
||||
|
||||
# Default SSL keys
|
||||
cd /usr/local/vesta/ssl
|
||||
wget $CHOST/$VERSION/certificate.crt -O certificate.crt
|
||||
wget $CHOST/$VERSION/certificate.key -O certificate.key
|
||||
|
||||
# Adding admin user
|
||||
# Deleting old admin user account if exists
|
||||
if [ ! -z "$(grep ^admin: /etc/passwd)" ] && [ "$force" = 'yes' ]; then
|
||||
chattr -i /home/admin/conf > /dev/null 2>&1
|
||||
userdel -f admin
|
||||
|
@ -723,7 +762,13 @@ fi
|
|||
if [ ! -z "$(grep ^admin: /etc/group)" ]; then
|
||||
groupdel admin > /dev/null 2>&1
|
||||
fi
|
||||
vpass=$(gen_pass)
|
||||
|
||||
# Generating admin password if it wasn't set
|
||||
if [ -z "$vpass" ]; then
|
||||
vpass=$(gen_pass)
|
||||
fi
|
||||
|
||||
# Adding admin account
|
||||
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: can't create admin user"
|
||||
|
@ -762,7 +807,7 @@ $VESTA/bin/v-add-dns-domain admin default.domain $vst_ip
|
|||
# Add default mail domain
|
||||
$VESTA/bin/v-add-mail-domain admin default.domain
|
||||
|
||||
# Configuring crond
|
||||
# Configuring cron jobs
|
||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue disk'
|
||||
$VESTA/bin/v-add-cron-job 'admin' '15' '02' '*' '*' '*' "$command"
|
||||
command='sudo /usr/local/vesta/bin/v-update-sys-queue traffic'
|
||||
|
@ -778,9 +823,14 @@ $VESTA/bin/v-add-cron-job 'admin' '20' '00' '*' '*' '*' "$command"
|
|||
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
|
||||
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
|
||||
|
||||
# Build inititall rrd images
|
||||
# Building inititall rrd images
|
||||
$VESTA/bin/v-update-sys-rrd
|
||||
|
||||
# Enable file system quota
|
||||
if [ "$quota" = 'yes' ]; then
|
||||
$VESTA/bin/v-add-sys-quota
|
||||
fi
|
||||
|
||||
# Start system service
|
||||
update-rc.d vesta defaults
|
||||
service vesta stop > /dev/null 2>&1
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Source: vesta
|
||||
Package: vesta
|
||||
Priority: optional
|
||||
Version: 0.9.8-9
|
||||
Version: 0.9.8-10
|
||||
Section: admin
|
||||
Maintainer: Serghey Rodin <skid@vestacp.com>
|
||||
Homepage: http://vestacp.com
|
||||
|
|
|
@ -15,4 +15,9 @@ if [ -x "/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh" ]; then
|
|||
/usr/local/vesta/upd/fix_vesta_ssl_permissions.sh
|
||||
fi
|
||||
|
||||
# Run MySQL autostart fixed
|
||||
if [ -x "/usr/local/vesta/upd/fix_mysql_startup.sh" ]; then
|
||||
/usr/local/vesta/upd/fix_mysql_startup.sh
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Name: vesta
|
||||
Version: 0.9.8
|
||||
Release: 9
|
||||
Release: 10
|
||||
Summary: Vesta Control Panel
|
||||
Group: System Environment/Base
|
||||
License: GPL
|
||||
|
@ -55,6 +55,36 @@ fi
|
|||
%config(noreplace) %{_vestadir}/web/css/main.css
|
||||
|
||||
%changelog
|
||||
* Mon Aug 4 2014 Serghey Rodin <builder@vestacp.com> - 0.9.8-10
|
||||
- New Design
|
||||
- MultiFTP Support
|
||||
- Exim Queue Chart
|
||||
- Arabic Language file. Thanks to Bashar Al-Abdulhadi http://bashar.com
|
||||
- Italian Language Support. Thanks to Fabio Cagliero http://webnuvola.com
|
||||
- Finnish Languge Support. Thanks to Juho Räsänen and Onni Hakala https://github.com/RJuho http://koodimonni.fi
|
||||
- French Language Support. Thanks to nhoway https://github.com/nhoway
|
||||
- Hungarian Language Support. Thanks to Kovacs Akos http://kovacsakos.info
|
||||
- Improved SSL CA Validation
|
||||
- Detailed report on mysql dump error
|
||||
- Restart Confirmation Dialogue
|
||||
- Autorefresh Module for Graphs
|
||||
- Switched service manager from init.d to service command
|
||||
- Switched free memeory rrd overlay style to linear
|
||||
- Updated nginx extention list. Thanks to Vasily Kraev https://github.com/vasilykraev
|
||||
- Updated skel templates. Thanks to Jason Hanes https://github.com/square-orange
|
||||
- Urlencoder for DNS Cluster API
|
||||
- Fixed dnsbl+authentication router. Thanks to Mirek Kratochvil http://e-x-a.org/
|
||||
- Fix for tar < 1.24 to preserve directory ownership
|
||||
- Fixed autoupdate script. Thanks to Kijamve
|
||||
- Fixed some spelling errors. Thanks to Estratos Consulting
|
||||
- Fixed backup exclusion for cron objects
|
||||
- Fixed MySQL autostart issue on Ubuntu 14.04
|
||||
- Fixed Awstats template parser for Ubuntu 14.04
|
||||
- Fixed NameServer validation bug
|
||||
- Fixed FS-Quota conversion. Thanks to demlasjr https://github.com/demlasjr
|
||||
- Fixed spelling. Thanks to Jakub Ďuraš https://github.com/jlamer, Kotso https://github.com/kotso, Dustin Dauncey http://www.dustindauncey.com
|
||||
|
||||
|
||||
* Sun May 18 2014 Serghey Rodin <builder@vestacp.com> - 0.9.8-9
|
||||
- File System Quota support
|
||||
- Norwegian translation. Thanks to Helge Sverre
|
||||
|
|
11
upd/fix_mysql_startup.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Fix MySQL autostart for Ubuntu 14.04
|
||||
if [ -e "/etc/issue" ]; then
|
||||
release=$(head -n 1 /etc/issue | cut -f 2 -d ' ' )
|
||||
if [ "$release" = '14.04' ]; then
|
||||
update-rc.d mysql disable
|
||||
fi
|
||||
fi
|
||||
|
||||
exit
|
|
@ -7,7 +7,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
|||
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
exec (VESTA_CMD."v-add-cron-vesta-autoupdate", $output, $return_var);
|
||||
$_SESSION['error_msg'] = __('Autoupdate has been susscessfully enabled');
|
||||
$_SESSION['error_msg'] = __('Autoupdate has been successfully enabled');
|
||||
unset($output);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,32 +4,19 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'CRON';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
|
||||
// Check empty fields
|
||||
if ((!isset($_POST['v_min'])) || ($_POST['v_min'] == '')) $errors[] = __('minute');
|
||||
if ((!isset($_POST['v_hour'])) || ($_POST['v_hour'] == '')) $errors[] = __('hour');
|
||||
if ((!isset($_POST['v_day'])) || ($_POST['v_day'] == '')) $errors[] = __('day');
|
||||
if ((!isset($_POST['v_month'])) || ($_POST['v_month'] == '')) $errors[] = __('month');
|
||||
if ((!isset($_POST['v_wday'])) || ($_POST['v_wday'] == '')) $errors[] = __('day of week');
|
||||
if ((!isset($_POST['v_cmd'])) || ($_POST['v_cmd'] == '')) $errors[] = __('cmd');
|
||||
|
||||
// Protect input
|
||||
$v_min = escapeshellarg($_POST['v_min']);
|
||||
$v_hour = escapeshellarg($_POST['v_hour']);
|
||||
$v_day = escapeshellarg($_POST['v_day']);
|
||||
$v_month = escapeshellarg($_POST['v_month']);
|
||||
$v_wday = escapeshellarg($_POST['v_wday']);
|
||||
$v_cmd = escapeshellarg($_POST['v_cmd']);
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -39,14 +26,24 @@ if (!empty($_POST['ok'])) {
|
|||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Add Cron Job
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_min = escapeshellarg($_POST['v_min']);
|
||||
$v_hour = escapeshellarg($_POST['v_hour']);
|
||||
$v_day = escapeshellarg($_POST['v_day']);
|
||||
$v_month = escapeshellarg($_POST['v_month']);
|
||||
$v_wday = escapeshellarg($_POST['v_wday']);
|
||||
$v_cmd = escapeshellarg($_POST['v_cmd']);
|
||||
|
||||
// Add cron job
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-cron-job ".$user." ".$v_min." ".$v_hour." ".$v_day." ".$v_month." ".$v_wday." ".$v_cmd, $output, $return_var);
|
||||
$v_type = $_POST['v_type'];
|
||||
$v_charset = $_POST['v_charset'];
|
||||
check_return_code($return_var,$output);
|
||||
unset($v_password);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('CRON_CREATED_OK');
|
||||
unset($v_min);
|
||||
|
@ -57,14 +54,18 @@ if (!empty($_POST['ok'])) {
|
|||
unset($v_cmd);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
exec (VESTA_CMD."v-list-database-types 'json'", $output, $return_var);
|
||||
$db_types = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_cron.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
|
|
@ -6,24 +6,16 @@ session_start();
|
|||
$TAB = 'DB';
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
$v_db_email = $panel[$user]['CONTACT'];
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_database'])) $errors[] = __('database');
|
||||
if (empty($_POST['v_dbuser'])) $errors[] = __('username');
|
||||
if (empty($_POST['v_password'])) $errors[] = __('password');
|
||||
if (empty($_POST['v_type'])) $errors[] = __('type');
|
||||
if (empty($_POST['v_host'])) $errors[] = __('host');
|
||||
if (empty($_POST['v_charset'])) $errors[] = __('charset');
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -36,12 +28,18 @@ if (!empty($_POST['ok'])) {
|
|||
}
|
||||
|
||||
// Validate email
|
||||
if (!empty($_POST['v_db_email'])) {
|
||||
if ((!empty($_POST['v_db_email'])) && (empty($_SESSION['error_msg']))) {
|
||||
if (!filter_var($_POST['v_db_email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
}
|
||||
}
|
||||
|
||||
// Check password length
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$pw_len = strlen($_POST['v_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_database = escapeshellarg($_POST['v_database']);
|
||||
$v_dbuser = escapeshellarg($_POST['v_dbuser']);
|
||||
|
@ -81,33 +79,24 @@ if (!empty($_POST['ok'])) {
|
|||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
|
||||
// Add database
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
// Add Database
|
||||
$v_type = escapeshellarg($_POST['v_type']);
|
||||
$v_charset = escapeshellarg($_POST['v_charset']);
|
||||
$v_host = escapeshellarg($_POST['v_host']);
|
||||
exec (VESTA_CMD."v-add-database ".$user." ".$v_database." ".$v_dbuser." ".$v_password." ".$v_type." ".$v_host." ".$v_charset, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_type = $_POST['v_type'];
|
||||
$v_host = $_POST['v_host'];
|
||||
$v_charset = $_POST['v_charset'];
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
if ((!empty($v_db_email)) && (empty($_SESSION['error_msg']))) {
|
||||
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]);
|
||||
if ($_POST['v_type'] == 'mysql') $db_admin_link = "http://".$http_host."/phpmyadmin/";
|
||||
if ($_POST['v_type'] == 'pgsql') $db_admin_link = "http://".$http_host."/phppgadmin/";
|
||||
$to = $v_db_email;
|
||||
$subject = __("Database Credentials");
|
||||
$hostname = exec('hostname');
|
||||
$from = __('MAIL_FROM',$hostname);
|
||||
$mailtext = __('DATABASE_READY',$user."_".$_POST['v_database'],$user."_".$_POST['v_dbuser'],$_POST['v_password'],$db_admin_link);
|
||||
send_email($to, $subject, $mailtext, $from);
|
||||
}
|
||||
|
||||
// Get database manager url
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-list-sys-config json", $output, $return_var);
|
||||
$sys = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"] . ":");
|
||||
if ($_POST['v_host'] != 'localhost' ) $http_host = $_POST['v_host'];
|
||||
if ($_POST['v_type'] == 'mysql') $db_admin = "phpMyAdmin";
|
||||
|
@ -116,7 +105,20 @@ if (!empty($_POST['ok'])) {
|
|||
if ($_POST['v_type'] == 'pgsql') $db_admin = "phpPgAdmin";
|
||||
if ($_POST['v_type'] == 'pgsql') $db_admin_link = "http://".$http_host."/phppgadmin/";
|
||||
if (($_POST['v_type'] == 'pgsql') && (!empty($sys['config']['DB_PGA_URL']))) $db_admin_link = $sys['config']['DB_PGA_URL'];
|
||||
}
|
||||
|
||||
// Email login credentials
|
||||
if ((!empty($v_db_email)) && (empty($_SESSION['error_msg']))) {
|
||||
$to = $v_db_email;
|
||||
$subject = __("Database Credentials");
|
||||
$hostname = exec('hostname');
|
||||
$from = __('MAIL_FROM',$hostname);
|
||||
$mailtext = __('DATABASE_READY',$user."_".$_POST['v_database'],$user."_".$_POST['v_dbuser'],$_POST['v_password'],$db_admin_link);
|
||||
send_email($to, $subject, $mailtext, $from);
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('DATABASE_CREATED_OK',$user."_".$_POST['v_database'],$user."_".$_POST['v_database']);
|
||||
$_SESSION['ok_msg'] .= " / <a href=".$db_admin_link." target='_blank'>" . __('open %s',$db_admin) . "</a>";
|
||||
unset($v_database);
|
||||
|
@ -125,13 +127,23 @@ if (!empty($_POST['ok'])) {
|
|||
unset($v_type);
|
||||
unset($v_charset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Get user email
|
||||
$v_db_email = $panel[$user]['CONTACT'];
|
||||
|
||||
// List avaiable database types
|
||||
exec (VESTA_CMD."v-list-database-types 'json'", $output, $return_var);
|
||||
$db_types = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List available database servers
|
||||
$db_hosts = array();
|
||||
foreach ($db_types as $db_type ) {
|
||||
exec (VESTA_CMD."v-list-database-hosts ".$db_type." 'json'", $output, $return_var);
|
||||
|
@ -141,7 +153,10 @@ foreach ($db_types as $db_type ) {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_db.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
|
|
@ -4,31 +4,15 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'DNS';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check POST request for dns domain
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_domain'])) $errors[] = __('domain');
|
||||
if (empty($_POST['v_ip'])) $errors[] = __('ip');
|
||||
|
||||
// Protect input
|
||||
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
|
||||
$v_domain = escapeshellarg($v_domain);
|
||||
$v_domain = strtolower($v_domain);
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
|
||||
if (!empty($_POST['v_ns1'])) $v_ns1 = escapeshellarg($_POST['v_ns1']);
|
||||
if (!empty($_POST['v_ns2'])) $v_ns2 = escapeshellarg($_POST['v_ns2']);
|
||||
if (!empty($_POST['v_ns3'])) $v_ns3 = escapeshellarg($_POST['v_ns3']);
|
||||
if (!empty($_POST['v_ns4'])) $v_ns4 = escapeshellarg($_POST['v_ns4']);
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -38,49 +22,78 @@ if (!empty($_POST['ok'])) {
|
|||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Add DNS
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
|
||||
$v_domain = escapeshellarg($v_domain);
|
||||
$v_domain = strtolower($v_domain);
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
if (!empty($_POST['v_ns1'])) $v_ns1 = escapeshellarg($_POST['v_ns1']);
|
||||
if (!empty($_POST['v_ns2'])) $v_ns2 = escapeshellarg($_POST['v_ns2']);
|
||||
if (!empty($_POST['v_ns3'])) $v_ns3 = escapeshellarg($_POST['v_ns3']);
|
||||
if (!empty($_POST['v_ns4'])) $v_ns4 = escapeshellarg($_POST['v_ns4']);
|
||||
|
||||
// Add dns domain
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip." ".$v_ns1." ".$v_ns2." ".$v_ns3." ".$v_ns4." no", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Change Expiriation date
|
||||
// Set expiriation date
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
if ((!empty($_POST['v_exp'])) && ($_POST['v_exp'] != date('Y-m-d', strtotime('+1 year')))) {
|
||||
$v_exp = escapeshellarg($_POST['v_exp']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-exp ".$user." ".$v_domain." ".$v_exp." no", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Change TTL
|
||||
// Set ttl
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
if ((!empty($_POST['v_ttl'])) && ($_POST['v_ttl'] != '14400') && (empty($_SESSION['error_msg']))) {
|
||||
$v_ttl = escapeshellarg($_POST['v_ttl']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-ttl ".$user." ".$v_domain." ".$v_ttl." no", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('DNS_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
|
||||
unset($v_domain);
|
||||
}
|
||||
|
||||
// Restart dns server
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('DNS_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
|
||||
unset($v_domain);
|
||||
}
|
||||
}
|
||||
|
||||
// DNS Record
|
||||
|
||||
// Check POST request for dns record
|
||||
if (!empty($_POST['ok_rec'])) {
|
||||
// Check input
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_domain'])) $errors[] = 'domain';
|
||||
if (empty($_POST['v_rec'])) $errors[] = 'record';
|
||||
if (empty($_POST['v_type'])) $errors[] = 'type';
|
||||
if (empty($_POST['v_val'])) $errors[] = 'value';
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
|
@ -89,22 +102,15 @@ if (!empty($_POST['ok_rec'])) {
|
|||
$v_val = escapeshellarg($_POST['v_val']);
|
||||
$v_priority = escapeshellarg($_POST['v_priority']);
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Add DNS Record
|
||||
// Add dns record
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-dns-record ".$user." ".$v_domain." ".$v_rec." ".$v_type." ".$v_val." ".$v_priority, $output, $return_var);
|
||||
$v_type = $_POST['v_type'];
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_type = $_POST['v_type'];
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('DNS_RECORD_CREATED_OK',$_POST[v_rec],$_POST[v_domain]);
|
||||
unset($v_domain);
|
||||
|
@ -112,11 +118,20 @@ if (!empty($_POST['ok_rec'])) {
|
|||
unset($v_val);
|
||||
unset($v_priority);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((empty($_GET['domain'])) && (empty($_POST['domain']))) {
|
||||
if ((empty($v_ns1)) && (empty($v_ns2))) {
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body for dns domain
|
||||
if (empty($_GET['domain'])) {
|
||||
if (empty($v_ttl)) $v_ttl = 14400;
|
||||
if (empty($v_exp)) $v_exp = date('Y-m-d', strtotime('+1 year'));
|
||||
if (empty($v_ns1)) {
|
||||
exec (VESTA_CMD."v-list-user-ns ".$user." json", $output, $return_var);
|
||||
$nameservers = json_decode(implode('', $output), true);
|
||||
$v_ns1 = $nameservers[0];
|
||||
|
@ -125,17 +140,18 @@ if ((empty($_GET['domain'])) && (empty($_POST['domain']))) {
|
|||
$v_ns4 = $nameservers[3];
|
||||
unset($output);
|
||||
}
|
||||
if (empty($v_ttl)) $v_ttl = 14400;
|
||||
if (empty($v_exp)) $v_exp = date('Y-m-d', strtotime('+1 year'));
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_dns.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
} else {
|
||||
}
|
||||
|
||||
// Display body for dns record
|
||||
if (!empty($_GET['domain'])) {
|
||||
$v_domain = $_GET['domain'];
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_dns_rec.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -4,41 +4,23 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'IP';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
// Check user
|
||||
if ($_SESSION['user'] != 'admin') {
|
||||
header("Location: /list/user");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_ip'])) $errors[] = __('ip address');
|
||||
if (empty($_POST['v_netmask'])) $errors[] = __('netmask');
|
||||
if (empty($_POST['v_interface'])) $errors[] = __('interface');
|
||||
if (empty($_POST['v_owner'])) $errors[] = __('assigned user');
|
||||
|
||||
// Protect input
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
$v_netmask = escapeshellarg($_POST['v_netmask']);
|
||||
$v_name = escapeshellarg($_POST['v_name']);
|
||||
$v_nat = escapeshellarg($_POST['v_nat']);
|
||||
|
||||
$v_interface = $_POST['v_interface'];
|
||||
$v_shared = $_POST['v_shared'];
|
||||
if ($v_shared == 'on') {
|
||||
$ip_status = 'shared';
|
||||
} else {
|
||||
$ip_status = 'dedicated';
|
||||
$v_dedicated = 'yes';
|
||||
}
|
||||
|
||||
$v_owner = $_POST['v_owner'];
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -48,15 +30,36 @@ if ($_SESSION['user'] == 'admin') {
|
|||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Add IP
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
$v_netmask = escapeshellarg($_POST['v_netmask']);
|
||||
$v_name = escapeshellarg($_POST['v_name']);
|
||||
$v_nat = escapeshellarg($_POST['v_nat']);
|
||||
$v_interface = escapeshellarg($_POST['v_interface']);
|
||||
$v_owner = $_POST['v_owner'];
|
||||
$v_owner = escapeshellarg($_POST['v_owner']);
|
||||
$v_shared = $_POST['v_shared'];
|
||||
|
||||
// Check shared checkmark
|
||||
if ($v_shared == 'on') {
|
||||
$ip_status = 'shared';
|
||||
} else {
|
||||
$ip_status = 'dedicated';
|
||||
$v_dedicated = 'yes';
|
||||
|
||||
}
|
||||
|
||||
// Add IP
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-sys-ip ".$v_ip." ".$v_netmask." ".$v_interface." ".$v_owner." '".$ip_status."' ".$v_name." ".$v_nat, $output, $return_var);
|
||||
$v_owner = $_POST['v_owner'];
|
||||
$v_interface = $_POST['v_interface'];
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_owner = $_POST['v_owner'];
|
||||
$v_interface = $_POST['v_interface'];
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('IP_CREATED_OK',$_POST['v_ip'],$_POST['v_ip']);
|
||||
unset($v_ip);
|
||||
|
@ -64,20 +67,30 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($v_name);
|
||||
unset($v_nat);
|
||||
}
|
||||
}
|
||||
}
|
||||
exec (VESTA_CMD."v-list-sys-interfaces 'json'", $output, $return_var);
|
||||
$interfaces = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-users 'json'", $output, $return_var);
|
||||
$users = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_ip.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// List network interfaces
|
||||
exec (VESTA_CMD."v-list-sys-interfaces 'json'", $output, $return_var);
|
||||
$interfaces = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List users
|
||||
exec (VESTA_CMD."v-list-sys-users 'json'", $output, $return_var);
|
||||
$users = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_ip.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -4,41 +4,15 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'MAIL';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Mail Domain
|
||||
// Check POST request for mail domain
|
||||
if (!empty($_POST['ok'])) {
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_domain'])) $errors[] = __('domain');
|
||||
if (!empty($_POST['v_antispam'])) {
|
||||
$v_antispam = 'yes';
|
||||
} else {
|
||||
$v_antispam = 'no';
|
||||
}
|
||||
|
||||
if (!empty($_POST['v_antivirus'])) {
|
||||
$v_antivirus = 'yes';
|
||||
} else {
|
||||
$v_antivirus = 'no';
|
||||
}
|
||||
|
||||
if (!empty($_POST['v_dkim'])) {
|
||||
$v_dkim = 'yes';
|
||||
} else {
|
||||
$v_dkim = 'no';
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
|
||||
$v_domain = escapeshellarg($v_domain);
|
||||
$v_domain = strtolower($v_domain);
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -48,27 +22,66 @@ if (!empty($_POST['ok'])) {
|
|||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Check antispam option
|
||||
if (!empty($_POST['v_antispam'])) {
|
||||
$v_antispam = 'yes';
|
||||
} else {
|
||||
$v_antispam = 'no';
|
||||
}
|
||||
|
||||
// Check antivirus option
|
||||
if (!empty($_POST['v_antivirus'])) {
|
||||
$v_antivirus = 'yes';
|
||||
} else {
|
||||
$v_antivirus = 'no';
|
||||
}
|
||||
|
||||
// Check dkim option
|
||||
if (!empty($_POST['v_dkim'])) {
|
||||
$v_dkim = 'yes';
|
||||
} else {
|
||||
$v_dkim = 'no';
|
||||
}
|
||||
|
||||
// Set domain name to lowercase and remove www prefix
|
||||
$v_domain = preg_replace("/^www./i", "", $_POST['v_domain']);
|
||||
$v_domain = escapeshellarg($v_domain);
|
||||
$v_domain = strtolower($v_domain);
|
||||
|
||||
// Add mail domain
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain." ".$v_antispam." ".$v_antivirus." ".$v_dkim, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('MAIL_DOMAIN_CREATED_OK',$_POST['v_domain'],$_POST['v_domain']);
|
||||
unset($v_domain);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Mail Account
|
||||
// Check POST request for mail account
|
||||
if (!empty($_POST['ok_acc'])) {
|
||||
// Check input
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_domain'])) $errors[] = __('domain');
|
||||
if (empty($_POST['v_account'])) $errors[] = __('account');
|
||||
if (empty($_POST['v_password'])) $errors[] = __('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'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
|
@ -78,25 +91,15 @@ if (!empty($_POST['ok_acc'])) {
|
|||
$v_quota = escapeshellarg($_POST['v_quota']);
|
||||
$v_aliases = $_POST['v_aliases'];
|
||||
$v_fwd = $_POST['v_fwd'];
|
||||
|
||||
if (empty($_POST['v_quota'])) $v_quota = 0;
|
||||
if ((!empty($_POST['v_quota'])) || (!empty($_POST['v_aliases'])) || (!empty($_POST['v_fwd'])) ) $v_adv = 'yes';
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Add Mail Account
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-mail-account ".$user." ".$v_domain." ".$v_account." ".$v_password." ".$v_quota, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add Aliases
|
||||
if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
|
||||
|
@ -110,12 +113,12 @@ if (!empty($_POST['ok_acc'])) {
|
|||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-mail-account-alias ".$user." ".$v_domain." ".$v_account." ".$alias, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add Forwads
|
||||
// Add Forwarders
|
||||
if ((!empty($_POST['v_fwd'])) && (empty($_SESSION['error_msg']))) {
|
||||
$vfwd = preg_replace("/\n/", " ", $_POST['v_fwd']);
|
||||
$vfwd = preg_replace("/,/", " ", $vfwd);
|
||||
|
@ -127,26 +130,30 @@ if (!empty($_POST['ok_acc'])) {
|
|||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-mail-account-forward ".$user." ".$v_domain." ".$v_account." ".$forward, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add fwd_only flag
|
||||
if ((!empty($_POST['v_fwd_only'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-account-fwd-only ".$user." ".$v_domain." ".$v_account, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Get webmail url
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-list-sys-config json", $output, $return_var);
|
||||
$sys = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"].":");
|
||||
$webmail = "http://".$http_host."/webmail/";
|
||||
if (!empty($sys['config']['MAIL_URL'])) $webmail = $sys['config']['MAIL_URL'];
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('MAIL_ACCOUNT_CREATED_OK',strtolower($_POST['v_account']),$_POST[v_domain],strtolower($_POST['v_account']),$_POST[v_domain]);
|
||||
$_SESSION['ok_msg'] .= " / <a href=".$webmail." target='_blank'>" . __('open webmail') . "</a>";
|
||||
unset($v_account);
|
||||
|
@ -156,21 +163,28 @@ if (!empty($_POST['ok_acc'])) {
|
|||
unset($v_fwd);
|
||||
unset($v_quota);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
if ((empty($_GET['domain'])) && (empty($_POST['domain']))) {
|
||||
$v_domain = (isset($_GET['domain'])?$_GET['domain']:'');
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body for mail domain
|
||||
if (empty($_GET['domain'])) {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_mail.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
} else {
|
||||
}
|
||||
|
||||
// Display body for mail account
|
||||
if (!empty($_GET['domain'])) {
|
||||
$v_domain = $_GET['domain'];
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_mail_acc.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -4,22 +4,19 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'PACKAGE';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
if (empty($_SESSION['user'])) {
|
||||
header("Location: /login/");
|
||||
// Check user
|
||||
if ($_SESSION['user'] != 'admin') {
|
||||
header("Location: /list/user");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_package'])) $errors[] = __('package');
|
||||
if (empty($_POST['v_web_template'])) $errors[] = __('web template');
|
||||
if (empty($_POST['v_proxy_template'])) $errors[] = __('proxy template');
|
||||
|
@ -38,7 +35,16 @@ if ($_SESSION['user'] == 'admin') {
|
|||
if (!isset($_POST['v_bandwidth'])) $errors[] = __('bandwidth');
|
||||
if (empty($_POST['v_ns1'])) $errors[] = __('ns1');
|
||||
if (empty($_POST['v_ns2'])) $errors[] = __('ns2');
|
||||
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_package = escapeshellarg($_POST['v_package']);
|
||||
|
@ -68,22 +74,16 @@ if ($_SESSION['user'] == 'admin') {
|
|||
$v_time = escapeshellarg(date('H:i:s'));
|
||||
$v_date = escapeshellarg(date('Y-m-d'));
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Create temporary dir
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec ('mktemp -d', $output, $return_var);
|
||||
$tmpdir = $output[0];
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Create package
|
||||
// Create package file
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$pkg = "WEB_TEMPLATE=".$v_web_template."\n";
|
||||
$pkg .= "PROXY_TEMPLATE=".$v_proxy_template."\n";
|
||||
$pkg .= "DNS_TEMPLATE=".$v_dns_template."\n";
|
||||
|
@ -103,10 +103,10 @@ if ($_SESSION['user'] == 'admin') {
|
|||
$pkg .= "TIME=".$v_time."\n";
|
||||
$pkg .= "DATE=".$v_date."\n";
|
||||
|
||||
// Write package
|
||||
$fp = fopen($tmpdir."/".$_POST['v_package'].".pkg", 'w');
|
||||
fwrite($fp, $pkg);
|
||||
fclose($fp);
|
||||
}
|
||||
|
||||
// Add new package
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
|
@ -119,60 +119,66 @@ if ($_SESSION['user'] == 'admin') {
|
|||
exec ('rm -rf '.$tmpdir, $output, $return_var);
|
||||
unset($output);
|
||||
|
||||
// Check output
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('PACKAGE_CREATED_OK',$_POST['v_package'],$_POST['v_package']);
|
||||
unset($v_package);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$web_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$proxy_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-dns-templates json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$dns_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Set default values
|
||||
if (empty($v_web_template)) $v_web_template = 'default';
|
||||
if (empty($v_proxy_template)) $v_proxy_template = 'default';
|
||||
if (empty($v_dns_template)) $v_dns_template = 'default';
|
||||
if (empty($v_shell)) $v_shell = 'nologin';
|
||||
if (empty($v_web_domains)) $v_web_domains = "'0'";
|
||||
if (empty($v_web_aliases)) $v_web_aliases = "'0'";
|
||||
if (empty($v_dns_domains)) $v_dns_domains = "'0'";
|
||||
if (empty($v_dns_records)) $v_dns_records = "'0'";
|
||||
if (empty($v_mail_domains)) $v_mail_domains = "'0'";
|
||||
if (empty($v_mail_accounts)) $v_mail_accounts = "'0'";
|
||||
if (empty($v_databases)) $v_databases = "'0'";
|
||||
if (empty($v_cron_jobs)) $v_cron_jobs = "'0'";
|
||||
if (empty($v_backups)) $v_backups = "'0'";
|
||||
if (empty($v_disk_quota)) $v_disk_quota = "'0'";
|
||||
if (empty($v_bandwidth)) $v_bandwidth = "'0'";
|
||||
if (empty($v_ns1)) $v_ns1 = 'ns1.example.ltd';
|
||||
if (empty($v_ns2)) $v_ns2 = 'ns2.example.ltd';
|
||||
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_package.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// List web temmplates
|
||||
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
||||
$web_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List web templates for proxy
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
$proxy_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List DNS templates
|
||||
exec (VESTA_CMD."v-list-dns-templates json", $output, $return_var);
|
||||
$dns_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List system shells
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Set default values
|
||||
if (empty($v_web_template)) $v_web_template = 'default';
|
||||
if (empty($v_proxy_template)) $v_proxy_template = 'default';
|
||||
if (empty($v_dns_template)) $v_dns_template = 'default';
|
||||
if (empty($v_shell)) $v_shell = 'nologin';
|
||||
if (empty($v_web_domains)) $v_web_domains = "'0'";
|
||||
if (empty($v_web_aliases)) $v_web_aliases = "'0'";
|
||||
if (empty($v_dns_domains)) $v_dns_domains = "'0'";
|
||||
if (empty($v_dns_records)) $v_dns_records = "'0'";
|
||||
if (empty($v_mail_domains)) $v_mail_domains = "'0'";
|
||||
if (empty($v_mail_accounts)) $v_mail_accounts = "'0'";
|
||||
if (empty($v_databases)) $v_databases = "'0'";
|
||||
if (empty($v_cron_jobs)) $v_cron_jobs = "'0'";
|
||||
if (empty($v_backups)) $v_backups = "'0'";
|
||||
if (empty($v_disk_quota)) $v_disk_quota = "'0'";
|
||||
if (empty($v_bandwidth)) $v_bandwidth = "'0'";
|
||||
if (empty($v_ns1)) $v_ns1 = 'ns1.example.ltd';
|
||||
if (empty($v_ns2)) $v_ns2 = 'ns2.example.ltd';
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_package.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -1,47 +1,28 @@
|
|||
<?php
|
||||
// Init
|
||||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'USER';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
if (empty($_SESSION['user'])) {
|
||||
header("Location: /login/");
|
||||
// Check user
|
||||
if ($_SESSION['user'] != 'admin') {
|
||||
header("Location: /list/user");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_username'])) $errors[] = __('user');
|
||||
if (empty($_POST['v_password'])) $errors[] = __('password');
|
||||
if (empty($_POST['v_package'])) $errrors[] = __('package');
|
||||
if (empty($_POST['v_email'])) $errors[] = __('email');
|
||||
if (empty($_POST['v_fname'])) $errors[] = __('first name');
|
||||
if (empty($_POST['v_lname'])) $errors[] = __('last name');
|
||||
|
||||
// Protect input
|
||||
$v_username = escapeshellarg($_POST['v_username']);
|
||||
$v_password = escapeshellarg($_POST['v_password']);
|
||||
$v_email = escapeshellarg($_POST['v_email']);
|
||||
$v_package = escapeshellarg($_POST['v_package']);
|
||||
$v_language = escapeshellarg($_POST['v_language']);
|
||||
$v_fname = escapeshellarg($_POST['v_fname']);
|
||||
$v_lname = escapeshellarg($_POST['v_lname']);
|
||||
$v_notify = $_POST['v_notify'];
|
||||
|
||||
// Validate email
|
||||
if (!filter_var($_POST['v_email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
}
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -73,16 +54,48 @@ if ($_SESSION['user'] == 'admin') {
|
|||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
|
||||
// Validate email
|
||||
if ((empty($_SESSION['error_msg'])) && (!filter_var($_POST['v_email'], FILTER_VALIDATE_EMAIL))) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
}
|
||||
|
||||
// Check password length
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$pw_len = strlen($_POST['v_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_username = escapeshellarg($_POST['v_username']);
|
||||
$v_password = escapeshellarg($_POST['v_password']);
|
||||
$v_email = escapeshellarg($_POST['v_email']);
|
||||
$v_package = escapeshellarg($_POST['v_package']);
|
||||
$v_language = escapeshellarg($_POST['v_language']);
|
||||
$v_fname = escapeshellarg($_POST['v_fname']);
|
||||
$v_lname = escapeshellarg($_POST['v_lname']);
|
||||
$v_notify = $_POST['v_notify'];
|
||||
|
||||
|
||||
// Add user
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-user ".$v_username." ".$v_password." ".$v_email." ".$v_package." ".$v_fname." ".$v_lname, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set language
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-change-user-language ".$v_username." ".$v_language, $output, $return_var);
|
||||
if (!empty($v_notify)) {
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Send email to the new user
|
||||
if ((empty($_SESSION['error_msg'])) && (!empty($v_notify))) {
|
||||
$to = $_POST['v_notify'];
|
||||
$subject = _translate($_POST['v_language'],"Welcome to Vesta Control Panel");
|
||||
$hostname = exec('hostname');
|
||||
unset($output);
|
||||
$from = _translate($_POST['v_language'],'MAIL_FROM',$hostname);
|
||||
if (!empty($_POST['v_fname'])) {
|
||||
$mailtext = _translate($_POST['v_language'],'GREETINGS_GORDON_FREEMAN',$_POST['v_fname'],$_POST['v_lname']);
|
||||
|
@ -93,8 +106,10 @@ if ($_SESSION['user'] == 'admin') {
|
|||
send_email($to, $subject, $mailtext, $from);
|
||||
}
|
||||
|
||||
$_SESSION['ok_msg'] = __('USER_CREATED_OK',$_POST[v_username],$_POST[v_username]);
|
||||
$_SESSION['ok_msg'] .= " / <a href=/login/?loginas=".$_POST[v_username].">" . __('login as') ." ".$_POST[v_username]. "</a>";
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('USER_CREATED_OK',$_POST['v_username'],$_POST['v_username']);
|
||||
$_SESSION['ok_msg'] .= " / <a href=/login/?loginas=".$_POST['v_username'].">" . __('login as') ." ".$_POST['v_username']. "</a>";
|
||||
unset($v_username);
|
||||
unset($v_password);
|
||||
unset($v_email);
|
||||
|
@ -102,23 +117,32 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($v_lname);
|
||||
unset($v_notify);
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_user.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// List hosting packages
|
||||
exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List languages
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_user.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -4,39 +4,60 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
$TAB = 'WEB';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
// Check POST request
|
||||
if (!empty($_POST['ok'])) {
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
$v_ftp_email = $panel[$user]['CONTACT'];
|
||||
if (!empty($_POST['ok'])) {
|
||||
// Check input
|
||||
// Check for empty fields
|
||||
if (empty($_POST['v_domain'])) $errors[] = __('domain');
|
||||
if (empty($_POST['v_ip'])) $errors[] = __('ip');
|
||||
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'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
|
||||
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
|
||||
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf,';
|
||||
// Check stats password length
|
||||
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
|
||||
if (!empty($_POST['v_stats_user'])) {
|
||||
$pw_len = strlen($_POST['v_stats_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
}
|
||||
|
||||
// Default proxy extention list
|
||||
$v_proxy_ext = 'jpeg, jpg, png, gif, bmp, ico, svg, tif, tiff, css, js, htm, html, ttf, ';
|
||||
$v_proxy_ext .= 'otf, webp, woff, txt, csv, rtf, doc, docx, xls, xlsx, ppt, pptx, odf, ';
|
||||
$v_proxy_ext .= 'odp, ods, odt, pdf, psd, ai, eot, eps, ps, zip, tar, tgz, gz, rar, ';
|
||||
$v_proxy_ext .= 'bz2, 7z, aac, m4a, mp3, mp4, ogg, wav, wma, 3gp, avi, flv, m4v, mkv, ';
|
||||
$v_proxy_ext .= 'mov, mp4, mpeg, mpg, wmv, exe, iso, dmg, swf';
|
||||
|
||||
// Set advanced option checkmark
|
||||
if (empty($_POST['v_proxy'])) $v_adv = 'yes';
|
||||
if (!empty($_POST['v_ftp'])) $v_adv = 'yes';
|
||||
if ($_POST['v_proxy_ext'] != $v_proxy_ext) $v_adv = 'yes';
|
||||
|
||||
// Protect input
|
||||
// Set domain name to lowercase and remove www prefix
|
||||
$v_domain = preg_replace("/^www\./i", "", $_POST['v_domain']);
|
||||
$v_domain = escapeshellarg($v_domain);
|
||||
$v_domain = strtolower($v_domain);
|
||||
|
||||
// Prepare domain values
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
if ((!empty($_POST['v_aliases'])) && ($_POST['v_aliases'] != 'www.'.$_POST['v_domain'])) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl'])) || (!empty($_POST['v_elog']))) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl_crt'])) || (!empty($_POST['v_ssl_key']))) $v_adv = 'yes';
|
||||
if ((!empty($_POST['v_ssl_ca'])) || ($_POST['v_stats'] != 'none')) $v_adv = 'yes';
|
||||
if (!empty($v_domain)) $v_ftp_user_prepath .= $v_domain;
|
||||
if (empty($_POST['v_dns'])) $v_dns = 'off';
|
||||
if (empty($_POST['v_mail'])) $v_mail = 'off';
|
||||
if (empty($_POST['v_proxy'])) $v_proxy = 'off';
|
||||
|
@ -60,60 +81,30 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
$v_ftp_password = $_POST['v_ftp_password'];
|
||||
$v_ftp_email = $_POST['v_ftp_email'];
|
||||
|
||||
// Validate email
|
||||
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
}
|
||||
|
||||
// Check ftp password length
|
||||
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
if (!empty($_POST['v_ftp_user'])) {
|
||||
$pw_len = strlen($_POST['v_ftp_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
}
|
||||
|
||||
// Check stats password length
|
||||
if ((!empty($v_stats)) && (empty($_SESSION['error_msg']))) {
|
||||
if (!empty($_POST['v_stats_user'])) {
|
||||
$pw_len = strlen($_POST['v_stats_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
}
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Add web domain
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
// Add WEB
|
||||
exec (VESTA_CMD."v-add-web-domain ".$user." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$domain_added = empty($_SESSION['error_msg']);
|
||||
}
|
||||
|
||||
// Add DNS
|
||||
// Add DNS domain
|
||||
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-dns-domain ".$user." ".$v_domain." ".$v_ip, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add Mail
|
||||
// Add mail domain
|
||||
if (($_POST['v_mail'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain ".$user." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add Aliases
|
||||
// Add domain aliases
|
||||
if ((!empty($_POST['v_aliases'])) && (empty($_SESSION['error_msg']))) {
|
||||
$valiases = preg_replace("/\n/", " ", $_POST['v_aliases']);
|
||||
$valiases = preg_replace("/,/", " ", $valiases);
|
||||
|
@ -128,8 +119,8 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-add-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-dns-on-web-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -138,16 +129,18 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete www. alias if it wasn't found
|
||||
if ((empty($www_alias)) && (empty($_SESSION['error_msg']))) {
|
||||
$alias = preg_replace("/^www./i", "", $_POST['v_domain']);
|
||||
$alias = 'www.'.$alias;
|
||||
$alias = escapeshellarg($alias);
|
||||
exec (VESTA_CMD."v-delete-web-domain-alias ".$user." ".$v_domain." ".$alias." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
|
||||
// Add proxy
|
||||
// Add proxy support
|
||||
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
$ext = str_replace(' ', '', $v_proxy_ext);
|
||||
$ext = escapeshellarg($ext);
|
||||
|
@ -156,12 +149,13 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Add SSL
|
||||
if (!empty($_POST['v_ssl'])) {
|
||||
// Add SSL certificates
|
||||
if ((!empty($_POST['v_ssl'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec ('mktemp -d', $output, $return_var);
|
||||
$tmpdir = $output[0];
|
||||
unset($output);
|
||||
|
||||
// Certificate
|
||||
// Save 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']));
|
||||
|
@ -169,7 +163,7 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
fclose($fp);
|
||||
}
|
||||
|
||||
// Key
|
||||
// Save private 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']));
|
||||
|
@ -177,7 +171,7 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
fclose($fp);
|
||||
}
|
||||
|
||||
// CA
|
||||
// Save CA bundle
|
||||
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']));
|
||||
|
@ -191,67 +185,129 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Add WebStats
|
||||
// Add web stats
|
||||
if ((!empty($_POST['v_stats'])) && ($_POST['v_stats'] != 'none' ) && (empty($_SESSION['error_msg']))) {
|
||||
$v_stats = escapeshellarg($_POST['v_stats']);
|
||||
exec (VESTA_CMD."v-add-web-domain-stats ".$user." ".$v_domain." ".$v_stats, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add web stats password
|
||||
if ((!empty($_POST['v_stats_user'])) && (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 ".$user." ".$v_domain." ".$v_stats_user." ".$v_stats_password, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($v_stats_user);
|
||||
unset($v_stats_password);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Add FTP
|
||||
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']);
|
||||
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
|
||||
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
if (!empty($v_ftp_email)) {
|
||||
$to = $_POST['v_ftp_email'];
|
||||
$subject = __("FTP login credentials");
|
||||
$hostname = exec('hostname');
|
||||
$from = __('MAIL_FROM',$hostname);
|
||||
$mailtext .= __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']);
|
||||
send_email($to, $subject, $mailtext, $from);
|
||||
}
|
||||
}
|
||||
unset($v_ftp);
|
||||
unset($v_ftp_user);
|
||||
unset($v_ftp_password);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Restart DNS server
|
||||
if (($_POST['v_dns'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Restart web server
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-restart-web", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
// Restart proxy server
|
||||
if (($_POST['v_proxy'] == 'on') && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
// Add FTP
|
||||
if ((!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ftp_users_updated = array();
|
||||
foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
|
||||
if ($v_ftp_user_data['is_new'] == 1) {
|
||||
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
|
||||
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user 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'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Validate email
|
||||
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
}
|
||||
|
||||
// Check ftp password length
|
||||
if ((!empty($v_ftp_user_data['v_ftp']))) {
|
||||
if (!empty($v_ftp_user_data['v_ftp_user'])) {
|
||||
$pw_len = strlen($v_ftp_user_data['v_ftp_password']);
|
||||
if ($pw_len < 6 ) $_SESSION['error_msg'] = __('Password is too short.',$error_msg);
|
||||
}
|
||||
}
|
||||
|
||||
$v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
|
||||
$v_ftp_username = $v_ftp_user_data['v_ftp_user'];
|
||||
$v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
|
||||
$v_ftp_user = escapeshellarg($v_ftp_user_data['v_ftp_user']);
|
||||
$v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
|
||||
|
||||
if ($domain_added) {
|
||||
exec (VESTA_CMD."v-add-web-domain-ftp ".$user." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
|
||||
$to = $v_ftp_user_data['v_ftp_email'];
|
||||
$subject = __("FTP login credentials");
|
||||
$from = __('MAIL_FROM',$_POST['v_domain']);
|
||||
$mailtext = __('FTP_ACCOUNT_READY',$_POST['v_domain'],$user,$v_ftp_user_data['v_ftp_user'],$v_ftp_user_data['v_ftp_password']);
|
||||
send_email($to, $subject, $mailtext, $from);
|
||||
unset($v_ftp_email);
|
||||
}
|
||||
} else {
|
||||
$return_var = -1;
|
||||
}
|
||||
|
||||
if ($return_var == 0) {
|
||||
$v_ftp_password = "••••••••";
|
||||
$v_ftp_user_data['is_new'] = 0;
|
||||
} else {
|
||||
$v_ftp_user_data['is_new'] = 1;
|
||||
}
|
||||
|
||||
$v_ftp_username = preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
|
||||
$v_ftp_users_updated[] = array(
|
||||
'is_new' => $v_ftp_user_data['is_new'],
|
||||
'v_ftp_user' => $return_var == 0 ? $v_ftp_username_full : $v_ftp_username,
|
||||
'v_ftp_password' => $v_ftp_password,
|
||||
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
|
||||
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($_SESSION['error_msg']) && $domain_added) {
|
||||
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
|
||||
$_SESSION['flash_error_msg'] = $_SESSION['error_msg'];
|
||||
$url = '/edit/web/?domain='.strtolower(preg_replace("/^www\./i", "", $_POST['v_domain']));
|
||||
header('Location: ' . $url);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Flush field values on success
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('WEB_DOMAIN_CREATED_OK',$_POST[v_domain],$_POST[v_domain]);
|
||||
unset($v_domain);
|
||||
unset($v_aliases);
|
||||
|
@ -259,22 +315,39 @@ $v_ftp_email = $panel[$user]['CONTACT'];
|
|||
unset($v_ssl_crt);
|
||||
unset($v_ssl_key);
|
||||
unset($v_ssl_ca);
|
||||
unset($v_stats_user);
|
||||
unset($v_stats_password);
|
||||
unset($v_ftp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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-stats json", $output, $return_var);
|
||||
$stats = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
//}
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Define user variables
|
||||
$v_ftp_user_prepath = $panel[$user]['HOME'] . "/web";
|
||||
$v_ftp_email = $panel[$user]['CONTACT'];
|
||||
|
||||
// List IP addresses
|
||||
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
|
||||
$ips = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List web stat engines
|
||||
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
|
||||
$stats = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_web.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -27,6 +27,7 @@ if (isset($_POST['user']) || isset($_POST['hash'])) {
|
|||
exit;
|
||||
}
|
||||
|
||||
|
||||
// Prepare arguments
|
||||
if (isset($_POST['cmd'])) $cmd = escapeshellarg($_POST['cmd']);
|
||||
if (isset($_POST['arg1'])) $arg1 = escapeshellarg($_POST['arg1']);
|
||||
|
@ -39,8 +40,31 @@ if (isset($_POST['user']) || isset($_POST['hash'])) {
|
|||
if (isset($_POST['arg8'])) $arg8 = escapeshellarg($_POST['arg8']);
|
||||
if (isset($_POST['arg9'])) $arg9 = escapeshellarg($_POST['arg9']);
|
||||
|
||||
// Build query
|
||||
$cmdquery = VESTA_CMD.$cmd." ";
|
||||
|
||||
if(!empty($arg1)){
|
||||
$cmdquery = $cmdquery.$arg1." "; }
|
||||
if(!empty($arg2)){
|
||||
$cmdquery = $cmdquery.$arg2." "; }
|
||||
if(!empty($arg3)){
|
||||
$cmdquery = $cmdquery.$arg3." "; }
|
||||
if(!empty($arg4)){
|
||||
$cmdquery = $cmdquery.$arg4." "; }
|
||||
if(!empty($arg5)){
|
||||
$cmdquery = $cmdquery.$arg5." "; }
|
||||
if(!empty($arg6)){
|
||||
$cmdquery = $cmdquery.$arg6." "; }
|
||||
if(!empty($arg7)){
|
||||
$cmdquery = $cmdquery.$arg7." "; }
|
||||
if(!empty($arg8)){
|
||||
$cmdquery = $cmdquery.$arg8." "; }
|
||||
if(!empty($arg9)){
|
||||
$cmdquery = $cmdquery.$arg9; }
|
||||
|
||||
// Run query
|
||||
exec (VESTA_CMD.$cmd." ".$arg1." ".$arg2." ".$arg3." ".$arg4." ".$arg5." ".$arg6." ".$arg7." ".$arg8." ".$arg9, $output, $return_var);
|
||||
exec ($cmdquery, $output, $return_var);
|
||||
|
||||
if ((!empty($_POST['returncode'])) && ($_POST['returncode'] == 'yes')) {
|
||||
echo $return_var;
|
||||
} else {
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #e6e6e6;}
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #999;}
|
||||
|
||||
|
||||
/*!
|
||||
|
@ -58,7 +58,7 @@
|
|||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, Helvetica, sans-serif; font-size: 10pt; }
|
||||
.ui-widget-content { border: 1px solid #aaaaaa; color: #222222; }
|
||||
.ui-widget-content a { color: #222222; }
|
||||
.ui-widget-header { background: #505050; color: #444; font-size: 10pt; font-weight: bold;}
|
||||
.ui-widget-header { background: #777; color: #444; font-size: 10pt; font-weight: bold;}
|
||||
.ui-widget-header a { color: #222222; }
|
||||
|
||||
/* Interaction Cues
|
||||
|
@ -75,14 +75,14 @@
|
|||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
/* states and images
|
||||
.ui-icon { width: 16px; height: 16px; }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
|
||||
|
||||
*/
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
|
@ -376,8 +376,8 @@
|
|||
* http://docs.jquery.com/UI/Button#theming
|
||||
*/
|
||||
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .10pt; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
|
||||
.ui-button { filter:chroma(color=#000000); cursor: pointer; color: #555; background-color: #ececec; border: 1px solid #e0e0e0; border-radius: 3px 3px 3px 3px; font-weight: bold; font-size: 14px; padding: 2px 16px; width: 108px; height: 34px; }
|
||||
.ui-button:hover { border: 1px solid #f79b44; background-color: #f79b44; color: #fff;}
|
||||
.ui-button { filter:chroma(color=#000000); cursor: pointer; color: #fff; background-color: #f79b44; border: 1px solid #f79b44; border-radius: 3px 3px 3px 3px; font-weight: bold; font-size: 14px; padding: 2px 16px; width: 108px; height: 34px; }
|
||||
.ui-button:hover { border: 1px solid #9e9e9e; background-color: #9e9e9e; color: #fff;}
|
||||
.ui-button:active { background-color: #ccc; color: #fff; border: 1px solid #ccc; }
|
||||
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
|
||||
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
|
||||
|
|
452
web/css/main.css
|
@ -1,6 +1,6 @@
|
|||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #e5e5e5;
|
||||
background-color: #75b0c5;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
|
@ -19,6 +19,9 @@ td {
|
|||
padding: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
|
@ -26,13 +29,33 @@ td {
|
|||
|
||||
.top {
|
||||
width: 1000px;
|
||||
position: fixed; background: #fff;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
}
|
||||
|
||||
.top.small .submenu{
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.10);
|
||||
}
|
||||
|
||||
|
||||
.top .nav-logo .logo-container{
|
||||
background-color: #fff;
|
||||
width: 167px;
|
||||
}
|
||||
|
||||
.top.small-logo .nav-logo .logo-container{
|
||||
position: fixed;
|
||||
}
|
||||
.top.small-logo .nav-logo img{
|
||||
margin: 29px 0 -4px 10px;
|
||||
padding: 0 0 10px;
|
||||
}
|
||||
|
||||
|
||||
.top-menu {
|
||||
height: 24px;
|
||||
background-color: #505050;
|
||||
width: 1000px;
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.top-link {
|
||||
|
@ -51,9 +74,9 @@ td {
|
|||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.top-link:active{
|
||||
color: #2361a1;
|
||||
background-color: #f1f1f1;
|
||||
.top-link:active {
|
||||
color: #333;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.top-selected-link {
|
||||
|
@ -65,7 +88,7 @@ td {
|
|||
line-height: 22px;
|
||||
padding: 0 20px 2px;
|
||||
color: #333;
|
||||
background-color: #f1f1f1;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.top-selected-link:hover {
|
||||
|
@ -75,7 +98,7 @@ td {
|
|||
|
||||
.top-selected-link:active {
|
||||
color: #2361a1;
|
||||
background-color: #f1f1f1;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.top-user {
|
||||
|
@ -93,7 +116,7 @@ td {
|
|||
color: #fff;
|
||||
}
|
||||
|
||||
.top-user:active{
|
||||
.top-user:active {
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
@ -120,12 +143,21 @@ td {
|
|||
background-color: #999;
|
||||
}
|
||||
|
||||
.main-menu{
|
||||
display: block;
|
||||
float: left;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
.nav-logo {
|
||||
float: left;
|
||||
height: 111px;
|
||||
height: 139px;
|
||||
width: 167px;
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
margin: 0 0 0px;
|
||||
}
|
||||
|
||||
.nav-logo img{
|
||||
margin: 56px 0 0 10px;
|
||||
}
|
||||
|
||||
.nav-lnk {
|
||||
|
@ -145,58 +177,96 @@ td {
|
|||
width: 119px;
|
||||
float:left;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px solid #e5e5e5;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.nav-block:hover {
|
||||
height:108px;
|
||||
border-bottom: 4px solid #f79b44;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.nav-selected-block {
|
||||
padding-bottom: 0;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
margin: 0;
|
||||
color: #2361a1;
|
||||
color: #4a82be;
|
||||
height: 108px;
|
||||
width: 119px;
|
||||
float: left;
|
||||
border-bottom: 4px solid #777777;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.nav-selected-block:hover {
|
||||
height:108px;
|
||||
border-bottom: 4px solid #f79b44;
|
||||
}
|
||||
|
||||
.nav-selected-block:active {
|
||||
color: #f79b44;
|
||||
}
|
||||
|
||||
.nav-header {
|
||||
padding: 14px 0 0 6px;
|
||||
margin: 0;
|
||||
letter-spacing: -1.0px;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
.top .nav-block .marker,
|
||||
.top .nav-selected-block .marker {
|
||||
-webkit-transition: background .1s ease-in-out;
|
||||
-moz-transition: background .1s ease-in-out;
|
||||
-o-transition: background .1s ease-in-out;
|
||||
transition: background .1s ease-in-out;
|
||||
padding: 0;
|
||||
height: 4px;
|
||||
margin: 12px 0 0 0;
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.nav-selected-header {
|
||||
padding: 14px 0 0 6px;
|
||||
margin: 0;
|
||||
letter-spacing: -1.0px;
|
||||
.top .nav-selected-block .marker {
|
||||
background-color: #777;
|
||||
border-bottom: 1px solid #777;
|
||||
}
|
||||
|
||||
.top.small .marker{
|
||||
position: fixed;
|
||||
top: 66px;
|
||||
width: 119px;
|
||||
}
|
||||
|
||||
.nav-block:hover .marker{
|
||||
background-color: #f79b44;
|
||||
border-bottom: 1px solid #f79b44;
|
||||
}
|
||||
|
||||
.nav-selected-block:hover .marker{
|
||||
background-color: #f79b44;
|
||||
border-bottom: 1px solid #f79b44;
|
||||
}
|
||||
|
||||
.nav-header, .nav-selected-header {
|
||||
background-color: #FFF;
|
||||
font-size: 16pt;
|
||||
font-weight: bold;
|
||||
height: 27px;
|
||||
letter-spacing: -1px;
|
||||
margin: 0;
|
||||
padding: 16px 0 0 6px;
|
||||
position: fixed;
|
||||
top: 24px;
|
||||
width: 113px;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.top.small .nav-header, .top.small .nav-selected-header{
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.nav-counters {
|
||||
padding: 1px 0 0 6px;
|
||||
margin: 0;
|
||||
margin: 65px 0 0 0;
|
||||
height: 58px;
|
||||
line-height: 1.4em;
|
||||
font-size: 9pt;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
color: #333;
|
||||
decoration: none;
|
||||
overflow: hidden;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.submenu {
|
||||
|
@ -204,6 +274,19 @@ td {
|
|||
vertical-align: middle;
|
||||
float: left;
|
||||
width: 1000px;
|
||||
border-bottom: 1px solid #e1e8e8;
|
||||
border-top: 1px solid #e1e8e8;
|
||||
background-color: #fff;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.top.small .submenu{
|
||||
position: fixed;
|
||||
top: 82px;
|
||||
}
|
||||
|
||||
.submenu .wrapper{
|
||||
padding: 11px 10px 14px 10px;
|
||||
}
|
||||
|
||||
.submenu-button-block {
|
||||
|
@ -225,7 +308,7 @@ td {
|
|||
}
|
||||
|
||||
.submenu-button-select {
|
||||
width: 20px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
cursor: pointer;
|
||||
color: #555;
|
||||
|
@ -272,16 +355,26 @@ td {
|
|||
}
|
||||
|
||||
.submenu-button-main:hover {
|
||||
border: 1px solid #999;
|
||||
background-color: #999;
|
||||
border: 1px solid #aaa;
|
||||
background-color: #adaeae;
|
||||
|
||||
-webkit-transition: background .1s ease-in-out;
|
||||
-moz-transition: background .1s ease-in-out;
|
||||
-o-transition: background .1s ease-in-out;
|
||||
transition: background .1s ease-in-out;
|
||||
}
|
||||
|
||||
.submenu-button-select:hover {
|
||||
border: 1px solid #f79b44;
|
||||
border: 1px solid #adaeae;
|
||||
background-color: #adaeae;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.submenu-button-search:hover {
|
||||
border: 1px solid #f79b44;
|
||||
border: 1px solid #adaeae;
|
||||
background-color: #adaeae;
|
||||
color: #fff;
|
||||
|
||||
}
|
||||
|
||||
.submenu-button-main:active {
|
||||
|
@ -307,7 +400,7 @@ td {
|
|||
}
|
||||
|
||||
.submenu-select-link {
|
||||
color: #6A6A6A;
|
||||
color: #6a6a6a;
|
||||
display: block;
|
||||
float: left;
|
||||
font-size: 8pt;
|
||||
|
@ -318,33 +411,46 @@ td {
|
|||
}
|
||||
|
||||
.submenu-select-link:hover {
|
||||
text-decoration: underline;
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.submenu-select-link:active {
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
text-decoration: underline;
|
||||
background-color: #777;
|
||||
}
|
||||
|
||||
.submenu-select-dropdown {
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-size: 9pt;
|
||||
color: #333333;
|
||||
color: #333;
|
||||
display: block;
|
||||
float: left;
|
||||
height: 28px;
|
||||
margin: 0 4px 0 0;
|
||||
min-width: 138px;
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #CCCCCC;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
padding: 4px 5px;
|
||||
}
|
||||
|
||||
|
||||
.submenu-select-dropdown:hover {
|
||||
border: 1px solid #909090;
|
||||
}
|
||||
|
||||
.submenu-select-dropdown:focus {
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #fffcd2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
|
||||
.submenu-select-dropdown option {
|
||||
padding: 5px 5px 5px 8px;
|
||||
}
|
||||
|
||||
.submenu-search-block {
|
||||
display: block;
|
||||
text-align: right;
|
||||
|
@ -365,11 +471,13 @@ td {
|
|||
}
|
||||
|
||||
.submenu-search-field:hover {
|
||||
border: 1px solid #f79b44;
|
||||
border: 1px solid #909090;
|
||||
}
|
||||
|
||||
.submenu-search-field:focus {
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #FFFCD2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.bottom {
|
||||
|
@ -403,11 +511,11 @@ td {
|
|||
}
|
||||
|
||||
.vst {
|
||||
padding: 4px 4px 0 4px;
|
||||
padding: 5px 7px 0 7px;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
color: #999;
|
||||
font-size: 12pt;
|
||||
font-size: 11pt;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
@ -421,11 +529,11 @@ td {
|
|||
}
|
||||
|
||||
.vst-selected {
|
||||
padding: 4px 4px 0 4px;
|
||||
padding: 5px 7px 0 7px;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
color: #2361a1;
|
||||
font-size: 12pt;
|
||||
font-size: 11pt;
|
||||
float: left;
|
||||
}
|
||||
|
||||
|
@ -448,21 +556,18 @@ td {
|
|||
font-size: 12pt;
|
||||
text-align: left;
|
||||
vertical-align:top;
|
||||
margin: 0;
|
||||
margin: 1px 0 0 0;
|
||||
behavior:url("/css/csshover3.htc");
|
||||
background-color: #fff
|
||||
}
|
||||
|
||||
.data a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.data-row:hover {
|
||||
margin: 0;
|
||||
background-color: #f7f6ed;
|
||||
}
|
||||
|
||||
.data-row:active {
|
||||
background-color: #f7f7d8;
|
||||
.data-row.selected, .data-row.selected.suspended{
|
||||
background-color: #e4e9e9;
|
||||
}
|
||||
|
||||
.datarowhover {
|
||||
|
@ -529,7 +634,7 @@ td {
|
|||
.data-date {
|
||||
letter-spacing: 0.3em;
|
||||
font-size: 8pt;
|
||||
color: #6A6A6A
|
||||
color: #6a6a6a
|
||||
}
|
||||
|
||||
.data-active {
|
||||
|
@ -549,33 +654,41 @@ td {
|
|||
height: 16px;
|
||||
border-left: 1px solid #d3d3d3;
|
||||
font-size: 8pt;
|
||||
padding: 2px 12px 1px 6px;
|
||||
padding: 6px 11px 2px;
|
||||
letter-spacing: 0.1em;
|
||||
color: #2361a1;
|
||||
color: #3e7c91;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.data-controls.edit{
|
||||
font-weight: bold;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.data-controls:hover {
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.data-controls:active {
|
||||
background-color: #999
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
|
||||
.data-controls img {
|
||||
border: 0px;
|
||||
}
|
||||
|
||||
.ch-toggle {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.data-count {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #f3f3f3;
|
||||
color: #555;
|
||||
color: #505050;
|
||||
font-size: 8pt;
|
||||
margin: 18px 0 0 0;
|
||||
padding: 0 16px 0 0;
|
||||
padding: 20px 0 20px 174px;
|
||||
}
|
||||
|
||||
.chart1 {
|
||||
|
@ -600,6 +713,14 @@ td {
|
|||
padding: 1px 0 2px 0;
|
||||
}
|
||||
|
||||
.suspended .domain {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.domain.hostname {
|
||||
font-size: 16pt;
|
||||
}
|
||||
|
||||
.cron {
|
||||
color: #222;
|
||||
font-size: 18px;
|
||||
|
@ -633,7 +754,7 @@ td {
|
|||
.counter-name {
|
||||
white-space: nowrap;
|
||||
vertical-align:top;
|
||||
line-height: 1.3em;
|
||||
line-height: 1.2em;
|
||||
font-size: 10pt;
|
||||
color: #222;
|
||||
padding: 2px 4px 1px 0;
|
||||
|
@ -649,7 +770,7 @@ td {
|
|||
|
||||
.counter-value {
|
||||
vertical-align:top;
|
||||
line-height: 1.3em;
|
||||
line-height: 1.2em;
|
||||
font-size: 10pt;
|
||||
color: #222;
|
||||
padding: 2px 0 1px 2px;
|
||||
|
@ -676,17 +797,17 @@ td {
|
|||
|
||||
.vst-ok {
|
||||
font-size: 12pt;
|
||||
color: #62a358;
|
||||
color: #33691e;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.vst-ok a{
|
||||
color: #58934f;
|
||||
text-decoration: none;
|
||||
.vst-ok a {
|
||||
color: #33691e;
|
||||
}
|
||||
|
||||
.vst-ok a:hover{
|
||||
text-decoration: underline;
|
||||
.vst-ok a:hover {
|
||||
background: #f79b44;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.vst-error {
|
||||
|
@ -714,11 +835,13 @@ td {
|
|||
}
|
||||
|
||||
.vst-textinput:hover {
|
||||
border: 1px solid #f79b44;
|
||||
border: 1px solid #909090;
|
||||
}
|
||||
|
||||
.vst-textinput:focus {
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #fffcd2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.vst-textinput:disabled {
|
||||
|
@ -738,17 +861,23 @@ td {
|
|||
}
|
||||
|
||||
.vst-input:hover {
|
||||
border: 1px solid #f79b44;
|
||||
border: 1px solid #909090;
|
||||
}
|
||||
|
||||
.vst-input:focus {
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #fffcd2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.vst-input:disabled {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.vst-input.long{
|
||||
width: 580px;
|
||||
}
|
||||
|
||||
.vst-list {
|
||||
font-family:Arial, Helvetica, sans-serif;
|
||||
font-size: 12pt;
|
||||
|
@ -768,7 +897,7 @@ td {
|
|||
padding: 5px;
|
||||
font-size: 12pt;
|
||||
border: 1px solid #f7f6ed;
|
||||
margin: 2px 6px 0 0;
|
||||
margin: 2px 6px 0 3px;
|
||||
}
|
||||
|
||||
.vst-checkbox:hover {
|
||||
|
@ -776,23 +905,23 @@ td {
|
|||
}
|
||||
|
||||
.button {
|
||||
filter:chroma(color=#000000);
|
||||
filter:chroma(color=#000);
|
||||
cursor: pointer;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
padding: 2px 16px;
|
||||
padding: 1px 16px 3px 16px;
|
||||
width: 108px;
|
||||
height: 34px;
|
||||
color: #555;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
color: #fafafa;
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.button:hover {
|
||||
color: #fff;
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #f79b44;
|
||||
border: 1px solid #999;
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
.button:active {
|
||||
|
@ -801,7 +930,7 @@ td {
|
|||
}
|
||||
|
||||
.login-button {
|
||||
filter:chroma(color=#000000);
|
||||
filter:chroma(color=#000);
|
||||
cursor: pointer;
|
||||
border-radius: 3px 3px 3px 3px;
|
||||
font-size: 14px;
|
||||
|
@ -810,14 +939,13 @@ td {
|
|||
width: 108px;
|
||||
height: 34px;
|
||||
color: #fff;
|
||||
background-color: #999;
|
||||
border: 1px solid #999;
|
||||
background-color: #f79b44;
|
||||
border: 1px solid #f79b44;
|
||||
}
|
||||
|
||||
.login-button:hover {
|
||||
color: #fff;
|
||||
border: 1px solid #f79b44;
|
||||
background-color: #f79b44;
|
||||
border: 1px solid #adaeae;
|
||||
background-color: #adaeae;
|
||||
}
|
||||
|
||||
.login-button:active {
|
||||
|
@ -838,12 +966,12 @@ td {
|
|||
}
|
||||
|
||||
.generate:hover {
|
||||
color: #7fa1cb;
|
||||
background-color: #f79b44;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.generate:active {
|
||||
background-color: #f79b44;
|
||||
color: #fff;
|
||||
background-color: #999;
|
||||
}
|
||||
|
||||
.vst-advanced {
|
||||
|
@ -856,15 +984,16 @@ td {
|
|||
}
|
||||
|
||||
.vst-advanced:hover {
|
||||
color: #7fa1cb;
|
||||
}
|
||||
|
||||
.vst-advanced:active {
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.fixed{
|
||||
.vst-advanced:active {
|
||||
color: #fff;
|
||||
background-color: #777;
|
||||
}
|
||||
|
||||
.fixed {
|
||||
position: fixed;
|
||||
border: none;
|
||||
top: -3px;
|
||||
|
@ -872,7 +1001,7 @@ td {
|
|||
background-color: #fff;
|
||||
}
|
||||
|
||||
*html .fixed{
|
||||
*html .fixed {
|
||||
position:absolute;
|
||||
position:fixed;
|
||||
_position:absolute;
|
||||
|
@ -880,7 +1009,7 @@ td {
|
|||
_top:expression( eval(document.body.scrollTop) + 'px' );
|
||||
}
|
||||
|
||||
#vstobjects{
|
||||
#vstobjects {
|
||||
padding-top: 193px;
|
||||
min-height: 372px;
|
||||
}
|
||||
|
@ -903,27 +1032,148 @@ td {
|
|||
}
|
||||
|
||||
.login-bottom {
|
||||
color: #ebe9dc;
|
||||
text-align: right;
|
||||
vertical-align:top;
|
||||
width: 500px;
|
||||
width: 474px;
|
||||
height: 50px;
|
||||
margin: 0;
|
||||
padding: 0 26px 0 0;
|
||||
}
|
||||
|
||||
.vestacp{
|
||||
.vestacp {
|
||||
font-size: 8pt;
|
||||
color: #222;
|
||||
color: #505050;
|
||||
text-align: right;
|
||||
padding: 0 8px 0 0;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 10pt;
|
||||
color: #dE6c5d;
|
||||
color: #de6c5d;
|
||||
}
|
||||
|
||||
.hint {
|
||||
font-size: 14pt;
|
||||
color: #7fa1cb;
|
||||
}
|
||||
|
||||
.step-top {
|
||||
padding-top: 42px;
|
||||
}
|
||||
|
||||
.step-bottom {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.step-left {
|
||||
padding-left: 50px;
|
||||
}
|
||||
|
||||
.input-label {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.additional-control {
|
||||
margin-left: 20px;
|
||||
color: #2361a1;
|
||||
border-bottom: 1px solid #f79b44;
|
||||
font-size: 10pt;
|
||||
letter-spacing: 0.1em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.additional-control:hover {
|
||||
color: #7fa1cb;
|
||||
}
|
||||
|
||||
.additional-control:active {
|
||||
color: #fff;
|
||||
background-color: #f79b44;
|
||||
}
|
||||
|
||||
.ftp-path-prefix {
|
||||
color: #848483;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.ftp-path-value {
|
||||
color: #333;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.data .suspended {
|
||||
background: url(/images/disabled_bg.png);
|
||||
}
|
||||
|
||||
.timer-container .refresh-timer {
|
||||
border: 2px solid #c0d4a6;
|
||||
border-radius: 14px;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
margin: 10px;
|
||||
float: left;
|
||||
margin: 7px 10px 0 0;
|
||||
}
|
||||
|
||||
.timer-container .refresh-timer.paused{
|
||||
border: 2px solid #9f9f9f;
|
||||
}
|
||||
|
||||
.timer-container .refresh-timer.paused .loader-half.right,
|
||||
.timer-container .refresh-timer.paused .loader-half.dark{
|
||||
background-color: #9F9F9F;
|
||||
}
|
||||
|
||||
.timer-container .loader-half {
|
||||
border-radius: 0 14px 14px 0;
|
||||
height: 14px;
|
||||
width: 7px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.timer-container .loader-half.left {
|
||||
border-radius: 14px 0 0 14px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.timer-container .loader-half.right {
|
||||
margin-left: 7px;
|
||||
background-color: #c0d4a6;
|
||||
}
|
||||
|
||||
.timer-container .loader-half.dark{
|
||||
background-color: #c0d4a6;
|
||||
}
|
||||
|
||||
.timer-container .movement{
|
||||
float: left;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.timer-container .movement.left {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.timer-container .movement.right{
|
||||
transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.timer-container .timer-button{
|
||||
cursor: pointer;
|
||||
text-decotation: underline;
|
||||
margin: 11px 0 0 38px;
|
||||
width: 15px;
|
||||
float: left;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
.timer-container .timer-button.pause{
|
||||
background: url(/images/pause.png) no-repeat ;
|
||||
}
|
||||
|
||||
.timer-container .timer-button.play{
|
||||
background: url(/images/start.png) no-repeat;
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
|||
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
exec (VESTA_CMD."v-delete-cron-vesta-autoupdate", $output, $return_var);
|
||||
$_SESSION['error_msg'] = __('Autoupdate has been susscessfully disabled');
|
||||
$_SESSION['error_msg'] = __('Autoupdate has been successfully disabled');
|
||||
unset($output);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,72 +3,69 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'BACKUP EXCLUSIONS';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Edit as someone else?
|
||||
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
||||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// List backup exclustions
|
||||
exec (VESTA_CMD."v-list-user-backup-exclusions ".$user." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $user;
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
foreach ($data['WEB'] as $key => $value) {
|
||||
// Parse web
|
||||
$v_username = $user;
|
||||
foreach ($data['WEB'] as $key => $value) {
|
||||
if (!empty($value)){
|
||||
$v_web .= $key . ":" . $value. "\n";
|
||||
} else {
|
||||
$v_web .= $key . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data['DNS'] as $key => $value) {
|
||||
// Parse dns
|
||||
foreach ($data['DNS'] as $key => $value) {
|
||||
if (!empty($value)){
|
||||
$v_dns .= $key . ":" . $value. "\n";
|
||||
} else {
|
||||
$v_dns .= $key . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data['MAIL'] as $key => $value) {
|
||||
// Parse mail
|
||||
foreach ($data['MAIL'] as $key => $value) {
|
||||
if (!empty($value)){
|
||||
$v_mail .= $key . ":" . $value. "\n";
|
||||
} else {
|
||||
$v_mail .= $key . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data['DB'] as $key => $value) {
|
||||
// Parse databases
|
||||
foreach ($data['DB'] as $key => $value) {
|
||||
if (!empty($value)){
|
||||
$v_db .= $key . ":" . $value. "\n";
|
||||
} else {
|
||||
$v_db .= $key . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($data['USER'] as $key => $value) {
|
||||
// Parse user directories
|
||||
foreach ($data['USER'] as $key => $value) {
|
||||
if (!empty($value)){
|
||||
$v_userdir .= $key . ":" . $value. "\n";
|
||||
} else {
|
||||
$v_userdir .= $key . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
}
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_web = $_POST['v_web'];
|
||||
$v_web_tmp = str_replace("\r\n", ",", $_POST['v_web']);
|
||||
$v_web_tmp = rtrim($v_web_tmp, ",");
|
||||
|
@ -99,20 +96,36 @@ if (empty($_SESSION['error_msg'])) {
|
|||
$v_userdir_tmp = rtrim($v_userdir_tmp, ",");
|
||||
$v_userdir_tmp = "USER=" . escapeshellarg($v_userdir_tmp);
|
||||
|
||||
// Create temporary exeption list on a filesystem
|
||||
exec ('mktemp', $mktemp_output, $return_var);
|
||||
$tmp = $mktemp_output[0];
|
||||
$fp = fopen($tmp, 'w');
|
||||
fwrite($fp, $v_web_tmp . "\n" . $v_dns_tmp . "\n" . $v_mail_tmp . "\n" . $v_db_tmp . "\n" . $v_userdir_tmp . "\n");
|
||||
fclose($fp);
|
||||
unset($mktemp_output);
|
||||
|
||||
// Save changes
|
||||
exec (VESTA_CMD."v-update-user-backup-exclusions ".$user." ".$tmp, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __("Changes has been saved.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_backup_exclusions.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
|
|
@ -3,73 +3,79 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'CRON';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Edit as someone else?
|
||||
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
||||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// Check job id
|
||||
if (empty($_GET['job'])) {
|
||||
header("Location: /list/cron/");
|
||||
exit;
|
||||
}
|
||||
|
||||
// List cron job
|
||||
$v_job = escapeshellarg($_GET['job']);
|
||||
exec (VESTA_CMD."v-list-cron-job ".$user." ".$v_job." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse cron job
|
||||
$v_username = $user;
|
||||
$v_job = $_GET['job'];
|
||||
$v_min = $data[$v_job]['MIN'];
|
||||
$v_hour = $data[$v_job]['HOUR'];
|
||||
$v_day = $data[$v_job]['DAY'];
|
||||
$v_month = $data[$v_job]['MONTH'];
|
||||
$v_wday = $data[$v_job]['WDAY'];
|
||||
$v_cmd = $data[$v_job]['CMD'];
|
||||
$v_date = $data[$v_job]['DATE'];
|
||||
$v_time = $data[$v_job]['TIME'];
|
||||
$v_suspended = $data[$v_job]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_username = $user;
|
||||
$v_min = escapeshellarg($_POST['v_min']);
|
||||
$v_hour = escapeshellarg($_POST['v_hour']);
|
||||
$v_day = escapeshellarg($_POST['v_day']);
|
||||
$v_month = escapeshellarg($_POST['v_month']);
|
||||
$v_wday = escapeshellarg($_POST['v_wday']);
|
||||
$v_cmd = escapeshellarg($_POST['v_cmd']);
|
||||
|
||||
// Save changes
|
||||
exec (VESTA_CMD."v-change-cron-job ".$v_username." ".$v_job." ".$v_min." ".$v_hour." ".$v_day." ".$v_month." ".$v_wday." ".$v_cmd, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
|
||||
$v_cmd = $_POST['v_cmd'];
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __("Changes has been saved.");
|
||||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Edit as someone else?
|
||||
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
||||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// Check user argument?
|
||||
if (empty($_GET['job'])) {
|
||||
header("Location: /list/cron/");
|
||||
exit;
|
||||
}
|
||||
|
||||
$v_job = escapeshellarg($_GET['job']);
|
||||
exec (VESTA_CMD."v-list-cron-job ".$user." ".$v_job." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $user;
|
||||
$v_job = $_GET['job'];
|
||||
$v_min = $data[$v_job]['MIN'];
|
||||
$v_hour = $data[$v_job]['HOUR'];
|
||||
$v_day = $data[$v_job]['DAY'];
|
||||
$v_month = $data[$v_job]['MONTH'];
|
||||
$v_wday = $data[$v_job]['WDAY'];
|
||||
$v_cmd = $data[$v_job]['CMD'];
|
||||
$v_date = $data[$v_job]['DATE'];
|
||||
$v_time = $data[$v_job]['TIME'];
|
||||
$v_suspended = $data[$v_job]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_username = $user;
|
||||
// Change job
|
||||
if (($v_min != $_POST['v_min']) || ($v_hour != $_POST['v_hour']) || ($v_day != $_POST['v_day']) || ($v_month != $_POST['v_month']) || ($v_wday != $_POST['v_wday']) || ($v_cmd != $_POST['v_cmd']) &&(empty($_SESSION['error_msg']))) {
|
||||
$v_min = escapeshellarg($_POST['v_min']);
|
||||
$v_hour = escapeshellarg($_POST['v_hour']);
|
||||
$v_day = escapeshellarg($_POST['v_day']);
|
||||
$v_month = escapeshellarg($_POST['v_month']);
|
||||
$v_wday = escapeshellarg($_POST['v_wday']);
|
||||
$v_cmd = escapeshellarg($_POST['v_cmd']);
|
||||
exec (VESTA_CMD."v-change-cron-job ".$v_username." ".$v_job." ".$v_min." ".$v_hour." ".$v_day." ".$v_month." ".$v_wday." ".$v_cmd, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_cmd = $_POST['v_cmd'];
|
||||
}
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __("Changes has been saved.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_cron.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'DB';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
|
@ -13,6 +13,7 @@ include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
|||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check database id
|
||||
if (empty($_GET['database'])) {
|
||||
header("Location: /list/db/");
|
||||
exit;
|
||||
|
@ -23,69 +24,63 @@ if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
|||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// List datbase
|
||||
$v_database = escapeshellarg($_GET['database']);
|
||||
exec (VESTA_CMD."v-list-database ".$user." ".$v_database." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $user;
|
||||
$v_database = $_GET['database'];
|
||||
$v_dbuser = $data[$v_database]['DBUSER'];
|
||||
$v_password = "••••••••";
|
||||
$v_host = $data[$v_database]['HOST'];
|
||||
$v_type = $data[$v_database]['TYPE'];
|
||||
$v_charset = $data[$v_database]['CHARSET'];
|
||||
$v_date = $data[$v_database]['DATE'];
|
||||
$v_time = $data[$v_database]['TIME'];
|
||||
$v_suspended = $data[$v_database]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse database
|
||||
$v_username = $user;
|
||||
$v_database = $_GET['database'];
|
||||
$v_dbuser = $data[$v_database]['DBUSER'];
|
||||
$v_password = "••••••••";
|
||||
$v_host = $data[$v_database]['HOST'];
|
||||
$v_type = $data[$v_database]['TYPE'];
|
||||
$v_charset = $data[$v_database]['CHARSET'];
|
||||
$v_date = $data[$v_database]['DATE'];
|
||||
$v_time = $data[$v_database]['TIME'];
|
||||
$v_suspended = $data[$v_database]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_username = $user;
|
||||
|
||||
// Change database username
|
||||
// Change database user
|
||||
if (($v_dbuser != $_POST['v_dbuser']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_dbuser = preg_replace("/^".$user."_/", "", $_POST['v_dbuser']);
|
||||
$v_dbuser = escapeshellarg($v_dbuser);
|
||||
if ($v_password != $_POST['v_password']) {
|
||||
// Change username and password
|
||||
$v_password = escapeshellarg($_POST['v_password']);
|
||||
exec (VESTA_CMD."v-change-database-user ".$v_username." ".$v_database." ".$v_dbuser." ".$v_password, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_dbuser = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_dbuser']);
|
||||
$v_password = "••••••••";
|
||||
$v_pw_changed = 'yes';
|
||||
} else {
|
||||
// Change only username
|
||||
exec (VESTA_CMD."v-change-database-user ".$v_username." ".$v_database." ".$v_dbuser, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_dbuser = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_dbuser']);
|
||||
}
|
||||
}
|
||||
|
||||
// Change only database password
|
||||
if (($v_password != $_POST['v_password']) && (!isset($v_pw_changed)) && (empty($_SESSION['error_msg']))) {
|
||||
// Change database password
|
||||
if (($v_password != $_POST['v_password']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_password = escapeshellarg($_POST['v_password']);
|
||||
exec (VESTA_CMD."v-change-database-password ".$v_username." ".$v_database." ".$v_password, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_password = "••••••••";
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_db.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
|
|
@ -3,17 +3,11 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'DNS';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check user argument?
|
||||
// Check domain name
|
||||
if (empty($_GET['domain'])) {
|
||||
header("Location: /list/dns/");
|
||||
exit;
|
||||
|
@ -24,14 +18,15 @@ if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
|||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// Check domain
|
||||
// List dns domain
|
||||
if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
||||
$v_domain = escapeshellarg($_GET['domain']);
|
||||
exec (VESTA_CMD."v-list-dns-domain ".$user." ".$v_domain." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse dns domain
|
||||
$v_username = $user;
|
||||
$v_domain = $_GET['domain'];
|
||||
$v_ip = $data[$v_domain]['IP'];
|
||||
|
@ -47,87 +42,23 @@ if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
|||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
|
||||
// List dns templates
|
||||
exec (VESTA_CMD."v-list-dns-templates json", $output, $return_var);
|
||||
$templates = 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-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$restart_dns = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Template
|
||||
if (( $_SESSION['user'] == 'admin') && ($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_template = escapeshellarg($_POST['v_template']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// SOA
|
||||
if (($v_soa != $_POST['v_soa']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_soa = escapeshellarg($_POST['v_soa']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-soa ".$v_username." ".$v_domain." ".$v_soa." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// EXP
|
||||
if (($v_exp != $_POST['v_exp']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_exp = escapeshellarg($_POST['v_exp']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-exp ".$v_username." ".$v_domain." ".$v_exp." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// TTL
|
||||
if (($v_ttl != $_POST['v_ttl']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ttl = escapeshellarg($_POST['v_ttl']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-ttl ".$v_username." ".$v_domain." ".$v_ttl." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Restart dns
|
||||
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns.html');
|
||||
} else {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_dns.html');
|
||||
}
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
} else {
|
||||
// List dns record
|
||||
if ((!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
||||
$v_domain = escapeshellarg($_GET['domain']);
|
||||
$v_record_id = escapeshellarg($_GET['record_id']);
|
||||
exec (VESTA_CMD."v-list-dns-records ".$user." ".$v_domain." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse dns record
|
||||
$v_username = $user;
|
||||
$v_domain = $_GET['domain'];
|
||||
$v_record_id = $_GET['record_id'];
|
||||
|
@ -143,44 +74,138 @@ if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
|||
}
|
||||
$v_date = $data[$v_record_id]['DATE'];
|
||||
$v_time = $data[$v_record_id]['TIME'];
|
||||
}
|
||||
|
||||
// Check POST request for dns domain
|
||||
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
|
||||
// Change domain IP
|
||||
if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$restart_dns = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
// Change domain template
|
||||
if (($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_template = escapeshellarg($_POST['v_template']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-tpl ".$v_username." ".$v_domain." ".$v_template." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Change SOA record
|
||||
if (($v_soa != $_POST['v_soa']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_soa = escapeshellarg($_POST['v_soa']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-soa ".$v_username." ".$v_domain." ".$v_soa." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Change expiriation date
|
||||
if (($v_exp != $_POST['v_exp']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_exp = escapeshellarg($_POST['v_exp']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-exp ".$v_username." ".$v_domain." ".$v_exp." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Change domain ttl
|
||||
if (($v_ttl != $_POST['v_ttl']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ttl = escapeshellarg($_POST['v_ttl']);
|
||||
exec (VESTA_CMD."v-change-dns-domain-ttl ".$v_username." ".$v_domain." ".$v_ttl." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Restart dns server
|
||||
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
|
||||
// Check POST request for dns record
|
||||
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
||||
// Protect input
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
$v_record_id = escapeshellarg($_POST['v_record_id']);
|
||||
|
||||
// Change dns record
|
||||
if (($v_val != $_POST['v_val']) || ($v_priority != $_POST['v_priority']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_val = escapeshellarg($_POST['v_val']);
|
||||
$v_priority = escapeshellarg($_POST['v_priority']);
|
||||
exec (VESTA_CMD."v-change-dns-record ".$v_username." ".$v_domain." ".$v_record_id." ".$v_val." ".$v_priority, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_val = $_POST['v_val'];
|
||||
$restart_dns = 'yes';
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Change dns record id
|
||||
if (($_GET['record_id'] != $_POST['v_record_id']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_old_record_id = escapeshellarg($_GET['record_id']);
|
||||
exec (VESTA_CMD."v-change-dns-record-id ".$v_username." ".$v_domain." ".$v_old_record_id." ".$v_record_id, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
|
||||
// Restart dns server
|
||||
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
|
||||
// Change url if record id was changed
|
||||
if ((empty($_SESSION['error_msg'])) && ($_GET['record_id'] != $_POST['v_record_id'])) {
|
||||
header("Location: /edit/dns/?domain=".$_GET['domain']."&record_id=".$_POST['v_record_id']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns_rec.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body for dns domain
|
||||
if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns.html');
|
||||
} else {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_dns.html');
|
||||
}
|
||||
}
|
||||
|
||||
// List dns record
|
||||
if ((!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
||||
// Display body for dns record
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns_rec.html');
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -3,56 +3,55 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'IP';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
// Check user
|
||||
if ($_SESSION['user'] != 'admin') {
|
||||
header("Location: /list/user");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
|
||||
// Check user argument?
|
||||
if (empty($_GET['ip'])) {
|
||||
// Check ip argument
|
||||
if (empty($_GET['ip'])) {
|
||||
header("Location: /list/ip/");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
$v_ip = escapeshellarg($_GET['ip']);
|
||||
exec (VESTA_CMD."v-list-sys-ip ".$v_ip." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $user;
|
||||
$v_ip = $_GET['ip'];
|
||||
$v_netmask = $data[$v_ip]['NETMASK'];
|
||||
$v_interace = $data[$v_ip]['INTERFACE'];
|
||||
$v_name = $data[$v_ip]['NAME'];
|
||||
$v_nat = $data[$v_ip]['NAT'];
|
||||
$v_ipstatus = $data[$v_ip]['STATUS'];
|
||||
if ($v_ipstatus == 'dedicated') $v_dedicated = 'yes';
|
||||
$v_owner = $data[$v_ip]['OWNER'];
|
||||
$v_date = $data[$v_ip]['DATE'];
|
||||
$v_time = $data[$v_ip]['TIME'];
|
||||
$v_suspended = $data[$v_ip]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
// List ip
|
||||
$v_ip = escapeshellarg($_GET['ip']);
|
||||
exec (VESTA_CMD."v-list-sys-ip ".$v_ip." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse ip
|
||||
$v_username = $user;
|
||||
$v_ip = $_GET['ip'];
|
||||
$v_netmask = $data[$v_ip]['NETMASK'];
|
||||
$v_interace = $data[$v_ip]['INTERFACE'];
|
||||
$v_name = $data[$v_ip]['NAME'];
|
||||
$v_nat = $data[$v_ip]['NAT'];
|
||||
$v_ipstatus = $data[$v_ip]['STATUS'];
|
||||
if ($v_ipstatus == 'dedicated') $v_dedicated = 'yes';
|
||||
$v_owner = $data[$v_ip]['OWNER'];
|
||||
$v_date = $data[$v_ip]['DATE'];
|
||||
$v_time = $data[$v_ip]['TIME'];
|
||||
$v_suspended = $data[$v_ip]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
}
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-users 'json'", $output, $return_var);
|
||||
$users = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List users
|
||||
exec (VESTA_CMD."v-list-sys-users 'json'", $output, $return_var);
|
||||
$users = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_username = $user;
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_ip = escapeshellarg($_POST['v_ip']);
|
||||
|
||||
// Change Status
|
||||
|
@ -78,7 +77,7 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Change Name
|
||||
// Change associated domain
|
||||
if (($v_name != $_POST['v_name']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_name = escapeshellarg($_POST['v_name']);
|
||||
exec (VESTA_CMD."v-change-sys-ip-name ".$v_ip." ".$v_name, $output, $return_var);
|
||||
|
@ -86,7 +85,7 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Change Nat
|
||||
// Change NAT address
|
||||
if (($v_nat != $_POST['v_nat']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_nat = escapeshellarg($_POST['v_nat']);
|
||||
exec (VESTA_CMD."v-change-sys-ip-nat ".$v_ip." ".$v_nat, $output, $return_var);
|
||||
|
@ -94,16 +93,24 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_ip.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_ip.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'MAIL';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
|
@ -13,7 +13,7 @@ include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
|||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check user argument?
|
||||
// Check domain argument
|
||||
if (empty($_GET['domain'])) {
|
||||
header("Location: /list/mail/");
|
||||
exit;
|
||||
|
@ -23,16 +23,16 @@ if (empty($_GET['domain'])) {
|
|||
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
||||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
$v_username = $user;
|
||||
|
||||
// Check domain
|
||||
// List mail domain
|
||||
if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
||||
$v_domain = escapeshellarg($_GET['domain']);
|
||||
exec (VESTA_CMD."v-list-mail-domain ".$user." ".$v_domain." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $user;
|
||||
|
||||
// Parse domain
|
||||
$v_domain = $_GET['domain'];
|
||||
$v_antispam = $data[$v_domain]['ANTISPAM'];
|
||||
$v_antivirus = $data[$v_domain]['ANTIVIRUS'];
|
||||
|
@ -46,92 +46,17 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
// Antispam
|
||||
if (($v_antispam == 'yes') && (empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-antispam ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antispam = 'no';
|
||||
unset($output);
|
||||
}
|
||||
if (($v_antispam == 'no') && (!empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-antispam ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antispam = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
// Antivirus
|
||||
if (($v_antivirus == 'yes') && (empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-antivirus ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antivirus = 'no';
|
||||
unset($output);
|
||||
}
|
||||
if (($v_antivirus == 'no') && (!empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-antivirus ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antivirus = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
|
||||
// DKIM
|
||||
if (($v_dkim == 'yes') && (empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-dkim ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_dkim = 'no';
|
||||
unset($output);
|
||||
}
|
||||
if (($v_dkim == 'no') && (!empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-dkim ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_dkim = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Catchall
|
||||
if ((!empty($v_catchall)) && (empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-catchall ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_catchall = '';
|
||||
unset($output);
|
||||
}
|
||||
if ((!empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
if ($v_catchall != $_POST['v_catchall']) {
|
||||
$v_catchall = escapeshellarg($_POST['v_catchall']);
|
||||
exec (VESTA_CMD."v-change-mail-domain-catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
if ((empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
$v_catchall = escapeshellarg($_POST['v_catchall']);
|
||||
exec (VESTA_CMD."v-add-mail-domain-catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_mail.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
} else {
|
||||
$v_username = $user;
|
||||
// List mail account
|
||||
if ((!empty($_GET['domain'])) && (!empty($_GET['account']))) {
|
||||
$v_domain = escapeshellarg($_GET['domain']);
|
||||
$v_account = escapeshellarg($_GET['account']);
|
||||
exec (VESTA_CMD."v-list-mail-account ".$user." ".$v_domain." ".$v_account." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse mail account
|
||||
$v_username = $user;
|
||||
$v_domain = $_GET['domain'];
|
||||
$v_account = $_GET['account'];
|
||||
|
@ -143,12 +68,6 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
$v_fwd_only = $data[$v_account]['FWD_ONLY'];
|
||||
$v_quota = $data[$v_account]['QUOTA'];
|
||||
$v_autoreply = $data[$v_account]['AUTOREPLY'];
|
||||
if ( $v_autoreply == 'yes' ) {
|
||||
exec (VESTA_CMD."v-list-mail-account-autoreply ".$user." '".$v_domain."' '".$v_account."' json", $output, $return_var);
|
||||
$autoreply_str = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_autoreply_message = $autoreply_str[$v_account]['MSG'];
|
||||
}
|
||||
$v_suspended = $data[$v_account]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
|
@ -157,13 +76,107 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
}
|
||||
$v_date = $data[$v_account]['DATE'];
|
||||
$v_time = $data[$v_account]['TIME'];
|
||||
|
||||
// Parse autoreply
|
||||
if ( $v_autoreply == 'yes' ) {
|
||||
exec (VESTA_CMD."v-list-mail-account-autoreply ".$user." '".$v_domain."' '".$v_account."' json", $output, $return_var);
|
||||
$autoreply_str = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_autoreply_message = $autoreply_str[$v_account]['MSG'];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check POST request for mail domain
|
||||
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
|
||||
// Delete antispam
|
||||
if (($v_antispam == 'yes') && (empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-antispam ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antispam = 'no';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
// Add antispam
|
||||
if (($v_antispam == 'no') && (!empty($_POST['v_antispam'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-antispam ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antispam = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Delete antivirus
|
||||
if (($v_antivirus == 'yes') && (empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-antivirus ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antivirus = 'no';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add antivirs
|
||||
if (($v_antivirus == 'no') && (!empty($_POST['v_antivirus'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-antivirus ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_antivirus = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Delete DKIM
|
||||
if (($v_dkim == 'yes') && (empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-dkim ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_dkim = 'no';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add DKIM
|
||||
if (($v_dkim == 'no') && (!empty($_POST['v_dkim'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-domain-dkim ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_dkim = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Delete catchall
|
||||
if ((!empty($v_catchall)) && (empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-domain-catchall ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$v_catchall = '';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Change catchall address
|
||||
if ((!empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
if ($v_catchall != $_POST['v_catchall']) {
|
||||
$v_catchall = escapeshellarg($_POST['v_catchall']);
|
||||
exec (VESTA_CMD."v-change-mail-domain-catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Add catchall
|
||||
if ((empty($v_catchall)) && (!empty($_POST['v_catchall'])) && (empty($_SESSION['error_msg']))) {
|
||||
$v_catchall = escapeshellarg($_POST['v_catchall']);
|
||||
exec (VESTA_CMD."v-add-mail-domain-catchall ".$v_username." ".$v_domain." ".$v_catchall, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
|
||||
// Check POST request for mail account
|
||||
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (!empty($_GET['account']))) {
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
$v_account = escapeshellarg($_POST['v_account']);
|
||||
// Password
|
||||
|
||||
// Change password
|
||||
if (($v_password != $_POST['v_password']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_password = escapeshellarg($_POST['v_password']);
|
||||
exec (VESTA_CMD."v-change-mail-account-password ".$v_username." ".$v_domain." ".$v_account." ".$v_password, $output, $return_var);
|
||||
|
@ -172,7 +185,7 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Quota
|
||||
// Change quota
|
||||
if (($v_quota != $_POST['v_quota']) && (empty($_SESSION['error_msg']))) {
|
||||
if (empty($_POST['v_quota'])) {
|
||||
$v_quota = 0;
|
||||
|
@ -184,7 +197,7 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Aliases
|
||||
// Change account aliases
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
|
||||
$waliases = preg_replace("/,/", " ", $waliases);
|
||||
|
@ -209,7 +222,8 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
}
|
||||
}
|
||||
}
|
||||
// Forwarders
|
||||
|
||||
// Change forwarders
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$wfwd = preg_replace("/\n/", " ", $_POST['v_fwd']);
|
||||
$wfwd = preg_replace("/,/", " ", $wfwd);
|
||||
|
@ -235,13 +249,15 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
}
|
||||
}
|
||||
|
||||
// FWD_ONLY flag
|
||||
// Delete FWD_ONLY flag
|
||||
if (($v_fwd_only == 'yes') && (empty($_POST['v_fwd_only'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-account-fwd-only ".$v_username." ".$v_domain." ".$v_account, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_fwd_only = '';
|
||||
}
|
||||
|
||||
// Add FWD_ONLY flag
|
||||
if (($v_fwd_only != 'yes') && (!empty($_POST['v_fwd_only'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-add-mail-account-fwd-only ".$v_username." ".$v_domain." ".$v_account, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -249,7 +265,7 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
$v_fwd_only = 'yes';
|
||||
}
|
||||
|
||||
// Autoreply
|
||||
// Delete autoreply
|
||||
if (($v_autoreply == 'yes') && (empty($_POST['v_autoreply'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-mail-account-autoreply ".$v_username." ".$v_domain." ".$v_account, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -257,19 +273,10 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
$v_autoreply = 'no';
|
||||
$v_autoreply_message = '';
|
||||
}
|
||||
if (($v_autoreply == 'yes') && (!empty($_POST['v_autoreply'])) && (empty($_SESSION['error_msg']))) {
|
||||
|
||||
// Add autoreply
|
||||
if ((!empty($_POST['v_autoreply'])) && (empty($_SESSION['error_msg']))) {
|
||||
if ( $v_autoreply_message != str_replace("\r\n", "\n", $_POST['v_autoreply_message'])) {
|
||||
$v_autoreply_message = str_replace("\r\n", "\n", $_POST['v_autoreply_message']);
|
||||
$v_autoreply_message = escapeshellarg($v_autoreply_message);
|
||||
exec (VESTA_CMD."v-add-mail-account-autoreply ".$v_username." ".$v_domain." ".$v_account." ".$v_autoreply_message, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_autoreply_message = $_POST['v_autoreply_message'];
|
||||
}
|
||||
}
|
||||
if (($v_autoreply == 'no') && (!empty($_POST['v_autoreply'])) && (empty($_SESSION['error_msg']))) {
|
||||
if (empty($_POST['v_autoreply_message'])) $_SESSION['error_msg'] = $_SESSION['error_msg'] = __('Field "%s" can not be blank.','atoreply');
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$v_autoreply_message = str_replace("\r\n", "\n", $_POST['v_autoreply_message']);
|
||||
$v_autoreply_message = escapeshellarg($v_autoreply_message);
|
||||
exec (VESTA_CMD."v-add-mail-account-autoreply ".$v_username." ".$v_domain." ".$v_account." ".$v_autoreply_message, $output, $return_var);
|
||||
|
@ -280,15 +287,25 @@ if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
|||
}
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_mail_acc.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Display body for mail domain
|
||||
if ((!empty($_GET['domain'])) && (empty($_GET['account']))) {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_mail.html');
|
||||
}
|
||||
|
||||
// Display body for mail account
|
||||
if ((!empty($_GET['domain'])) && (!empty($_GET['account']))) {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_mail_acc.html');
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -3,82 +3,81 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'PACKAGE';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
// Check user
|
||||
if ($_SESSION['user'] != 'admin') {
|
||||
header("Location: /list/user");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
|
||||
// Check user argument?
|
||||
if (empty($_GET['package'])) {
|
||||
// Check package argument
|
||||
if (empty($_GET['package'])) {
|
||||
header("Location: /list/package/");
|
||||
exit;
|
||||
}
|
||||
|
||||
$v_package = escapeshellarg($_GET['package']);
|
||||
exec (VESTA_CMD."v-list-user-package ".$v_package." 'json'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
$v_package = $_GET['package'];
|
||||
$v_web_template = $data[$v_package]['WEB_TEMPLATE'];
|
||||
$v_proxy_template = $data[$v_package]['PROXY_TEMPLATE'];
|
||||
$v_dns_template = $data[$v_package]['DNS_TEMPLATE'];
|
||||
$v_web_domains = $data[$v_package]['WEB_DOMAINS'];
|
||||
$v_web_aliases = $data[$v_package]['WEB_ALIASES'];
|
||||
$v_dns_domains = $data[$v_package]['DNS_DOMAINS'];
|
||||
$v_dns_records = $data[$v_package]['DNS_RECORDS'];
|
||||
$v_mail_domains = $data[$v_package]['MAIL_DOMAINS'];
|
||||
$v_mail_accounts = $data[$v_package]['MAIL_ACCOUNTS'];
|
||||
$v_databases = $data[$v_package]['DATABASES'];
|
||||
$v_cron_jobs = $data[$v_package]['CRON_JOBS'];
|
||||
$v_disk_quota = $data[$v_package]['DISK_QUOTA'];
|
||||
$v_bandwidth = $data[$v_package]['BANDWIDTH'];
|
||||
$v_shell = $data[$v_package]['SHELL'];
|
||||
$v_ns = $data[$v_package]['NS'];
|
||||
$nameservers = explode(", ", $v_ns);
|
||||
$v_ns1 = $nameservers[0];
|
||||
$v_ns2 = $nameservers[1];
|
||||
$v_ns3 = $nameservers[2];
|
||||
$v_ns4 = $nameservers[3];
|
||||
$v_backups = $data[$v_package]['BACKUPS'];
|
||||
$v_date = $data[$v_package]['DATE'];
|
||||
$v_time = $data[$v_package]['TIME'];
|
||||
$v_status = 'active';
|
||||
}
|
||||
|
||||
|
||||
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$web_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List package
|
||||
$v_package = escapeshellarg($_GET['package']);
|
||||
exec (VESTA_CMD."v-list-user-package ".$v_package." 'json'", $output, $return_var);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$proxy_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// Parse package
|
||||
$v_package = $_GET['package'];
|
||||
$v_web_template = $data[$v_package]['WEB_TEMPLATE'];
|
||||
$v_proxy_template = $data[$v_package]['PROXY_TEMPLATE'];
|
||||
$v_dns_template = $data[$v_package]['DNS_TEMPLATE'];
|
||||
$v_web_domains = $data[$v_package]['WEB_DOMAINS'];
|
||||
$v_web_aliases = $data[$v_package]['WEB_ALIASES'];
|
||||
$v_dns_domains = $data[$v_package]['DNS_DOMAINS'];
|
||||
$v_dns_records = $data[$v_package]['DNS_RECORDS'];
|
||||
$v_mail_domains = $data[$v_package]['MAIL_DOMAINS'];
|
||||
$v_mail_accounts = $data[$v_package]['MAIL_ACCOUNTS'];
|
||||
$v_databases = $data[$v_package]['DATABASES'];
|
||||
$v_cron_jobs = $data[$v_package]['CRON_JOBS'];
|
||||
$v_disk_quota = $data[$v_package]['DISK_QUOTA'];
|
||||
$v_bandwidth = $data[$v_package]['BANDWIDTH'];
|
||||
$v_shell = $data[$v_package]['SHELL'];
|
||||
$v_ns = $data[$v_package]['NS'];
|
||||
$nameservers = explode(", ", $v_ns);
|
||||
$v_ns1 = $nameservers[0];
|
||||
$v_ns2 = $nameservers[1];
|
||||
$v_ns3 = $nameservers[2];
|
||||
$v_ns4 = $nameservers[3];
|
||||
$v_backups = $data[$v_package]['BACKUPS'];
|
||||
$v_date = $data[$v_package]['DATE'];
|
||||
$v_time = $data[$v_package]['TIME'];
|
||||
$v_status = 'active';
|
||||
|
||||
exec (VESTA_CMD."v-list-dns-templates json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$dns_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List web templates
|
||||
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
||||
$web_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
check_error($return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List proxy templates
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
$proxy_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
// Check input
|
||||
// List dns templates
|
||||
exec (VESTA_CMD."v-list-dns-templates json", $output, $return_var);
|
||||
$dns_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List shels
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
|
||||
// Check empty fields
|
||||
if (empty($_POST['v_package'])) $errors[] = __('package');
|
||||
if (empty($_POST['v_web_template'])) $errors[] = __('web template');
|
||||
if (empty($_POST['v_proxy_template'])) $errors[] = __('proxy template');
|
||||
|
@ -97,6 +96,16 @@ if ($_SESSION['user'] == 'admin') {
|
|||
if (!isset($_POST['v_bandwidth'])) $errors[] = __('bandwidth');
|
||||
if (empty($_POST['v_ns1'])) $errors[] = __('ns1');
|
||||
if (empty($_POST['v_ns2'])) $errors[] = __('ns2');
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
// Protect input
|
||||
$v_package = escapeshellarg($_POST['v_package']);
|
||||
|
@ -126,22 +135,12 @@ if ($_SESSION['user'] == 'admin') {
|
|||
$v_time = escapeshellarg(date('H:i:s'));
|
||||
$v_date = escapeshellarg(date('Y-m-d'));
|
||||
|
||||
// Check for errors
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
$error_msg = $error;
|
||||
} else {
|
||||
$error_msg = $error_msg.", ".$error;
|
||||
}
|
||||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
} else {
|
||||
// Create temprorary directory
|
||||
exec ('mktemp -d', $output, $return_var);
|
||||
$tmpdir = $output[0];
|
||||
unset($output);
|
||||
|
||||
// Create package
|
||||
// Save package file on a fs
|
||||
$pkg = "WEB_TEMPLATE=".$v_web_template."\n";
|
||||
$pkg .= "PROXY_TEMPLATE=".$v_proxy_template."\n";
|
||||
$pkg .= "DNS_TEMPLATE=".$v_dns_template."\n";
|
||||
|
@ -160,20 +159,16 @@ if ($_SESSION['user'] == 'admin') {
|
|||
$pkg .= "BACKUPS=".$v_backups."\n";
|
||||
$pkg .= "TIME=".$v_time."\n";
|
||||
$pkg .= "DATE=".$v_date."\n";
|
||||
|
||||
// Write package
|
||||
$fp = fopen($tmpdir."/".$_POST['v_package'].".pkg", 'w');
|
||||
fwrite($fp, $pkg);
|
||||
fclose($fp);
|
||||
|
||||
// Rewrite package
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
// Save changes
|
||||
exec (VESTA_CMD."v-add-user-package ".$tmpdir." ".$v_package." 'yes'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Remove tmpdir
|
||||
// Remove temporary dir
|
||||
exec ('rm -rf '.$tmpdir, $output, $return_var);
|
||||
unset($output);
|
||||
|
||||
|
@ -182,17 +177,25 @@ if ($_SESSION['user'] == 'admin') {
|
|||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_package.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_package.html');
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -3,68 +3,76 @@
|
|||
error_reporting(NULL);
|
||||
ob_start();
|
||||
session_start();
|
||||
|
||||
$TAB = 'USER';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Are you admin?
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
|
||||
// Check user argument?
|
||||
if (empty($_GET['user'])) {
|
||||
// Check user argument
|
||||
if (empty($_GET['user'])) {
|
||||
header("Location: /list/user/");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Check user
|
||||
$v_username = escapeshellarg($_GET['user']);
|
||||
exec (VESTA_CMD."v-list-user ".$v_username." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_username = $_GET['user'];
|
||||
$v_password = "••••••••";
|
||||
$v_email = $data[$v_username]['CONTACT'];
|
||||
$v_package = $data[$v_username]['PACKAGE'];
|
||||
$v_language = $data[$v_username]['LANGUAGE'];
|
||||
$v_fname = $data[$v_username]['FNAME'];
|
||||
$v_lname = $data[$v_username]['LNAME'];
|
||||
$v_shell = $data[$v_username]['SHELL'];
|
||||
$v_ns = $data[$v_username]['NS'];
|
||||
$nameservers = explode(", ", $v_ns);
|
||||
$v_ns1 = $nameservers[0];
|
||||
$v_ns2 = $nameservers[1];
|
||||
$v_ns3 = $nameservers[2];
|
||||
$v_ns4 = $nameservers[3];
|
||||
$v_suspended = $data[$v_username]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
// Edit as someone else?
|
||||
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
||||
$user=$_GET['user'];
|
||||
$v_username=$_GET['user'];
|
||||
} else {
|
||||
$user=$_SESSION['user'];
|
||||
$v_username=$_SESSION['user'];
|
||||
}
|
||||
|
||||
// List user
|
||||
exec (VESTA_CMD."v-list-user ".$v_username." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse user
|
||||
$v_password = "••••••••";
|
||||
$v_email = $data[$v_username]['CONTACT'];
|
||||
$v_package = $data[$v_username]['PACKAGE'];
|
||||
$v_language = $data[$v_username]['LANGUAGE'];
|
||||
$v_fname = $data[$v_username]['FNAME'];
|
||||
$v_lname = $data[$v_username]['LNAME'];
|
||||
$v_shell = $data[$v_username]['SHELL'];
|
||||
$v_ns = $data[$v_username]['NS'];
|
||||
$nameservers = explode(", ", $v_ns);
|
||||
$v_ns1 = $nameservers[0];
|
||||
$v_ns2 = $nameservers[1];
|
||||
$v_ns3 = $nameservers[2];
|
||||
$v_ns4 = $nameservers[3];
|
||||
$v_suspended = $data[$v_username]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
$v_time = $data[$v_username]['TIME'];
|
||||
$v_date = $data[$v_username]['DATE'];
|
||||
}
|
||||
$v_time = $data[$v_username]['TIME'];
|
||||
$v_date = $data[$v_username]['DATE'];
|
||||
|
||||
exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
|
||||
$packages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List packages
|
||||
exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
|
||||
$packages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
// List lanugages
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
}
|
||||
// List shells
|
||||
exec (VESTA_CMD."v-list-sys-shells json", $output, $return_var);
|
||||
$shells = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_username = escapeshellarg($_POST['v_username']);
|
||||
// Are you admin?
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
|
||||
// Change password
|
||||
if (($v_password != $_POST['v_password']) && (empty($_SESSION['error_msg']))) {
|
||||
|
@ -75,8 +83,8 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Change package
|
||||
if (($v_package != $_POST['v_package']) && (empty($_SESSION['error_msg']))) {
|
||||
// Change package (admin only)
|
||||
if (($v_package != $_POST['v_package']) && ($_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
|
||||
$v_package = escapeshellarg($_POST['v_package']);
|
||||
exec (VESTA_CMD."v-change-user-package ".$v_username." ".$v_package, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -92,8 +100,8 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Change shell
|
||||
if (($v_shell != $_POST['v_shell']) && (empty($_SESSION['error_msg']))) {
|
||||
// Change shell (admin only)
|
||||
if (($v_shell != $_POST['v_shell']) && ($_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
|
||||
$v_shell = escapeshellarg($_POST['v_shell']);
|
||||
exec (VESTA_CMD."v-change-user-shell ".$v_username." ".$v_shell, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -102,19 +110,19 @@ if ($_SESSION['user'] == 'admin') {
|
|||
|
||||
// Change contact email
|
||||
if (($v_email != $_POST['v_email']) && (empty($_SESSION['error_msg']))) {
|
||||
// Validate email
|
||||
if (!filter_var($_POST['v_email'], FILTER_VALIDATE_EMAIL)) {
|
||||
$_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
} else {
|
||||
$v_email = escapeshellarg($_POST['v_email']);
|
||||
exec (VESTA_CMD."v-change-user-contact ".$v_username." ".$v_email, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Change Name
|
||||
if (($v_fname != $_POST['v_fname']) || ($v_lname != $_POST['v_lname']) && (empty($_SESSION['error_msg']))) {
|
||||
// Change full name (admin only)
|
||||
if (($v_fname != $_POST['v_fname']) || ($v_lname != $_POST['v_lname'])) {
|
||||
if (($_SESSION['user'] == 'admin') && (empty($_SESSION['error_msg']))) {
|
||||
$v_fname = escapeshellarg($_POST['v_fname']);
|
||||
$v_lname = escapeshellarg($_POST['v_lname']);
|
||||
exec (VESTA_CMD."v-change-user-name ".$v_username." ".$v_fname." ".$v_lname, $output, $return_var);
|
||||
|
@ -123,97 +131,6 @@ if ($_SESSION['user'] == 'admin') {
|
|||
$v_fname = $_POST['v_fname'];
|
||||
$v_lname = $_POST['v_lname'];
|
||||
}
|
||||
|
||||
// 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;
|
||||
exec ($ns_cmd, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_user.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
} else {
|
||||
// Check user argument?
|
||||
if (empty($_GET['user'])) {
|
||||
header("Location: /list/user/");
|
||||
exit;
|
||||
}
|
||||
|
||||
// Check user
|
||||
$v_username = $user;
|
||||
exec (VESTA_CMD."v-list-user ".$v_username." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
$v_password = "••••••••";
|
||||
$v_email = $data[$v_username]['CONTACT'];
|
||||
$v_fname = $data[$v_username]['FNAME'];
|
||||
$v_lname = $data[$v_username]['LNAME'];
|
||||
$v_language = $data[$v_username]['LANGUAGE'];
|
||||
$v_ns = $data[$v_username]['NS'];
|
||||
$nameservers = explode(", ", $v_ns);
|
||||
$v_ns1 = $nameservers[0];
|
||||
$v_ns2 = $nameservers[1];
|
||||
$v_ns3 = $nameservers[2];
|
||||
$v_ns4 = $nameservers[3];
|
||||
$v_suspended = $data[$v_username]['SUSPENDED'];
|
||||
if ( $v_suspended == 'yes' ) {
|
||||
$v_status = 'suspended';
|
||||
} else {
|
||||
$v_status = 'active';
|
||||
}
|
||||
$v_time = $data[$v_username]['TIME'];
|
||||
$v_date = $data[$v_username]['DATE'];
|
||||
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
}
|
||||
|
||||
// Action
|
||||
if (!empty($_POST['save'])) {
|
||||
// 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);
|
||||
check_return_code($return_var,$output);
|
||||
$v_password = "••••••••";
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Change language
|
||||
if (($v_language != $_POST['v_language']) && (empty($_SESSION['error_msg']))) {
|
||||
$v_language = escapeshellarg($_POST['v_language']);
|
||||
exec (VESTA_CMD."v-change-user-language ".$v_username." ".$v_language, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) $_SESSION['language'] = $_POST['v_language'];
|
||||
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);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Change NameServers
|
||||
|
@ -230,17 +147,25 @@ if ($_SESSION['user'] == 'admin') {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
}
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_user.html');
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
}
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_user.html');
|
||||
} else {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_user.html');
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
|
@ -4,17 +4,11 @@ error_reporting(NULL);
|
|||
ob_start();
|
||||
session_start();
|
||||
unset($_SESSION['error_msg']);
|
||||
|
||||
$TAB = 'WEB';
|
||||
|
||||
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Check user argument?
|
||||
// Check domain argument
|
||||
if (empty($_GET['domain'])) {
|
||||
header("Location: /list/web/");
|
||||
exit;
|
||||
|
@ -25,73 +19,77 @@ if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
|||
$user=escapeshellarg($_GET['user']);
|
||||
}
|
||||
|
||||
// Check domain
|
||||
// List domain
|
||||
$v_domain = escapeshellarg($_GET['domain']);
|
||||
exec (VESTA_CMD."v-list-web-domain ".$user." ".$v_domain." json", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$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' ) {
|
||||
$data = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Parse domain
|
||||
$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_proxy = $data[$v_domain]['PROXY'];
|
||||
$v_proxy_template = $data[$v_domain]['PROXY'];
|
||||
$v_proxy_ext = str_replace(',', ', ', $data[$v_domain]['PROXY_EXT']);
|
||||
$v_stats = $data[$v_domain]['STATS'];
|
||||
$v_stats_user = $data[$v_domain]['STATS_USER'];
|
||||
if (!empty($v_stats_user)) $v_stats_password = "••••••••";
|
||||
$v_ftp_user = $data[$v_domain]['FTP_USER'];
|
||||
if (!empty($v_ftp_user)) $v_ftp_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 json", $output, $return_var);
|
||||
$templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
$proxy_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
|
||||
$v_ssl_home = $data[$v_domain]['SSL_HOME'];
|
||||
$v_proxy = $data[$v_domain]['PROXY'];
|
||||
$v_proxy_template = $data[$v_domain]['PROXY'];
|
||||
$v_proxy_ext = str_replace(',', ', ', $data[$v_domain]['PROXY_EXT']);
|
||||
$v_stats = $data[$v_domain]['STATS'];
|
||||
$v_stats_user = $data[$v_domain]['STATS_USER'];
|
||||
if (!empty($v_stats_user)) $v_stats_password = "••••••••";
|
||||
$v_ftp_user = $data[$v_domain]['FTP_USER'];
|
||||
if (!empty($v_ftp_user)) $v_ftp_password = "••••••••";
|
||||
$v_ftp_user_prepath = $data[$v_domain]['DOCUMENT_ROOT'];
|
||||
$v_ftp_user_prepath = str_replace('/public_html', '', $v_ftp_user_prepath, $occurance = 1);
|
||||
$v_ftp_email = $panel[$user]['CONTACT'];
|
||||
$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'];
|
||||
|
||||
// List ip addresses
|
||||
exec (VESTA_CMD."v-list-user-ips ".$user." json", $output, $return_var);
|
||||
$ips = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List web templates
|
||||
exec (VESTA_CMD."v-list-web-templates json", $output, $return_var);
|
||||
$templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List proxy templates
|
||||
exec (VESTA_CMD."v-list-web-templates-proxy json", $output, $return_var);
|
||||
$proxy_templates = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List web stat engines
|
||||
exec (VESTA_CMD."v-list-web-stats json", $output, $return_var);
|
||||
$stats = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Check POST request
|
||||
if (!empty($_POST['save'])) {
|
||||
$v_domain = escapeshellarg($_POST['v_domain']);
|
||||
|
||||
// IP
|
||||
// Change web 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);
|
||||
|
@ -99,27 +97,36 @@ if (!empty($_POST['save'])) {
|
|||
$restart_web = 'yes';
|
||||
$restart_proxy = 'yes';
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Chane dns domain IP
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
exec (VESTA_CMD."v-list-dns-domain ".$v_username." ".$v_domain." json", $output, $return_var);
|
||||
if ((empty($_SESSION['error_msg'])) && ($return_var == 0 )) {
|
||||
unset($output);
|
||||
if ($return_var == 0 ) {
|
||||
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." ".$v_domain." ".$v_ip." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
$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);
|
||||
check_return_code($return_var,$output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Template
|
||||
if (( $_SESSION['user'] == 'admin') && ($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
|
||||
// Change dns ip for each alias
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
foreach($valiases as $v_alias ){
|
||||
exec (VESTA_CMD."v-list-dns-domain ".$v_username." '".$v_alias."' json", $output, $return_var);
|
||||
unset($output);
|
||||
if ($return_var == 0 ) {
|
||||
exec (VESTA_CMD."v-change-dns-domain-ip ".$v_username." '".$v_alias."' ".$v_ip, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Change template (admin only)
|
||||
if (($v_template != $_POST['v_template']) && ( $_SESSION['user'] == 'admin') && (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);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -127,7 +134,7 @@ if (!empty($_POST['save'])) {
|
|||
$restart_web = 'yes';
|
||||
}
|
||||
|
||||
// Aliases
|
||||
// Change aliases
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$waliases = preg_replace("/\n/", " ", $_POST['v_aliases']);
|
||||
$waliases = preg_replace("/,/", " ", $waliases);
|
||||
|
@ -151,9 +158,9 @@ if (!empty($_POST['save'])) {
|
|||
if ($return_var == 0) {
|
||||
exec (VESTA_CMD."v-delete-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -173,15 +180,15 @@ if (!empty($_POST['save'])) {
|
|||
if ($return_var == 0) {
|
||||
exec (VESTA_CMD."v-add-dns-on-web-alias ".$v_username." ".$v_domain." '".$alias."' 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$restart_dns = 'yes';
|
||||
}
|
||||
}
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Proxy
|
||||
// Delete proxy support
|
||||
if ((!empty($v_proxy)) && (empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-web-domain-proxy ".$v_username." ".$v_domain." 'no'", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -189,6 +196,8 @@ if (!empty($_POST['save'])) {
|
|||
unset($v_proxy);
|
||||
$restart_proxy = 'yes';
|
||||
}
|
||||
|
||||
// Change proxy template / Update extention list
|
||||
if ((!empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
|
||||
$ext = preg_replace("/\n/", " ", $_POST['v_proxy_ext']);
|
||||
$ext = preg_replace("/,/", " ", $ext);
|
||||
|
@ -205,6 +214,8 @@ if (!empty($_POST['save'])) {
|
|||
$restart_proxy = 'yes';
|
||||
}
|
||||
}
|
||||
|
||||
// Add proxy support
|
||||
if ((empty($v_proxy)) && (!empty($_POST['v_proxy'])) && (empty($_SESSION['error_msg']))) {
|
||||
$v_proxy_template = $_POST['v_proxy_template'];
|
||||
if (!empty($_POST['v_proxy_ext'])) {
|
||||
|
@ -221,7 +232,7 @@ if (!empty($_POST['save'])) {
|
|||
$restart_proxy = 'yes';
|
||||
}
|
||||
|
||||
// SSL
|
||||
// Delete SSL certificate
|
||||
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);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -230,6 +241,8 @@ if (!empty($_POST['save'])) {
|
|||
$restart_web = 'yes';
|
||||
$restart_proxy = 'yes';
|
||||
}
|
||||
|
||||
// Change SSL certificate
|
||||
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);
|
||||
|
@ -269,15 +282,8 @@ if (!empty($_POST['save'])) {
|
|||
$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);
|
||||
check_return_code($return_var,$output);
|
||||
$v_ssl_home = $_POST['v_ssl_home'];
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Add SSL certificate
|
||||
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';
|
||||
|
@ -329,19 +335,34 @@ if (!empty($_POST['save'])) {
|
|||
}
|
||||
}
|
||||
|
||||
// Web Stats
|
||||
// Change document root for ssl domain
|
||||
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);
|
||||
check_return_code($return_var,$output);
|
||||
$v_ssl_home = $_POST['v_ssl_home'];
|
||||
unset($output);
|
||||
}
|
||||
}
|
||||
|
||||
// Delete 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);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_stats = '';
|
||||
}
|
||||
|
||||
// Change web stats engine
|
||||
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);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Add web stats
|
||||
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);
|
||||
|
@ -349,7 +370,7 @@ if (!empty($_POST['save'])) {
|
|||
unset($output);
|
||||
}
|
||||
|
||||
// Web Stats Auth
|
||||
// Delete web stats authorization
|
||||
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);
|
||||
check_return_code($return_var,$output);
|
||||
|
@ -357,6 +378,8 @@ if (!empty($_POST['save'])) {
|
|||
$v_stats_user = '';
|
||||
$v_stats_password = '';
|
||||
}
|
||||
|
||||
// Change web stats user or 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');
|
||||
|
@ -378,6 +401,8 @@ if (!empty($_POST['save'])) {
|
|||
$v_stats_password = "••••••••";
|
||||
}
|
||||
}
|
||||
|
||||
// Add web stats authorization
|
||||
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');
|
||||
|
@ -401,20 +426,15 @@ if (!empty($_POST['save'])) {
|
|||
}
|
||||
}
|
||||
|
||||
// Delete FTP Account
|
||||
if ((!empty($v_ftp_user)) && (empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_ftp= '';
|
||||
$v_ftp_user = '';
|
||||
$v_ftp_password = '';
|
||||
}
|
||||
|
||||
// Change FTP Account
|
||||
if ((!empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
if (empty($_POST['v_ftp_user'])) $errors[] = __('ftp user');
|
||||
if (empty($_POST['v_ftp_password'])) $errors[] = __('ftp user password');
|
||||
// Change ftp accounts
|
||||
if (!empty($_POST['v_ftp_user'])) {
|
||||
$v_ftp_users_updated = array();
|
||||
foreach ($_POST['v_ftp_user'] as $i => $v_ftp_user_data) {
|
||||
$v_ftp_user_data['v_ftp_user'] = preg_replace("/^".$user."_/i", "", $v_ftp_user_data['v_ftp_user']);
|
||||
if ($v_ftp_user_data['is_new'] == 1) {
|
||||
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (!filter_var($v_ftp_user_data['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = 'ftp user';
|
||||
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = 'ftp user password';
|
||||
if (!empty($errors[0])) {
|
||||
foreach ($errors as $i => $error) {
|
||||
if ( $i == 0 ) {
|
||||
|
@ -425,88 +445,184 @@ if (!empty($_POST['save'])) {
|
|||
}
|
||||
$_SESSION['error_msg'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
if (($v_ftp_user != $_POST['v_ftp_user']) || ($_POST['v_ftp_password'] != "••••••••" ) && (empty($_SESSION['error_msg']))) {
|
||||
$v_ftp_user = preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
|
||||
$v_ftp_user = escapeshellarg($v_ftp_user);
|
||||
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
|
||||
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
$v_ftp= '';
|
||||
$v_ftp_user = $user."_".preg_replace("/^".$user."_/", "", $_POST['v_ftp_user']);
|
||||
$v_ftp_password = "••••••••";
|
||||
}
|
||||
}
|
||||
|
||||
// Add FTP Account
|
||||
if ((empty($v_ftp_user)) && (!empty($_POST['v_ftp'])) && (empty($_SESSION['error_msg']))) {
|
||||
if ((!empty($_POST['v_ftp_email'])) && (!filter_var($_POST['v_ftp_email'], FILTER_VALIDATE_EMAIL))) $_SESSION['error_msg'] = __('Please enter valid email address.');
|
||||
if (empty($_POST['v_ftp_user'])) $errors[] = 'ftp user';
|
||||
if (empty($_POST['v_ftp_password'])) $errors[] = 'ftp user 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'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
$v_ftp_username = $v_ftp_user_data['v_ftp_user'];
|
||||
$v_ftp_username_full = $user . '_' . $v_ftp_user_data['v_ftp_user'];
|
||||
$v_ftp_user = escapeshellarg($v_ftp_username);
|
||||
$v_ftp_password = escapeshellarg($v_ftp_user_data['v_ftp_password']);
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$v_ftp_user = escapeshellarg($_POST['v_ftp_user']);
|
||||
$v_ftp_password = escapeshellarg($_POST['v_ftp_password']);
|
||||
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_user." ".$v_ftp_password, $output, $return_var);
|
||||
exec (VESTA_CMD."v-add-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_password . " " . $v_ftp_user_data['v_ftp_path'], $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
if ((!empty($_POST['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
|
||||
$to = $_POST['v_ftp_email'];
|
||||
if ((!empty($v_ftp_user_data['v_ftp_email'])) && (empty($_SESSION['error_msg']))) {
|
||||
$to = $v_ftp_user_data['v_ftp_email'];
|
||||
$subject = __("FTP login credentials");
|
||||
$hostname = exec('hostname');
|
||||
$from = __('MAIL_FROM',$hostname);
|
||||
$mailtext .= __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$_POST['v_ftp_user'],$_POST['v_ftp_password']);
|
||||
$mailtext = __('FTP_ACCOUNT_READY',$_GET['domain'],$user,$v_ftp_username,$v_ftp_user_data['v_ftp_password']);
|
||||
send_email($to, $subject, $mailtext, $from);
|
||||
unset($v_ftp_email);
|
||||
}
|
||||
unset($output);
|
||||
$v_ftp_user = $user."_".$_POST['v_ftp_user'];
|
||||
}
|
||||
|
||||
if ($return_var == 0) {
|
||||
$v_ftp_password = "••••••••";
|
||||
$v_ftp_user_data['is_new'] = 0;
|
||||
}
|
||||
else {
|
||||
$v_ftp_user_data['is_new'] = 1;
|
||||
}
|
||||
|
||||
$v_ftp_users_updated[] = array(
|
||||
'is_new' => empty($_SESSION['error_msg']) ? 0 : 1,
|
||||
'v_ftp_user' => $v_ftp_username_full,
|
||||
'v_ftp_password' => $v_ftp_password,
|
||||
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
|
||||
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if ($v_ftp_user_data['delete'] == 1) {
|
||||
$v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user'];
|
||||
exec (VESTA_CMD."v-delete-web-domain-ftp ".$v_username." ".$v_domain." ".$v_ftp_username, $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// Change FTP Account
|
||||
if (empty($v_ftp_user_data['v_ftp_user'])) $errors[] = __('ftp user');
|
||||
if (empty($v_ftp_user_data['v_ftp_password'])) $errors[] = __('ftp user 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'] = __('Field "%s" can not be blank.',$error_msg);
|
||||
}
|
||||
|
||||
$v_ftp_username = $user . '_' . $v_ftp_user_data['v_ftp_user']; //preg_replace("/^".$user."_/", "", $v_ftp_user_data['v_ftp_user']);
|
||||
$v_ftp_username = escapeshellarg($v_ftp_username);
|
||||
$v_ftp_user_data['v_ftp_password'] = escapeshellarg(trim($v_ftp_user_data['v_ftp_password']));
|
||||
exec (VESTA_CMD."v-change-web-domain-ftp-path ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_path'], $output, $return_var);
|
||||
if ($v_ftp_user_data['v_ftp_password'] != "••••••••" && !empty($v_ftp_user_data['v_ftp_password'])) {
|
||||
exec (VESTA_CMD."v-change-web-domain-ftp-password ".$v_username." ".$v_domain." ".$v_ftp_username." ".$v_ftp_user_data['v_ftp_password'], $output, $return_var);
|
||||
}
|
||||
check_return_code($return_var, $output);
|
||||
unset($output);
|
||||
|
||||
$v_ftp_password = "••••••••";
|
||||
|
||||
$v_ftp_users_updated[] = array(
|
||||
'is_new' => 0,
|
||||
'v_ftp_user' => $v_ftp_username,
|
||||
'v_ftp_password' => $v_ftp_password,
|
||||
'v_ftp_path' => $v_ftp_user_data['v_ftp_path'],
|
||||
'v_ftp_email' => $v_ftp_user_data['v_ftp_email'],
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Restart web
|
||||
// Restart web server
|
||||
if (!empty($restart_web) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-web", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Restart proxy
|
||||
// Restart proxy server
|
||||
if (!empty($restart_proxy) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-proxy", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Restart dns
|
||||
// Restart dns server
|
||||
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
||||
exec (VESTA_CMD."v-restart-dns", $output, $return_var);
|
||||
check_return_code($return_var,$output);
|
||||
unset($output);
|
||||
}
|
||||
|
||||
// Set success message
|
||||
if (empty($_SESSION['error_msg'])) {
|
||||
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$v_ftp_users_raw = explode(':', $v_ftp_user);
|
||||
$v_ftp_users_paths_raw = explode(':', $data[$v_domain]['FTP_PATH']);
|
||||
$v_ftp_users = array();
|
||||
foreach ($v_ftp_users_raw as $v_ftp_user_index => $v_ftp_user_val) {
|
||||
if (empty($v_ftp_user_val)) {
|
||||
continue;
|
||||
}
|
||||
$v_ftp_users[] = array(
|
||||
'is_new' => 0,
|
||||
'v_ftp_user' => $v_ftp_user_val,
|
||||
'v_ftp_password' => $v_ftp_password,
|
||||
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
||||
'v_ftp_email' => $v_ftp_email,
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
}
|
||||
|
||||
if (empty($v_ftp_users)) {
|
||||
$v_ftp_user = null;
|
||||
$v_ftp_users[] = array(
|
||||
'is_new' => 1,
|
||||
'v_ftp_user' => '',
|
||||
'v_ftp_password' => '',
|
||||
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
||||
'v_ftp_email' => '',
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
}
|
||||
|
||||
// set default pre path for newly created users
|
||||
$v_ftp_pre_path_new_user = $v_ftp_user_prepath;
|
||||
if (isset($v_ftp_users_updated)) {
|
||||
$v_ftp_users = $v_ftp_users_updated;
|
||||
if (empty($v_ftp_users_updated)) {
|
||||
$v_ftp_user = null;
|
||||
$v_ftp_users[] = array(
|
||||
'is_new' => 1,
|
||||
'v_ftp_user' => '',
|
||||
'v_ftp_password' => '',
|
||||
'v_ftp_path' => (isset($v_ftp_users_paths_raw[$v_ftp_user_index]) ? $v_ftp_users_paths_raw[$v_ftp_user_index] : ''),
|
||||
'v_ftp_email' => '',
|
||||
'v_ftp_pre_path' => $v_ftp_user_prepath
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Header
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
||||
|
||||
// Panel
|
||||
top_panel($user,$TAB);
|
||||
|
||||
// Display body
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_web.html');
|
||||
} else {
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_web.html');
|
||||
}
|
||||
|
||||
// Flush session messages
|
||||
unset($_SESSION['error_msg']);
|
||||
unset($_SESSION['ok_msg']);
|
||||
|
||||
|
||||
// Footer
|
||||
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|
||||
|
|
BIN
web/images/db.png
Normal file
After Width: | Height: | Size: 181 B |
BIN
web/images/disabled_bg.png
Normal file
After Width: | Height: | Size: 194 B |
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 222 B |
BIN
web/images/folder.png
Normal file
After Width: | Height: | Size: 183 B |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
web/images/mail.png
Normal file
After Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 176 B |
BIN
web/images/pause.png
Normal file
After Width: | Height: | Size: 157 B |
BIN
web/images/stats.png
Normal file
After Width: | Height: | Size: 170 B |
443
web/inc/i18n/ar.php
Normal file
|
@ -0,0 +1,443 @@
|
|||
<?php
|
||||
/**
|
||||
* Vesta language file
|
||||
* skid (skid@vestacp.com)
|
||||
*/
|
||||
|
||||
$LANG['ar'] = array(
|
||||
'Packages' => 'الحزم',
|
||||
'IP' => 'بروتوكول إنترنت',
|
||||
'Graphs' => 'رسوم بيانية',
|
||||
'Statistics' => 'إحصائيات',
|
||||
'Log' => 'سجل',
|
||||
'Services' => 'خدمات',
|
||||
'Updates' => 'تحديثات',
|
||||
'Log in' => 'تسجيل الدخول',
|
||||
'Log out' => 'تسجيل الخروج',
|
||||
|
||||
'USER' => 'المستخدم',
|
||||
'WEB' => 'الشبكة',
|
||||
'DNS' => 'نظام أسماء النظاقات',
|
||||
'MAIL' => 'البريد',
|
||||
'DB' => 'قاعدة بيانات',
|
||||
'CRON' => 'مجدول الوظائف',
|
||||
'BACKUP' => 'النسخ الإحتياطية',
|
||||
|
||||
'Add User' => 'إضافة مستخدم',
|
||||
'Add Domain' => 'إضافة نطاق',
|
||||
'Add Web Domain' => 'إضافة نطاق شبكة',
|
||||
'Add DNS Domain' => 'تسجيل نطاق في النظام',
|
||||
'Add DNS Record' => 'إضافة سجل للنظام',
|
||||
'Add Mail Domain' => 'إضافة نطاق بريدي',
|
||||
'Add Mail Account' => 'إضافة حساب بريدي',
|
||||
'Add Database' => 'إضافة قاعدة بيانات',
|
||||
'Add Cron Job' => 'إضافة وظيفة مجدولة',
|
||||
'Create Backup' => 'إنشاء نسخة احتياطية',
|
||||
'Configure' => 'تهيئة',
|
||||
'Restore All' => 'استرجاع الكل',
|
||||
'Add Package' => 'إضافة رزمة',
|
||||
'Add IP' => 'إضافة بروتوكول إنترنت',
|
||||
'Search' => 'بحث',
|
||||
'Add one more FTP Account' => 'إضافة المزيد من حساب واحد',
|
||||
'Overall Statistics' => 'إحصائيات عامة',
|
||||
'Daily' => 'يومي',
|
||||
'Weekly' => 'أسبوعي',
|
||||
'Monthly' => 'شهري',
|
||||
'Yearly' => 'سنوي',
|
||||
'Add' => 'إضافة',
|
||||
'Back' => 'رجوع',
|
||||
'Save' => 'حفظ',
|
||||
'Submit' => 'تسليم',
|
||||
|
||||
'toggle all' => 'تبديل الجميع',
|
||||
'apply to selected' => 'تطبيق على ما تم اختياره',
|
||||
'rebuild' => 'إعادة إنشاء',
|
||||
'rebuild web' => 'إعادة إنشاء الشبكة',
|
||||
'rebuild dns' => 'إعادة إنشاء نظام أسماء النطاقات',
|
||||
'rebuild mail' => 'إعادة إنشاء البريد',
|
||||
'rebuild db' => 'إعادة إنشاء قاعدة البيانات',
|
||||
'rebuild cron' => 'إعادة إنشاء مجدول الوظائف',
|
||||
'update counters' => 'تحديث العدادات',
|
||||
'suspend' => 'تعليق',
|
||||
'unsuspend' => 'إلغاء التعليق',
|
||||
'delete' => 'حذف',
|
||||
'show per user' => 'عرض حسب المستخدم',
|
||||
'login as' => 'تسجيل الدخول ك',
|
||||
'logout' => 'تسجيل الخروج',
|
||||
'edit' => 'تعديل',
|
||||
'open webstats' => 'فتح احصائيات الشبكة',
|
||||
'view logs' => 'عرض السجلات',
|
||||
'list records' => 'عرض السجلات',
|
||||
'add record' => 'إضافة سجل',
|
||||
'list accounts' => 'عرض الحسابات',
|
||||
'add account' => 'إضافة حساب',
|
||||
'open webmail' => 'فتح شبكة البريد',
|
||||
'open %s' => 'فتح %s',
|
||||
'download' => 'تحميل',
|
||||
'restore' => 'استرجاع',
|
||||
'configure restore settings' => 'تهيئة إعدادات الاسترجاع',
|
||||
'stop' => 'إيقاف',
|
||||
'start' => 'بدء',
|
||||
'restart' => 'إعادة تشغيل',
|
||||
'update' => 'تحديث',
|
||||
'generate' => 'تكوين',
|
||||
'Generate CSR' => 'تكوين طلب توقيع شهادة',
|
||||
'reread IP' => 'إعادة قراءة بروتوكول الإنترنت',
|
||||
'enable autoupdate' => 'تمكين التحديث التلقائي',
|
||||
'disable autoupdate' => 'تعطيل التحديث التلقائي',
|
||||
|
||||
'Adding User' => 'جاري إضافة مستخدم',
|
||||
'Editing User' => 'جاري تعديل المستخدم',
|
||||
'Adding Domain' => 'جاري إضافة نطاق',
|
||||
'Editing Domain' => 'جاري تعديل النطاق',
|
||||
'Adding DNS Domain' => 'جاري إضافة نطاق للنظام',
|
||||
'Editing DNS Domain' => 'جاري تعديل النطاق بالنظام',
|
||||
'Adding DNS Record' => 'جاري إضافة سجل للنظام',
|
||||
'Editing DNS Record' => 'جاري تعديل السحجل بالنظام',
|
||||
'Adding Mail Domain' => 'جاري إضافة نطاق بريدي',
|
||||
'Editing Mail Domain' => 'جاري تعديل النظاق البريدي',
|
||||
'Adding Mail Account' => 'جاري إضافة حساب بريدي',
|
||||
'Editing Mail Account' => 'جاري تعديل الحساب البريدي',
|
||||
'Adding database' => 'جاري إضافة قاعدة بيانات',
|
||||
'Editing Cron Job' => 'جاري تعديل وظيفة مجدولة',
|
||||
'Adding Cron Job' => 'جاري إضافة وظيفة مجدولة',
|
||||
'Editing Database' => 'جاري تعديل قاعدة البيانات',
|
||||
'Adding Package' => 'جاري إضافة رزمة',
|
||||
'Editing Package' => 'جاري تعديل الرزمة',
|
||||
'Adding IP address' => 'جاري إضافة عنوان بروتوكول إنترنت',
|
||||
'Editing IP Address' => 'جاري تعديل عنوان بروتوكول إنترنت',
|
||||
'Editing Backup Exclusions' => 'جاري تعديل استثناءات النسخة الاحتياطية',
|
||||
'Generating CSR' => 'جاري إنشاء طلب توقيع شهادة',
|
||||
'Listing' => 'قائمة',
|
||||
'Search Results' => 'نتائج البحث',
|
||||
|
||||
'active' => 'نشط',
|
||||
'spnd' => 'معلق',
|
||||
'suspended' => 'معلق',
|
||||
'running' => 'يعمل',
|
||||
'stopped' => 'متوقف',
|
||||
'outdated' => 'نسخة قديمة',
|
||||
'updated' => 'محدث',
|
||||
|
||||
'yes' => 'نعم',
|
||||
'no' => 'لا',
|
||||
'none' => 'لا شيء',
|
||||
'pb' => 'pb',
|
||||
'tb' => 'tb',
|
||||
'gb' => 'gb',
|
||||
'mb' => 'mb',
|
||||
'minute' => 'دقيقة',
|
||||
'hour' => 'ساعة',
|
||||
'day' => 'يوم',
|
||||
'days' => 'أيام',
|
||||
'hours' => 'ساعات',
|
||||
'minutes' => 'دقائق',
|
||||
'month' => 'شهر',
|
||||
'package' => 'رزمة',
|
||||
'Bandwidth' => 'عرض النطاق',
|
||||
'Disk' => 'إسطوانة',
|
||||
'Web' => 'شبكة',
|
||||
'Mail' => 'بريد',
|
||||
'Databases' => 'قواعد بيانات',
|
||||
'User Directories' => 'مجلدات المستخدم',
|
||||
'Template' => 'نموذج',
|
||||
'Web Template' => 'أباتشي نموذج',
|
||||
'Proxy Template' => 'Nginx نموذج',
|
||||
'DNS Template' => 'نظام أسماء النطاقات نموذج',
|
||||
'Web Domains' => 'نطاقات الشبكة',
|
||||
'SSL Domains' => 'نطاقات آمنة',
|
||||
'Web Aliases' => 'اختصارات الشبكة',
|
||||
'per domain' => 'لكل نطاق',
|
||||
'DNS domains' => 'نطاقات النظام',
|
||||
'DNS domains' => 'نطاقات النظام',
|
||||
'DNS records' => 'سجلات النظام' ,
|
||||
'Name Servers' => 'خوادم الأسماء',
|
||||
'Mail Domains' => 'نطاقات البريد',
|
||||
'Mail Accounts' => 'حسابات البريد',
|
||||
'Cron Jobs' => 'الوظائق المجدولة',
|
||||
'SSH Access' => 'وصول بعيد آمن',
|
||||
'IP Addresses' => 'عنوان بروتوكول انترنت',
|
||||
'Backups' => 'نسخ احتياطية',
|
||||
'Backup System' => 'نظام النسخ الاحتياطي',
|
||||
'backup exclusions' => 'استثناءات النسخ الاحتياطي',
|
||||
'template' => 'نموذج',
|
||||
'SSL Support' => 'دعم طبقة المقبض الآمن',
|
||||
'SSL Home Directory' => 'المجلد الرئيسي لطبقة المقبض الآمن',
|
||||
'Proxy Support' => 'Nginx دعم',
|
||||
'Proxy Extensions' => 'Nginx إمتدادات',
|
||||
'Web Statistics' => 'إحصائيات الشبكة',
|
||||
'Additional FTP Account' => 'حساب بروتوكول نقل الملفات إضافي',
|
||||
'SOA' => 'هيكلية الخدمات الموجهة',
|
||||
'TTL' => 'الوقت المتبقي للخروج',
|
||||
'Expire' => 'تنقضي',
|
||||
'Records' => 'سجلات',
|
||||
'Catchall email' => 'حصل كل البريد',
|
||||
'AntiVirus Support' => 'دعم مضاد الفيروسات',
|
||||
'AntiSpam Support' => 'دعم مضاد البريد المزعج',
|
||||
'DKIM Support' => 'دعم مفاتيح النطاقات',
|
||||
'Accounts' => 'حسابات',
|
||||
'Quota' => 'حصة',
|
||||
'Autoreply' => 'الرد الآلي',
|
||||
'Forward to' => 'إعادة توجيه ل',
|
||||
'Do not store forwarded mail' => 'لا تحتفظ بنسخة من البريد المعاد توجيهه',
|
||||
'database' => 'قاعدة بيانات',
|
||||
'User' => 'مستخدم',
|
||||
'Host' => 'مضيف',
|
||||
'Charset' => 'حزمة نص',
|
||||
'Min' => 'دقيقة',
|
||||
'Hour' => 'ساعة',
|
||||
'Day' => 'يوم',
|
||||
'Month' => 'شهر',
|
||||
'Day of week' => 'اليوم في الإسبوع',
|
||||
'local' => 'محلي',
|
||||
'Run Time' => 'وقت التشغيل',
|
||||
'Backup Size' => 'حجم النسخة الاحتياطية',
|
||||
'SYS' => 'نظام',
|
||||
'Domains' => 'نطاقات',
|
||||
'Status' => 'حالة',
|
||||
'shared' => 'مشارك',
|
||||
'dedicated' => 'موجه',
|
||||
'Owner' => 'مالك',
|
||||
'Users' => 'مستخدمين',
|
||||
'Load Average' => 'متوسط التحميل',
|
||||
'Memory Usage' => 'استخدام الذاكرة',
|
||||
'HTTPD Usage' => 'استخدام نظام بروتوكول نقل النص التشعبي',
|
||||
'NGINX Usage' => 'NGINX استخدام',
|
||||
'MySQL Usage on localhost' => 'استخدام قاعدة بيانات MySql على المضيف المحلي',
|
||||
'PostgreSQL Usage on localhost' => 'PostgreSQL استخدام قاعدة بيانات على المضيف المحلي',
|
||||
'Bandwidth Usage eth0' => 'eth0 استخدام سعة النطاق على منفذ',
|
||||
'FTP Usage' => 'استخدام بروتوكول نقل الملفات',
|
||||
'SSH Usage' => 'استخدام الوصول البعيد الآمن',
|
||||
'reverse proxy' => 'الوكيل العكسي',
|
||||
'web server' => 'خادم الشبكة',
|
||||
'dns server' => 'خادم نظام أسماء النطاقات',
|
||||
'mail server' => 'خادم البريد',
|
||||
'pop/imap server' => 'pop/imap خادم',
|
||||
'email antivirus' => 'مضاد فيروسات البريد',
|
||||
'email antispam' => 'مضاد البريد المزعج',
|
||||
'database server' => 'خادم قاعدة البيانات',
|
||||
'ftp server' => 'خادم بروتوكول نقل الملفات',
|
||||
'job scheduler' => 'مجدول الوظائف',
|
||||
'CPU' => 'وحدة المعالجة المركزية',
|
||||
'Memory' => 'الذاكرة',
|
||||
'Uptime' => 'وقت التشغيل',
|
||||
'core package' => 'الرزمة الأساسية',
|
||||
'php interpreter' => 'php مترجم',
|
||||
'internal web server' => 'خادم الشبكة الداخلي',
|
||||
'Version' => 'إصدار',
|
||||
'Release' => 'نسخة',
|
||||
'Architecture' => 'هيكلية',
|
||||
'Object' => 'عنصر',
|
||||
'Owner' => 'مالك',
|
||||
'Username' => 'اسم المستخدم',
|
||||
'Password' => 'كلمة المرور',
|
||||
'Email' => 'بريد',
|
||||
'Package' => 'رزمة',
|
||||
'Language' => 'لغة',
|
||||
'First Name' => 'الإسم الأول',
|
||||
'Last Name' => 'الإسم الأخير',
|
||||
'Send login credentials to email address' => 'إرسال معلومات الدخول لعنوان البريد',
|
||||
'Default Template' => 'نموذج افتراضي',
|
||||
'Default Name Servers' => 'أسماء الخوادم الافتراضية',
|
||||
'Domain' => 'نطاق',
|
||||
'DNS Support' => 'دعم نظام أسماء النطاقات',
|
||||
'Mail Support' => 'دعم البريد',
|
||||
'Advanced options' => 'خيارات متقدمة',
|
||||
'Aliases' => 'اختصارات',
|
||||
'SSL Certificate' => 'شهادة طبقة مقبس آمن',
|
||||
'SSL Key' => 'مفتاح طبقة المقبس الآمن',
|
||||
'SSL Certificate Authority / Intermediate' => 'سلطة / متوسط شهادة طبقة المقبس الآمن ',
|
||||
'SSL CSR' => 'طلب توقيع شهادة باستخدام طبقة المقبس الآمن',
|
||||
'optional' => 'اختياري',
|
||||
'internal' => 'داخلي',
|
||||
'Statistics Authorization' => 'احصائيات الصلاحيات',
|
||||
'Statistics Auth' => 'إحصائيات الصلاحيات',
|
||||
'Account' => 'حساب',
|
||||
'Prefix will be automaticaly added to username' => 'سيضاف بشكل آلي لأسم المستخدم %s اختصار',
|
||||
'Send FTP credentials to email' => 'إرسال معلومات الاعتماد لبروتوكول نقل الملفات للبريد',
|
||||
'Expiration Date' => 'تاريخ الانتهاء',
|
||||
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||
'Name servers' => 'خوادم الأسماء',
|
||||
'Record' => 'سجل',
|
||||
'IP or Value' => 'بروتوكول إنترنت أو قيمة',
|
||||
'Priority' => 'أولوية',
|
||||
'Record Number' => 'عدد السجلات',
|
||||
'in megabytes' => 'ب ميجا بابت',
|
||||
'Message' => 'رسالة',
|
||||
'use local-part' => 'استخدم جزء محلي',
|
||||
'one or more email addresses' => 'عنوان بريدي واحد أو أكثر',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'الاختصار سيتم إضافته بشكل آلي لإسم قاعدة البيانات واسم المستخدم %s',
|
||||
'Database' => 'قاعدة بيانات',
|
||||
'Type' => 'نوع',
|
||||
'Minute' => 'دقيقة',
|
||||
'Command' => 'أمر',
|
||||
'Package Name' => 'إسم الرزمة',
|
||||
'Netmask' => 'قناع الشبكة',
|
||||
'Interface' => 'واجهة',
|
||||
'Shared' => 'مشارك',
|
||||
'Assigned user' => 'المستخدم المعين',
|
||||
'Assigned domain' => 'النطاق المعين',
|
||||
'NAT IP association' => 'جمعية ترجمة عناوين بروتوكول الانترنت',
|
||||
'shell' => 'منصب',
|
||||
'web domains' => 'نطاقات شبكة',
|
||||
'web aliases' => 'اسماء الشبكة المستعارة',
|
||||
'dns records' => 'سجلات نظام أسماء النطاقات',
|
||||
'mail domains' => 'نطاقات البريد',
|
||||
'mail accounts' => 'حسابات البريد',
|
||||
'accounts' => 'حسابات',
|
||||
'databases' => 'قواعد بيانات',
|
||||
'cron jobs' => 'وظائف مجدولة',
|
||||
'backups' => 'نسخ احتياطية',
|
||||
'quota' => 'حصة',
|
||||
'day of week' => 'اليوم من الإسبوع',
|
||||
'cmd' => 'أمر',
|
||||
'users' => 'مستخدمين',
|
||||
'domains' => 'نطاقات',
|
||||
'aliases' => 'أسماء مستعارة',
|
||||
'records' => 'سجلات',
|
||||
'jobs' => 'وظائف',
|
||||
'username' => 'اسم المستخدم',
|
||||
'password' => 'كلمة المرور',
|
||||
'type' => 'نوع',
|
||||
'charset' => 'حزمة نص',
|
||||
'domain' => 'نطاق',
|
||||
'ip' => 'بروتوكول إنترنت',
|
||||
'ip address' => 'عنوان بروتوكول إنترنت',
|
||||
'IP address' => 'عنوان بروتوكول إنترنت',
|
||||
'netmask' => 'قناع شبكة',
|
||||
'interface' => 'واجهة',
|
||||
'assigned user' => 'المستخدم المعين',
|
||||
'ns1' => 'مساحة اسم 1',
|
||||
'ns2' => 'مساحة اسم 2',
|
||||
'user' => 'مستخدم',
|
||||
'email' => 'بريد',
|
||||
'first name' => 'الإسم الأول',
|
||||
'last name' => 'الاسم الأخير',
|
||||
'account' => 'حساب',
|
||||
'ssl certificate' => 'شهادة طبقة مقبس آمن',
|
||||
'ssl key' => 'مفتاح طبقة مقبس آمن',
|
||||
'stats user password' => 'كلمة مرور مستخدم الإحصائيات',
|
||||
'stats username' => 'مستخدم الإحصائيات',
|
||||
'stats password' => 'كلمة مرور الإحصائيات',
|
||||
'ftp user password' => 'كلمة مرور مستخدم بروتوكول نقل الملفات',
|
||||
'ftp user' => 'مستخدم بروتوكول نقل الملفات',
|
||||
'Last 70 lines of %s.%s.log' => 'آخر 70 سطر في %s.%s.log',
|
||||
'Download AccessLog' => 'تحميل سجلات الوصول',
|
||||
'Download ErrorLog' => 'تحميل سجلات الأخطاء',
|
||||
'Country' => 'البلد',
|
||||
'2 letter code' => 'كود من رسالتين',
|
||||
'State / Province' => 'ولاية / مقاطعة',
|
||||
'City / Locality' => 'المدينة / المنطقة',
|
||||
'Organization' => 'مؤسسة',
|
||||
|
||||
'1 account' => '1 حساب',
|
||||
'%s accounts' => 'حسابات %s',
|
||||
'1 domain' => '1 نطاق',
|
||||
'%s domains' => 'نطاقات %s',
|
||||
'1 record' => '1 سجل',
|
||||
'%s records' => 'سجلات %s',
|
||||
'1 mail account' => '1 حساب بريد',
|
||||
'%s mail accounts' => 'حسابات بريد %s',
|
||||
'1 database' => '1 قاعدة بيانات',
|
||||
'%s databases' => 'قواعد بيانات %s',
|
||||
'1 cron job' => '1 وظيفة مجدولة',
|
||||
'%s cron jobs' => 'وظائف مجدولة %s',
|
||||
'1 archive' => '1 أرشيف',
|
||||
'%s archives' => 'أرشيف %s',
|
||||
'1 package' => '1 رزمة',
|
||||
'%s packages' => 'رزم %s',
|
||||
'1 IP address' => '1 عنوان بروتوكول إنترنت',
|
||||
'%s IP addresses' => 'عناوين بروتوكول إنترنت %s',
|
||||
'1 month' => '1 شهر',
|
||||
'%s months' => 'أشهر %s',
|
||||
'1 log record' => '1 سجل',
|
||||
'%s log records' => 'سجلات %s',
|
||||
'1 object' => '1 عنصر',
|
||||
'%s objects' => 'عناصر %s',
|
||||
'no exclusions' => 'لا استثناءات',
|
||||
|
||||
'USER_CREATED_OK' => 'المستخدم <a href="/edit/user/?user=%s"><b>%s</b></a> تم إنشائه بنجاح',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'النطاق <a href="/edit/web/?domain=%s"><b>%s</b></a>تم إنشائه بنجاح .',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'النطاق <a href="/list/dns/?domain=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||
'DNS_RECORD_CREATED_OK' => 'السجل <b>%s.%s</b> تم إنشائه بنجاح.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'نطاق البريد <a href="/list/mail/?domain=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'حساب البريد <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> تم إنشائه بنجاح',
|
||||
'DATABASE_CREATED_OK' => 'قاعدة البيانات <a href="/edit/db/?database=%s"><b>%s</b></a> تم إنشائها بنجاح',
|
||||
'CRON_CREATED_OK' => 'الوظيفة المجدولة تم إنشائها بنجاح.',
|
||||
'IP_CREATED_OK' => 'عنوان بروتوكول الإنترنت <a href="/edit/ip/?ip=%s"><b>%s</b></a> تم إنشائه بنجاح.',
|
||||
'PACKAGE_CREATED_OK' => 'الرزمة <a href="/edit/package/?package=%s"><b>%s</b></a> تم إنشائها بنجاح.',
|
||||
'SSL_GENERATED_OK' => 'تم إنشاء الشهادة بنجاح.',
|
||||
'Autoupdate has been successfully enabled' => 'تم تفيعل التحديث التلقائي بنجاح',
|
||||
'Autoupdate has been successfully disabled' => 'تم تعطيل التحديث التلقائي بنجاح',
|
||||
'Changes has been saved.' => 'تم حفظ التغييرات بنجاح.',
|
||||
'Confirmation' => 'Confirmation',
|
||||
'DELETE_USER_CONFIRMATION' => 'هل تريد فعلا حذف المستخدم %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'هل تريد فعلا تعليق المستخدم %s?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق المستخدم %s?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'هل تريد فعلا حذف النطاق %s?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'هل تريد فعلا تعليق النطاق %s?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق النطاق %s?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'هل تريد فعلا حذف السجل %s?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'هل تريد فعلا تعليق السجل %s?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق السجل %s?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا حذف %s?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا تعليق %s?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق %s?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'هل تريد فعلا حذف قاعدة البيانات %s?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'هل تريد فعلا تعليق قاعدة البيانات %s?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق قاعدة البيانات %s?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'هل تريد فعلا حذف الوظيفة المجدولة?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'هل تريد فعلا تعليق الوظيفة المجدولة?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'هل تريد فعلا إلغاء تعليق الوظيفة المجدولة?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'هل تريد فعلا حذف التسخة الاحتياطية %s ?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'هل تريد فعلا حذف الاستثناء %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'هل تريد فعلا حذف الرزمة %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'هل تريد فعلا حذف عنوان بروتوكول الإنترنت %s?',
|
||||
'RESTART_CONFIRMATION' => 'هل أنت متأكد من أنك تريد إعادة تشغيل %s?',
|
||||
'Welcome' => 'أهلا وسهلا',
|
||||
'LOGGED_IN_AS' => 'تم تسجيل الدخول ك %s',
|
||||
'Error' => 'خطأ',
|
||||
'Invalid username or password' => 'خطأ في اسم المستخدم أو كلمة المرور',
|
||||
'Invalid username or code' => 'خطأ في اسم المستخدم أو في الكود',
|
||||
'Passwords not match' => 'كلمات المرور غير متطابقة',
|
||||
'Please enter valid email address.' => 'برجاء إدخال عنوان بريد إلكتروني صحيح.',
|
||||
'Field "%s" can not be blank.' => 'العنصر "%s" لا يمكن أن يبقى فارغا.',
|
||||
'Password is too short.' => 'كلمة المرور قصيرة جدا (على الأقل ح حروف)',
|
||||
'Error code:' => 'كود الخطأ: %s',
|
||||
'SERVICE_ACTION_FAILED' => '"%s" "%s" فشل',
|
||||
'IP address is in use' => 'عنوان بروتوكول الإنترنت مستخدم بالفعل',
|
||||
'BACKUP_SCHEDULED' =>'تم إضافة الوظيفة لطابور المهام. سيتم إرسال بريد إلكتروني لك عندما تجهز النسخة الاحتياطية للتحميل.',
|
||||
'BACKUP_EXISTS' => 'يوجد عملية نسخ احتياطي تعمل حاليا. برجاء الانتظار حتى تنتهي عملية النسخ الاحتياطي.',
|
||||
'RESTORE_SCHEDULED' => ' تم إضافة الوظيفة لطابور المهام. سيتم إرسال بريد إلكتروني لك عندما تجهز النسخة الاحتياطية للتحميل.',
|
||||
'RESTORE_EXISTS' =>'يوجد عملية استعادة تعمل حاليا. برجاء الانتظار حتى تنتهي عملية الاستعادة قبل البدء بعملية جديدة.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "اكتب اسم النطاق. واحد في كل سطر. لاستثناء جميع النطاقات استخدم *.. لاستثناء جميع مجالات النطاق استخدم الصيغة التالية: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "اكتب اسم النطاق, واحد في كل سطر. لاستثناء جميع النطاقات استخدم *",
|
||||
'MAIL_EXCLUSIONS' => "اكتب اسم النطاق, واحد في كل سطر. لاستثناء جميع النطاقات استخدم *. لاستثناء حسابات معينة استخدم الصيغة: domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "اكتب اسم قاعدة البيانات بالكامل, واحدة في كل سطر. لاستثناء جميع قواعد البيانات استخدم *",
|
||||
'CRON_EXCLUSIONS' => "لاستثناء جميع الوظائف المجدولة استخدم *",
|
||||
'USER_EXCLUSIONS' => "اكتب اسم المجلد, واحد في كل سطر. لاستثناء جميع المجلدات استخدم *",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Vesta أهلا بكم في لوحة تحكم',
|
||||
'MAIL_FROM' => 'Vesta لوحة تحكم <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "مرحبا, %s %s,\n",
|
||||
'GREETINGS' => "مرحبا,\n",
|
||||
'ACCOUNT_READY' => "تم انشاء حسابك بنجاح وهو جاهز للاستخدام.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'FTP login credentials' => 'معلومات اعتماد الدخول لبروتوكول نقل الملفات',
|
||||
'FTP_ACCOUNT_READY' => "تم إنشاء حساب بروتوكول نقل الملفات وهو جاهز للاستخدام.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'Database Credentials' => 'معلومات اعتماد قاعدة البيانات',
|
||||
'DATABASE_READY' => "تم انشاء قاعدة البيانات بنجاح.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'forgot password' => 'نسيت كلمة المرور',
|
||||
'Confirm' => 'تأكيد',
|
||||
'New Password' => 'كلمة مرور جديدة',
|
||||
'Confirm Password' => 'تأكيد كلمة المرور',
|
||||
'Reset' => 'إعادة تعيين',
|
||||
'Reset Code' => 'إعادة تعيين الكود',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'لقد تم إرسال كود إعادة تعيين كلمة المرور لعنوان بريدك الإلكتروني<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'تم إعادة تعيين كلمة المرور %s',
|
||||
'PASSWORD_RESET_REQUEST' => "لإعادة تعيين كلمة مرور لوحة التحكم , برجاء اتباع الرابط التالي link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, بامكانك أيضا اتباع الرابط التالي https://%s/reset/?action=code&user=%s وادخال كود إعادة التعيين التالي code:\n%s\n\n إذا لم تطلب إعادة تعيين كلمة المرور, برجاء تجاهل هذه الرسالة وتقبل اعتذارنا.\n\n--\nVesta Control Panel\n",
|
||||
);
|
|
@ -38,6 +38,7 @@ $LANG['bs'] = array(
|
|||
'Add Package' => 'Dodaj paket',
|
||||
'Add IP' => 'Dodaj IP',
|
||||
'Search' => 'Traži',
|
||||
'Add one more FTP Account' => 'Dodaj još jednu FTP račun',
|
||||
'Overall Statistics' => 'Globalna statistika',
|
||||
'Daily' => 'Dnevno',
|
||||
'Weekly' => 'Sedmično',
|
||||
|
@ -392,6 +393,7 @@ $LANG['bs'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure to delete %s exclusion?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Are you sure to delete package %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Are you sure to delere IP address %s?',
|
||||
'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?',
|
||||
'Welcome' => 'Dobrodošli',
|
||||
'LOGGED_IN_AS' => 'Logovani ste kao %s',
|
||||
'Error' => 'Greška',
|
||||
|
|
|
@ -38,6 +38,7 @@ $LANG['cn'] = array(
|
|||
'Add Package' => '增加预设方案',
|
||||
'Add IP' => '增加IP',
|
||||
'Search' => '搜索',
|
||||
'Add one more FTP Account' => '增加一個FTP賬號',
|
||||
'Overall Statistics' => '总体统计',
|
||||
'Daily' => '日',
|
||||
'Weekly' => '周',
|
||||
|
@ -392,6 +393,7 @@ $LANG['cn'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure to delete %s exclusion?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => '你确定删除方案 %s?',
|
||||
'DELETE_IP_CONFIRMATION' => '你确定删除IP地址 %s?',
|
||||
'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?',
|
||||
'Welcome' => '欢迎光临',
|
||||
'LOGGED_IN_AS' => '以用户身份 %s 登录',
|
||||
'Error' => '错误',
|
||||
|
|
|
@ -39,6 +39,7 @@ $LANG['cz'] = array(
|
|||
'Add Package' => 'Přidat balíček',
|
||||
'Add IP' => 'Přidat IP',
|
||||
'Search' => 'Vyhledávání',
|
||||
'Add one more FTP Account' => 'Přidat jeden FTP účet',
|
||||
'Overall Statistics' => 'Celkové statistiky',
|
||||
'Daily' => 'Denně',
|
||||
'Weekly' => 'Týdně',
|
||||
|
@ -393,6 +394,7 @@ $LANG['cz'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Opravdu chcete odstranit vyloučení %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Opravdu chcete odstranit package %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Opravdu chcete odstranit IP adresu %s?',
|
||||
'RESTART_CONFIRMATION' => 'Opravdu chcete restartovat %s?',
|
||||
'Welcome' => 'Vítejte!',
|
||||
'LOGGED_IN_AS' => 'Přihlášen jako uživatel %s',
|
||||
'Error' => 'Chyba',
|
||||
|
|
|
@ -38,6 +38,7 @@ $LANG['de'] = array(
|
|||
'Add Package' => 'Paket erstellen',
|
||||
'Add IP' => 'IP hinzufügen',
|
||||
'Search' => 'Suche',
|
||||
'Add one more FTP Account' => 'Fügen Sie eine weitere FTP-Konto',
|
||||
'Overall Statistics' => 'Globale Statistik',
|
||||
'Daily' => 'Täglich',
|
||||
'Weekly' => 'Wöchentlich',
|
||||
|
@ -392,6 +393,7 @@ $LANG['de'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Ausschlüsse %s wirklich löschen?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Packet %s? wirklich löschen?',
|
||||
'DELETE_IP_CONFIRMATION' => '%s wirklich löschen?',
|
||||
'RESTART_CONFIRMATION' => '%s wirklich neu starten?',
|
||||
'Welcome' => 'Willkommen',
|
||||
'LOGGED_IN_AS' => 'Angemeldet als %s',
|
||||
'Error' => 'Fehler',
|
||||
|
|
|
@ -38,6 +38,7 @@ $LANG['en'] = array(
|
|||
'Add Package' => 'Add Package',
|
||||
'Add IP' => 'Add IP',
|
||||
'Search' => 'Search',
|
||||
'Add one more FTP Account' => 'Add one more FTP Account',
|
||||
'Overall Statistics' => 'Overall Statistics',
|
||||
'Daily' => 'Daily',
|
||||
'Weekly' => 'Weekly',
|
||||
|
@ -265,7 +266,7 @@ $LANG['en'] = array(
|
|||
'Message' => 'Message',
|
||||
'use local-part' => 'use local-part',
|
||||
'one or more email addresses' => 'one or more email addresses',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'Prefix %s will be automaticaly added to database name and database user',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'Prefix %s will be automaticaly added to database name and database user.',
|
||||
'Database' => 'Database',
|
||||
'Type' => 'Type',
|
||||
'Minute' => 'Minute',
|
||||
|
@ -355,50 +356,51 @@ $LANG['en'] = array(
|
|||
'%s objects' => '%s objects',
|
||||
'no exclusions' => 'no exclusions',
|
||||
|
||||
'USER_CREATED_OK' => 'User <a href="/edit/user/?user=%s"><b>%s</b></a> has been created successfully',
|
||||
'USER_CREATED_OK' => 'User <a href="/edit/user/?user=%s"><b>%s</b></a> has been created successfully.',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'Domain <a href="/edit/web/?domain=%s"><b>%s</b></a> has been created successfully.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'DNS domain <a href="/list/dns/?domain=%s"><b>%s</b></a> has been created successfully.',
|
||||
'DNS_RECORD_CREATED_OK' => 'Record <b>%s.%s</b> has been created successfully.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Mail domain <a href="/list/mail/?domain=%s"><b>%s</b></a> has been created successfully.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Mail account <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> has been created successfully',
|
||||
'DATABASE_CREATED_OK' => 'Database <a href="/edit/db/?database=%s"><b>%s</b></a> has been created successfully',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Mail account <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> has been created successfully.',
|
||||
'DATABASE_CREATED_OK' => 'Database <a href="/edit/db/?database=%s"><b>%s</b></a> has been created successfully.',
|
||||
'CRON_CREATED_OK' => 'Cron job has been created successfully.',
|
||||
'IP_CREATED_OK' => 'IP address <a href="/edit/ip/?ip=%s"><b>%s</b></a> has been created successfully.',
|
||||
'PACKAGE_CREATED_OK' => 'Package <a href="/edit/package/?package=%s"><b>%s</b></a> has been created successfully.',
|
||||
'SSL_GENERATED_OK' => 'Certificate has been generated successfully.',
|
||||
'Autoupdate has been successfully enabled' => 'Autoupdate has been successfully enabled',
|
||||
'Autoupdate has been successfully disabled' => 'Autoupdate has been successfully disabled',
|
||||
'Changes has been saved.' => 'Changes has been saved.',
|
||||
'Autoupdate has been successfully enabled' => 'Autoupdate has been successfully enabled.',
|
||||
'Autoupdate has been successfully disabled' => 'Autoupdate has been successfully disabled.',
|
||||
'Changes has been saved.' => 'Changes have been saved.',
|
||||
'Confirmation' => 'Confirmation',
|
||||
'DELETE_USER_CONFIRMATION' => 'Are you sure to delete user %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Are you sure to suspend user %s?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Are you sure to unsuspend user %s?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Are you sure to delete domain %s?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure to suspend domain %s?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure to unsuspend domain %s?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Are you sure to delete record %s?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Are you sure to suspend record %s?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Are you sure to unsuspend record %s?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure to delete %s?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure to suspend %s?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure to unsuspend %s?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Are you sure to delete database %s?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Are you sure to suspend database %s?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Are you sure to unsuspend database %s?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Are you sure to delete cron job?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Are you sure to suspend cron job?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Are you sure to unsuspend cron job?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Are you sure to delete %s backup?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure to delete %s exclusion?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Are you sure to delete package %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Are you sure to delere IP address %s?',
|
||||
'DELETE_USER_CONFIRMATION' => 'Are you sure you want to delete user %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Are you sure you want to suspend user %s?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Are you sure you want to unsuspend user %s?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Are you sure you want to delete domain %s?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure you want to suspend domain %s?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Are you sure you want to unsuspend domain %s?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Are you sure you want to delete record %s?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Are you sure you want to suspend record %s?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Are you sure you want to unsuspend record %s?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to delete %s?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to suspend %s?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Are you sure you want to unsuspend %s?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Are you sure you want to delete database %s?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Are you sure you want to suspend database %s?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Are you sure you want to unsuspend database %s?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Are you sure you want to delete cron job?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Are you sure you want to suspend cron job?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Are you sure you want to unsuspend cron job?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Are you sure you want to delete %s backup?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Are you sure you want to delete %s exclusion?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Are you sure you want to delete package %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Are you sure you want to delete IP address %s?',
|
||||
'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?',
|
||||
'Welcome' => 'Welcome',
|
||||
'LOGGED_IN_AS' => 'Logged in as user %s',
|
||||
'Error' => 'Error',
|
||||
'Invalid username or password' => 'Invalid username or password',
|
||||
'Invalid username or code' => 'Invalid username or code',
|
||||
'Passwords not match' => 'Passwords not match',
|
||||
'Please enter valid email address.' => 'Please enter valid email address.',
|
||||
'Invalid username or password' => 'Invalid username or password.',
|
||||
'Invalid username or code' => 'Invalid username or code.',
|
||||
'Passwords not match' => 'Passwords do not match.',
|
||||
'Please enter valid email address.' => 'Please enter a valid email address.',
|
||||
'Field "%s" can not be blank.' => 'Field "%s" can not be blank.',
|
||||
'Password is too short.' => 'Password is too short (minimum is 6 characters)',
|
||||
'Error code:' => 'Error code: %s',
|
||||
|
@ -406,7 +408,7 @@ $LANG['en'] = array(
|
|||
'IP address is in use' => 'IP address is in use',
|
||||
'BACKUP_SCHEDULED' => 'Task has been added to the queue. You will receive an email notification when your backup is ready for download.',
|
||||
'BACKUP_EXISTS' => 'An existing backup is already running. Please wait for that backup to finish.',
|
||||
'RESTORE_SCHEDULED' => 'Task has been added to the queue. You will receive an email notification when your backup is ready for download.',
|
||||
'RESTORE_SCHEDULED' => 'Task has been added to the queue. You will receive an email notification when your restore has been completed.',
|
||||
'RESTORE_EXISTS' => 'An existing restoration task is already running. Please wait for it to finish before launching it again.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Type domain name, one per line. To exclude all domains use *. To exclude specific dirs use following format: domain.com:public_html/cache:public_html/tmp",
|
||||
|
@ -420,10 +422,10 @@ $LANG['en'] = array(
|
|||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Hello, %s %s,\n",
|
||||
'GREETINGS' => "Hello,\n",
|
||||
'ACCOUNT_READY' => "Your account has been created and ready for use.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
'ACCOUNT_READY' => "Your account has been created and is ready for use.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'FTP login credentials' => 'FTP login credentials',
|
||||
'FTP_ACCOUNT_READY' => "FTP account has been created and ready for use.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
'FTP_ACCOUNT_READY' => "FTP account has been created and is ready for use.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'Database Credentials' => 'Database Credentials',
|
||||
'DATABASE_READY' => "Database has been created successfully.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
|
|
|
@ -38,6 +38,7 @@ $LANG['es'] = array(
|
|||
'Add Package' => 'Añadir Plan',
|
||||
'Add IP' => 'Añadir IP',
|
||||
'Search' => 'Buscar',
|
||||
'Add one more FTP Account' => 'Añadir una Cuenta FTP adicional',
|
||||
'Overall Statistics' => 'Estadística General',
|
||||
'Daily' => 'Diariamente',
|
||||
'Weekly' => 'Semanalmente',
|
||||
|
@ -105,7 +106,7 @@ $LANG['es'] = array(
|
|||
'Editing Package' => 'Editando Plan',
|
||||
'Adding IP address' => 'Añadiendo Dirección IP',
|
||||
'Editing IP Address' => 'Editando Dirección IP',
|
||||
'Editing Backup Exclusions' => 'Editando exclusiones de Backup',
|
||||
'Editing Backup Exclusions' => 'Editando exclusiones de Respaldo',
|
||||
'Generating CSR' => 'Generar solicitud de CSR',
|
||||
'Listing' => 'Listando',
|
||||
'Search Results' => 'Resultado de Busqueda',
|
||||
|
@ -392,6 +393,7 @@ $LANG['es'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => '¿Está seguro que desea eliminar el exclusiones %s ?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => '¿Está seguor que desea eliminar el plan %s?',
|
||||
'DELETE_IP_CONFIRMATION' => '¿Está seguro que desea eliminar la dirección IP %s?',
|
||||
'RESTART_CONFIRMATION' => '¿Está seguro que desea reiniciar %s?',
|
||||
'Welcome' => 'Bienvenido',
|
||||
'LOGGED_IN_AS' => 'Conectado como el usuario %s',
|
||||
'Error' => 'Error',
|
||||
|
|
447
web/inc/i18n/fi.php
Normal file
|
@ -0,0 +1,447 @@
|
|||
<?php
|
||||
/**
|
||||
* Vesta Finnish language file
|
||||
* OHakala (onni@koodimonni.fi)
|
||||
* RJuho (juho.rasanen@kotikone.fi)
|
||||
*/
|
||||
|
||||
$LANG['fi'] = array(
|
||||
'Packages' => 'Paketit',
|
||||
'IP' => 'IP',
|
||||
'Graphs' => 'Kuvaajat',
|
||||
'Statistics' => 'Tilastot',
|
||||
'Log' => 'Loki',
|
||||
'Services' => 'Palvelut',
|
||||
'Updates' => 'Päivitykset',
|
||||
'Log in' => 'Kirjaudu',
|
||||
'Log out' => 'Kirjaudu ulos',
|
||||
|
||||
'USER' => 'TILIT',
|
||||
'WEB' => 'WEB',
|
||||
'DNS' => 'DNS',
|
||||
'MAIL' => 'MAIL',
|
||||
'DB' => 'DB',
|
||||
'CRON' => 'CRON',
|
||||
'BACKUP' => 'BACKUP',
|
||||
|
||||
'Add User' => 'Lisää käyttäjä',
|
||||
'Add Domain' => 'Lisää domaini',
|
||||
'Add Web Domain' => 'Lisää Web domain',
|
||||
'Add DNS Domain' => 'Lisää DNS domain',
|
||||
'Add DNS Record' => 'Lisää DNS asetus',
|
||||
'Add Mail Domain' => 'Lisää email domain',
|
||||
'Add Mail Account' => 'Lisää email käyttäjä',
|
||||
'Add Database' => 'Lisää tietokanta',
|
||||
'Add Cron Job' => 'Lisää Cron-tehtävä',
|
||||
'Create Backup' => 'Luo varmuuskopio',
|
||||
'Configure' => 'Määritä',
|
||||
'Restore All' => 'Palauta kaikki',
|
||||
'Add Package' => 'Lisää paketti',
|
||||
'Add IP' => 'Lisää IP',
|
||||
'Add one more FTP Account' => 'Lisää vielä yhden FTP käyttäjä',
|
||||
'Search' => 'Haku',
|
||||
'Overall Statistics' => 'Kokonaistilastot',
|
||||
'Daily' => 'Päivä',
|
||||
'Weekly' => 'Viikko',
|
||||
'Monthly' => 'Kuukausi',
|
||||
'Yearly' => 'Vuosi',
|
||||
'Add' => 'Lisää',
|
||||
'Back' => 'Takaisin',
|
||||
'Save' => 'Tallenna',
|
||||
'Submit' => 'Lähetä',
|
||||
|
||||
'toggle all' => 'vaihda kaikki',
|
||||
'apply to selected' => 'toteuta valituissa',
|
||||
'rebuild' => 'palauta',
|
||||
'rebuild web' => 'palauta web',
|
||||
'rebuild dns' => 'palauta dns',
|
||||
'rebuild mail' => 'palauta sähköposti',
|
||||
'rebuild db' => 'palauta tietokanta',
|
||||
'rebuild cron' => 'palauta cron',
|
||||
'update counters' => 'päivitä laskurit',
|
||||
'suspend' => 'keskeytä',
|
||||
'unsuspend' => 'palauta',
|
||||
'delete' => 'poista',
|
||||
'show per user' => 'näytä per käyttäjä',
|
||||
'login as' => 'kirjaudu sisään käyttäjänä',
|
||||
'logout' => 'kirjaudu ulos',
|
||||
'edit' => 'muokkaa',
|
||||
'open webstats' => 'avaa webtilastot',
|
||||
'view logs' => 'näytä lokit',
|
||||
'list records' => 'listaa %s tietuetta',
|
||||
'add record' => 'lisää tietue',
|
||||
'list accounts' => 'listaa %s käyttäjää',
|
||||
'add account' => 'lisää käyttäjä',
|
||||
'open webmail' => 'avaa webmail',
|
||||
'open %s' => 'avaa %s',
|
||||
'download' => 'lataa',
|
||||
'restore' => 'palauta',
|
||||
'configure restore settings' => 'määritä palautusasetukset',
|
||||
'stop' => 'pysäytä',
|
||||
'start' => 'käynnistä',
|
||||
'restart' => 'käynnistä uudelleen',
|
||||
'update' => 'päivitä',
|
||||
'generate' => 'generoi',
|
||||
'Generate CSR' => 'generoi CSR',
|
||||
'reread IP' => 'lue IP uudelleen',
|
||||
'enable autoupdate' => 'päivitä automaattisesti',
|
||||
'disable autoupdate' => 'älä päivitä automaattisesti',
|
||||
|
||||
'Adding User' => 'Lisätään käyttäjää',
|
||||
'Editing User' => 'Muokataan käyttäjää',
|
||||
'Adding Domain' => 'Lisätään domainia',
|
||||
'Editing Domain' => 'Muokataan domainia',
|
||||
'Adding DNS Domain' => 'Lisätään DNS-domainia',
|
||||
'Editing DNS Domain' => 'Muokataan DNS-domainia',
|
||||
'Adding DNS Record' => 'Lisätään DNS-tietuetta',
|
||||
'Editing DNS Record' => 'Muokataan DNS-tietuetta',
|
||||
'Adding Mail Domain' => 'Lisätään sähköpostidomainia',
|
||||
'Editing Mail Domain' => 'Muokataan sähköpostidomainia',
|
||||
'Adding Mail Account' => 'Lisätään sähköpostitiliä',
|
||||
'Editing Mail Account' => 'Muokataan sähköpostitiliä',
|
||||
'Adding database' => 'Lisätään tietokantaa',
|
||||
'Editing Cron Job' => 'Muokataan Cron-tehtävää',
|
||||
'Adding Cron Job' => 'Lisätään Cron-tehtävää',
|
||||
'Editing Database' => 'Muokataan tietokantaa',
|
||||
'Adding Package' => 'Lisätään pakettia',
|
||||
'Editing Package' => 'Muokataan pakettia',
|
||||
'Adding IP address' => 'Lisätään IP-osoitetta',
|
||||
'Editing IP Address' => 'Muokataan IP-osoitetta',
|
||||
'Editing Backup Exclusions' => 'Muokataan Varmuuskopioiden poikkeuksia',
|
||||
'Generating CSR' => 'Generoidaan CSR',
|
||||
'Listing' => 'Listataan',
|
||||
'Search Results' => 'Hakutulokset',
|
||||
|
||||
'active' => 'aktiivinen',
|
||||
'spnd' => 'keskeytetty',
|
||||
'suspended' => 'keskeytetty',
|
||||
'running' => 'käynnissä',
|
||||
'stopped' => 'pysäytetty',
|
||||
'outdated' => 'vanhentunut',
|
||||
'updated' => 'päivitetty',
|
||||
|
||||
'yes' => 'kyllä',
|
||||
'no' => 'ei',
|
||||
'none' => 'ei mitään',
|
||||
'pb' => 'pb', //petatavu
|
||||
'tb' => 'tb', //teratavu
|
||||
'gb' => 'gb', //gigatavu
|
||||
'mb' => 'mb', //megatavu
|
||||
'minute' => 'minuutti',
|
||||
'hour' => 'tunti',
|
||||
'day' => 'päivä',
|
||||
'days' => 'päivää',
|
||||
'hours' => 'tuntia',
|
||||
'minutes' => 'minuuttia',
|
||||
'month' => 'kuukautta',
|
||||
'package' => 'paketti',
|
||||
'traffic' => 'tiedonsiirto',
|
||||
'disk' => 'levytila',
|
||||
'Bandwidth' => 'Kaistanleveys',
|
||||
'Disk' => 'Levy',
|
||||
'Web' => 'Web',
|
||||
'Mail' => 'Sähköposti',
|
||||
'Databases' => 'Tietokannat',
|
||||
'User Directories' => 'Käyttäjähakemistot',
|
||||
'Template' => 'Pohja',
|
||||
'Web Template' => 'Apache-pohja',
|
||||
'Proxy Template' => 'Nginx-pohja',
|
||||
'DNS Template' => 'DNS-pohja',
|
||||
'Web Domains' => 'Web-domainit',
|
||||
'SSL Domains' => 'SSL-domainit',
|
||||
'Web Aliases' => 'Web-aliakset',
|
||||
'per domain' => 'per domaini',
|
||||
'DNS domains' => 'DNS-domainit',
|
||||
'DNS records' => 'DNS-tietueet',
|
||||
'Name Servers' => 'Nimipalvelimet',
|
||||
'Mail Domains' => 'Sähköpostidomainit',
|
||||
'Mail Accounts' => 'Sähköpostikäyttäjät',
|
||||
'Cron Jobs' => 'Cron-tehtävät',
|
||||
'SSH Access' => 'SSH-oikeudet',
|
||||
'IP Addresses' => 'IP-osoitteet',
|
||||
'Backups' => 'Varmuuskopiot',
|
||||
'Backup System' => 'Varmuuskopioi järjestelmä',
|
||||
'backup exclusions' => 'varmuuskopioinnin poikkeukset',
|
||||
'template' => 'pohjat',
|
||||
'SSL Support' => 'SSL-tuki',
|
||||
'SSL Home Directory' => 'SSL-kotihakemisto',
|
||||
'Proxy Support' => 'Nginx tuki',
|
||||
'Proxy Extensions' => 'Nginx laajennukset',
|
||||
'Web Statistics' => 'Webtilastot',
|
||||
'Additional FTP Account' => 'Ylimääräinen FTP-tili',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => 'Päättyy',
|
||||
'Records' => 'Tietueet',
|
||||
'Catchall email' => 'Catchall-sähköposti',
|
||||
'AntiVirus Support' => 'AntiVirus-tuki',
|
||||
'AntiSpam Support' => 'AntiSpam-tuki',
|
||||
'DKIM Support' => 'DKIM-tuki',
|
||||
'Accounts' => 'Tilit',
|
||||
'Quota' => 'Kiintiö',
|
||||
'Autoreply' => 'Automaattinen vastaus',
|
||||
'Forward to' => 'Uudelleenohjaa',
|
||||
'Do not store forwarded mail' => 'Älä säilytä uudelleenohjattuja viestejä',
|
||||
'database' => 'tietokanta',
|
||||
'User' => 'Käyttäjä',
|
||||
'Host' => 'Host',
|
||||
'Charset' => 'Merkistö',
|
||||
'Min' => 'Min',
|
||||
'Hour' => 'Tunti',
|
||||
'Day' => 'Päivä',
|
||||
'Month' => 'Kuukausi',
|
||||
'Day of week' => 'Viikonpäivä',
|
||||
'local' => 'paikallinen',
|
||||
'Run Time' => 'Run Time',
|
||||
'Backup Size' => 'Varmuuskopion koko',
|
||||
'SYS' => 'SYS',
|
||||
'Domains' => 'Domainit',
|
||||
'Status' => 'Tila',
|
||||
'shared' => 'jaetut',
|
||||
'dedicated' => 'dedicated',
|
||||
'Owner' => 'Omistaja',
|
||||
'Users' => 'Käyttäjät',
|
||||
'Load Average' => 'Keskimääräinen Käyttöaste',
|
||||
'Memory Usage' => 'Muistinkäyttö',
|
||||
'HTTPD Usage' => 'HTTPD-käyttö',
|
||||
'NGINX Usage' => 'NGINX-käyttö',
|
||||
'APACHE2 Usage' => 'APACHE2-käyttö',
|
||||
'MySQL Usage on localhost' => 'MySQL-käyttö @ localhost',
|
||||
'PostgreSQL Usage on localhost' => 'PostgreSQL-käyttö @ localhost',
|
||||
'Bandwidth Usage eth0' => 'Kaistankäyttö eth0',
|
||||
'Bandwidth Usage eth1' => 'Kaistankäyttö eth1',
|
||||
'FTP Usage' => 'FTP-käyttö',
|
||||
'SSH Usage' => 'SSH-käyttö',
|
||||
'reverse proxy' => 'reverse proxy',
|
||||
'web server' => 'web-palvelin',
|
||||
'dns server' => 'dns-palvelin',
|
||||
'mail server' => 'sähköpostipalvelin',
|
||||
'pop/imap server' => 'pop/imap-palvelin',
|
||||
'email antivirus' => 'sähköpostin antivirus',
|
||||
'email antispam' => 'sähköpostin antispam',
|
||||
'database server' => 'tietokantapalvelin',
|
||||
'ftp server' => 'ftp-palvelin',
|
||||
'job scheduler' => 'job scheduler', //no-idea
|
||||
'CPU' => 'Prosessori',
|
||||
'Memory' => 'Muisti',
|
||||
'Uptime' => 'Käyttöaika',
|
||||
'core package' => 'core-paketti',
|
||||
'php interpreter' => 'php-tulkki',
|
||||
'internal web server' => 'sisäinen web-palvelin',
|
||||
'Version' => 'Versio',
|
||||
'Release' => 'Julkaisu',
|
||||
'Architecture' => 'Arkkitehtuuri',
|
||||
'Object' => 'Objekti',
|
||||
'Owner' => 'Omistaja',
|
||||
'Username' => 'Käyttäjä',
|
||||
'Password' => 'Salasana',
|
||||
'Email' => 'Sähköposti',
|
||||
'Package' => 'Paketti',
|
||||
'Language' => 'Kieli',
|
||||
'First Name' => 'Etunimi',
|
||||
'Last Name' => 'Sukunimi',
|
||||
'Send login credentials to email address' => 'Lähetä kirjautumistiedot sähköpostilla.',
|
||||
'Default Template' => 'Oletuspohja',
|
||||
'Default Name Servers' => 'Oletusnimipalvelimet',
|
||||
'Domain' => 'Domain',
|
||||
'DNS Support' => 'Tarvitsee DNS:n',
|
||||
'Mail Support' => 'Tarvitsee Sähköpostin',
|
||||
'Advanced options' => 'Lisäasetukset',
|
||||
'Aliases' => 'Aliakset',
|
||||
'SSL Certificate' => 'SSL-sertifikaatti',
|
||||
'SSL Key' => 'SSL-avain',
|
||||
'SSL Certificate Authority / Intermediate' => 'SSL Certificate Authority / Intermediate', //no-idea
|
||||
'SSL CSR' => 'SSL CSR',
|
||||
'optional' => 'valinnainen',
|
||||
'internal' => 'sisäinen',
|
||||
'Statistics Authorization' => 'Tilastoinnin valtuutus',
|
||||
'Statistics Auth' => 'Tilastoinnin Auth',
|
||||
'Account' => 'Tili',
|
||||
'Prefix will be automaticaly added to username' => 'Etuliite %s lisätään automaattisesti käyttäjänimeen.',
|
||||
'Send FTP credentials to email' => 'Lähetä FTP-kirjautumistiedot sähköpostilla',
|
||||
'Expiration Date' => 'Viimeinen käyttöpäivä',
|
||||
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||
'Name servers' => 'Nimipalvelimet',
|
||||
'Record' => 'Tietue',
|
||||
'IP or Value' => 'IP or Value', //no-idea
|
||||
'Priority' => 'Prioriteetti',
|
||||
'Record Number' => 'Tietueen numero',
|
||||
'in megabytes' => 'megatavuissa',
|
||||
'Message' => 'Viesti',
|
||||
'use local-part' => 'use local-part', //no-idea
|
||||
'one or more email addresses' => 'yksi tai useampia sähköposteja',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'Etuliite %s lisätään automaattisesti tietokannan nimeen ja käyttäjään',
|
||||
'Database' => 'Tietokanta',
|
||||
'Type' => 'Tyyppi',
|
||||
'Minute' => 'Minuutti',
|
||||
'Command' => 'Käsky',
|
||||
'Package Name' => 'Paketin nimi',
|
||||
'Netmask' => 'Netmask', //no-idea
|
||||
'Interface' => 'Interface', //no-idea
|
||||
'Shared' => 'Jaettu',
|
||||
'Assigned user' => 'Assigned user',
|
||||
'Assigned domain' => 'Assigned domain',
|
||||
'NAT IP association' => 'NAT IP association', //no-idea
|
||||
'shell' => 'shell',
|
||||
'web domains' => 'web-domainit',
|
||||
'web aliases' => 'web-aliakset',
|
||||
'dns records' => 'dns-tietueet',
|
||||
'mail domains' => 'sähköpostidomainit',
|
||||
'mail accounts' => 'sähköpostitilit',
|
||||
'accounts' => 'tilit',
|
||||
'databases' => 'tietokannat',
|
||||
'cron jobs' => 'cron-tehtävät',
|
||||
'backups' => 'varmuuskopiot',
|
||||
'quota' => 'kiintiö',
|
||||
'day of week' => 'viikonpäivä',
|
||||
'cmd' => 'cmd',
|
||||
'users' => 'käyttäjät',
|
||||
'domains' => 'domainit',
|
||||
'aliases' => 'aliakset',
|
||||
'records' => 'tietueet',
|
||||
'jobs' => 'tehtävät',
|
||||
'username' => 'käyttäjänimi',
|
||||
'password' => 'salasana',
|
||||
'type' => 'tyyppi',
|
||||
'charset' => 'charset',
|
||||
'domain' => 'domain',
|
||||
'ip' => 'ip',
|
||||
'ip address' => 'ip-osoite',
|
||||
'IP address' => 'IP-osoite',
|
||||
'netmask' => 'netmask',
|
||||
'interface' => 'interface',
|
||||
'assigned user' => 'omistaja',
|
||||
'ns1' => 'ns1',
|
||||
'ns2' => 'ns2',
|
||||
'user' => 'käyttäjä',
|
||||
'email' => 'sähköposti',
|
||||
'first name' => 'etunimi',
|
||||
'last name' => 'sukunimi',
|
||||
'account' => 'tili',
|
||||
'ssl certificate' => 'ssl-sertifikaatti',
|
||||
'ssl key' => 'ssl-avain',
|
||||
'stats user password' => 'tilastoinnin käyttäjän salasana',
|
||||
'stats username' => 'tilastoinnin käyttäjä',
|
||||
'stats password' => 'tilastoinnin salasana',
|
||||
'ftp user password' => 'ftp-käyttäjän salasana',
|
||||
'ftp user' => 'ftp-käyttäjä',
|
||||
'Last 70 lines of %s.%s.log' => '%s 70 viimeistä lokimerkintää.%s.log',
|
||||
'Download AccessLog' => 'Lataa AccessLog',
|
||||
'Download ErrorLog' => 'Lataa Virheloki',
|
||||
'Country' => 'Maa',
|
||||
'2 letter code' => '2 kirjaimen lyhenne',
|
||||
'State / Province' => 'Osavaltio / Maakunta',
|
||||
'City / Locality' => 'Kaupunki / Paikkakunta',
|
||||
'Organization' => 'Organisaatio',
|
||||
|
||||
'1 account' => '1 tili',
|
||||
'%s accounts' => '%s tiliä',
|
||||
'1 domain' => '1 domain',
|
||||
'%s domains' => '%s domainia',
|
||||
'1 record' => '1 tietue',
|
||||
'%s records' => '%s tietuetta',
|
||||
'1 mail account' => '1 sähköpostitili',
|
||||
'%s mail accounts' => '%s sähköpostitiliä',
|
||||
'1 database' => '1 tietokanta',
|
||||
'%s databases' => '%s tietokantaa',
|
||||
'1 cron job' => '1 cron-tehtävä',
|
||||
'%s cron jobs' => '%s cron-tehtävää',
|
||||
'1 archive' => '1 archive',
|
||||
'%s archives' => '%s archives',
|
||||
'1 package' => '1 paketti',
|
||||
'%s packages' => '%s pakettia',
|
||||
'1 IP address' => '1 IP-osoite',
|
||||
'%s IP addresses' => '%s IP-osoitetta',
|
||||
'1 month' => '1 kuukausi',
|
||||
'%s months' => '%s kuukautta',
|
||||
'1 log record' => '1 lokimerkintä',
|
||||
'%s log records' => '%s lokimerkintää',
|
||||
'1 object' => '1 objekti',
|
||||
'%s objects' => '%s objektia',
|
||||
'no exclusions' => 'ei poikkeuksia',
|
||||
|
||||
'USER_CREATED_OK' => 'Käyttäjä <a href="/edit/user/?user=%s"><b>%s</b></a> lisättiin onnistuneesti',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'Domain <a href="/edit/web/?domain=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'DNS-domain <a href="/list/dns/?domain=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'DNS_RECORD_CREATED_OK' => 'Tietue <b>%s.%s</b> lisättiin onnistuneesti.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Sähköpostidomain <a href="/list/mail/?domain=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Sähköpostitili <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> lisättiin onnistuneesti.',
|
||||
'DATABASE_CREATED_OK' => 'Tietokanta <a href="/edit/db/?database=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'CRON_CREATED_OK' => 'Cron-tehtävä lisättiin onnistuneesti.',
|
||||
'IP_CREATED_OK' => 'IP-osoite <a href="/edit/ip/?ip=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'PACKAGE_CREATED_OK' => 'Paketti <a href="/edit/package/?package=%s"><b>%s</b></a> lisättiin onnistuneesti.',
|
||||
'SSL_GENERATED_OK' => 'Sertifikaatti lisättiin onnistuneesti.',
|
||||
'Autoupdate has been successfully enabled' => 'Automaattinen päivitys otettu käyttöön',
|
||||
'Autoupdate has been successfully disabled' => 'Automaattinen päivitys poistettu käytöstä',
|
||||
'Changes has been saved.' => 'Muutokset tallennettu.',
|
||||
'Confirmation' => 'Hyväksyntä',
|
||||
'DELETE_USER_CONFIRMATION' => 'Haluatko varmasti poistaa käyttäjän %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Haluatko varmasti keskeyttää käyttäjän %s?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön käyttäjän %s?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Haluatko varmasti poistaa domainin %s?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Haluatko varmasti keskeyttää domainin %s?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön domainin %s?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Haluatko varmasti poistaa tietueen %s?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Haluatko varmasti keskeyttää tietueen %s?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön tietueen %s?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Haluatko varmasti poistaa %s?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Haluatko varmasti keskeyttää %s?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön %s?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Haluatko varmasti poistaa tietokannan %s?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Haluatko varmasti keskeyttää tietokannan %s?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön tietokannan %s?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Haluatko varmasti poistaa cron-tehtävän?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Haluatko varmasti keskeyttää cron-tehtävän?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Haluatko varmasti ottaa käyttöön cron-tehtävän?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Haluatko varmasti poistaa %s varmuuskopion?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Haluatko varmasti poistaa %s poikkeuksen?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Haluatko varmasti poistaa paketin %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Haluatko varmasti poistaa IP-osoitteen %s?',
|
||||
'RESTART_CONFIRMATION' => 'Haluatko varmasti käynnistää uudelleen %s?',
|
||||
'Welcome' => 'Tervetuloa',
|
||||
'LOGGED_IN_AS' => 'Kirjautunut käyttäjänä %s',
|
||||
'Error' => 'Virhe',
|
||||
'Invalid username or password' => 'Väärä käyttäjänimi tai salasana',
|
||||
'Invalid username or code' => 'Väärä käyttäjänimi tai koodi',
|
||||
'Passwords not match' => 'Salasanat eivät täsmää',
|
||||
'Please enter valid email address.' => 'Syötä toimiva sähköpostiosoite.',
|
||||
'Field "%s" can not be blank.' => 'Kenttä "%s" ei voi olla tyhjä.',
|
||||
'Password is too short.' => 'Salasana on liian lyhyt (min. 6 merkkiä)',
|
||||
'Error code:' => 'Virhekoodi: %s',
|
||||
'SERVICE_ACTION_FAILED' => '"%s" "%s" epäonnistui',
|
||||
'IP address is in use' => 'IP-osoite on käytössä',
|
||||
'BACKUP_SCHEDULED' => 'Tehtävä on lisätty jonoon. Saat sähköpostin kun varmuuskopiosi on valmis ladattavaksi.',
|
||||
'BACKUP_EXISTS' => 'Aikaisempi varmuuskopiointi on vielä käynnissä, odota kunnes se päättyy.',
|
||||
'RESTORE_SCHEDULED' => 'Tehtävä on lisätty jonoon. Saat sähköpostin kun varmuuskopiosi on valmis ladattavaksi.',
|
||||
'RESTORE_EXISTS' => 'Aikaisempi palautus on vielä käynnissä, odota kunnes se päättyy.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Syötä domainin nimi, yksi per rivi. Syötä '*', jos haluat ohittaa kaikki domainit. Ohittaksesi pois tiettyjä hakemistoja käytä seuraavaa rakennetta: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "Syötä domainin nimi, yksi per rivi. Syötä '*', jos haluat ohittaa kaikki domainit.",
|
||||
'MAIL_EXCLUSIONS' => "Syötä domainin nimi, yksi per rivi. Syötä '*', jos haluat ohittaa kaikki domainit. Ohittaksesi pois tiettyjä hakemistoja käytä seuraavaa rakennetta: domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "Syötä koko tietokannan nimi, yksi per rivi. Syötä '*', jos haluat ohittaa kaikki tietokannat.",
|
||||
'CRON_EXCLUSIONS' => "Ohittaaksesi kaikki tehtävät käytä '*'",
|
||||
'USER_EXCLUSIONS' => "Syötä kansion nimi, yksi per rivi. Ohittaaksesi kaikki tietokannat syötä '*'",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Tervetuloa Vesta Hallintapaneeliin',
|
||||
'MAIL_FROM' => 'Vesta Hallintapaneeli <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Morjens, %s %s,\n",
|
||||
'GREETINGS' => "Morjens,\n",
|
||||
'ACCOUNT_READY' => "Käyttätilisi on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nhttps://%s/login/\nKäyttäjä: %s\nSalasana: %s\n\n--\nVesta Hallintapaneeli\n",
|
||||
|
||||
'FTP login credentials' => 'FTP-tilitiedot',
|
||||
'FTP_ACCOUNT_READY' => "FTP-tili on luotu ja odottaa innokkaasti ensimmäistä kirjautumista.\n\nHostname: %s\nKäyttäjä: %s_%s\nSalasana: %s\n\n--\nVesta Hallintapaneeli\n",
|
||||
|
||||
'Database Credentials' => 'Tietokannan-tilitiedot',
|
||||
'DATABASE_READY' => "Tietokanta on luotu onnistuneesti.\n\nTietokanta: %s\nKäyttäjä: %s\nSalasana: %s\n%s\n\n--\nVesta Hallintapaneeli\n",
|
||||
|
||||
'forgot password' => 'unohditko salasanan?',
|
||||
'Confirm' => 'Hyväksy',
|
||||
'New Password' => 'Uusi salasana',
|
||||
'Confirm Password' => 'Hyväksy salasana',
|
||||
'Reset' => 'Nollaa',
|
||||
'Reset Code' => 'Nollauskoodi',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'Salasanan nollauskoodi on lähetetty sähköpostiisi<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'Salana vaihdettiin %s',
|
||||
'PASSWORD_RESET_REQUEST' => "Nollataksesi hallintapaneelin salasanan, seuraa tätä linkkiä:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nVaihtoehtoisesti voit mennä https://%s/reset/?action=code&user=%s ja syöttää nollauskoodin:\n%s\n\nJos et varta vasten pyytänyt tätä salasananvaihtoa, mene paniikkiin ja ota yhteyttä ylläpitoon.\n\n--\nVesta Hallintapaneeli\n",
|
||||
);
|
445
web/inc/i18n/fr.php
Normal file
|
@ -0,0 +1,445 @@
|
|||
<?php
|
||||
/**
|
||||
* Vesta language file
|
||||
* French Translation https://github.com/nhoway
|
||||
*/
|
||||
|
||||
$LANG['fr'] = array(
|
||||
'Packages' => 'Paquets',
|
||||
'IP' => 'IP',
|
||||
'Graphs' => 'Graphs',
|
||||
'Statistics' => 'Statistiques',
|
||||
'Log' => 'Log',
|
||||
'Services' => 'Services',
|
||||
'Updates' => 'Mises-à-jour',
|
||||
'Log in' => 'Connexion',
|
||||
'Log out' => 'Déconnexion',
|
||||
|
||||
'USER' => 'USER',
|
||||
'WEB' => 'WEB',
|
||||
'DNS' => 'DNS',
|
||||
'MAIL' => 'MAIL',
|
||||
'DB' => 'DB',
|
||||
'CRON' => 'CRON',
|
||||
'BACKUP' => 'BACKUP',
|
||||
|
||||
'Add User' => 'Ajouter un Utilisateur',
|
||||
'Add Domain' => 'Ajouter un Domaine',
|
||||
'Add Web Domain' => 'Ajouter un Domaine',
|
||||
'Add DNS Domain' => 'Ajouter un DNS',
|
||||
'Add DNS Record' => 'Ajouter un DNS',
|
||||
'Add Mail Domain' => 'Ajouter un Domaine',
|
||||
'Add Mail Account' => 'Ajouter un Compte',
|
||||
'Add Database' => 'Ajouter une BDD',
|
||||
'Add Cron Job' => 'Ajouter une Tâche',
|
||||
'Create Backup' => 'Créer un Backup',
|
||||
'Configure' => 'Configurer',
|
||||
'Restore All' => 'Restaurer Tout',
|
||||
'Add Package' => 'Ajouter un Paquet',
|
||||
'Add IP' => 'Ajouter une IP',
|
||||
'Search' => 'Rechercher',
|
||||
'Add one more FTP Account' => 'Ajouter un autre Compte FTP',
|
||||
'Overall Statistics' => 'Statistiques Générales',
|
||||
'Daily' => 'Quotidien',
|
||||
'Weekly' => 'Hebdomadaire',
|
||||
'Monthly' => 'Mensuel',
|
||||
'Yearly' => 'Annuel',
|
||||
'Add' => 'Ajouter',
|
||||
'Back' => 'Retour',
|
||||
'Save' => 'Sauvegarde',
|
||||
'Submit' => 'Envoyer',
|
||||
|
||||
'toggle all' => 'selectionner tout',
|
||||
'apply to selected' => 'appliquer à la sélection',
|
||||
'rebuild' => 'recréer',
|
||||
'rebuild web' => 'recréer web',
|
||||
'rebuild dns' => 'recréer dns',
|
||||
'rebuild mail' => 'recréer mail',
|
||||
'rebuild db' => 'recréer db',
|
||||
'rebuild cron' => 'recréer cron',
|
||||
'update counters' => 'mettre-à-jour les totaux',
|
||||
'suspend' => 'suspendre',
|
||||
'unsuspend' => 'réactiver',
|
||||
'delete' => 'supprimer',
|
||||
'show per user' => 'voir par utilisateur',
|
||||
'login as' => 'connexion en tant que',
|
||||
'logout' => 'déconnexion',
|
||||
'edit' => 'éditer',
|
||||
'open webstats' => 'ouvrir les statistiques web',
|
||||
'view logs' => 'voir les logs',
|
||||
'list records' => '%s enregistrements listés',
|
||||
'add record' => 'ajouter un enregistrement',
|
||||
'list accounts' => '%s comptes listés',
|
||||
'add account' => 'ajouter un compte',
|
||||
'open webmail' => 'ouvrir le webmail',
|
||||
'open %s' => 'ouvrir %s',
|
||||
'download' => 'télécharger',
|
||||
'restore' => 'restaurer',
|
||||
'configure restore settings' => 'configurer les paramètres de restauration',
|
||||
'stop' => 'stop',
|
||||
'start' => 'démarrer',
|
||||
'restart' => 'redémarrer',
|
||||
'update' => 'mettre-à-jour',
|
||||
'generate' => 'générer',
|
||||
'Generate CSR' => 'Générer un CSR',
|
||||
'reread IP' => 'actualiser l\'IP',
|
||||
'enable autoupdate' => 'activer la mise-à-jour automatique',
|
||||
'disable autoupdate' => 'desactiver la mise-à-jour automatique',
|
||||
|
||||
'Adding User' => 'Ajout d\'un Utilisateur',
|
||||
'Editing User' => 'Edition d\'un Utilisateur',
|
||||
'Adding Domain' => 'Ajout d\'un Domaine',
|
||||
'Editing Domain' => 'Edition d\'un Domaine',
|
||||
'Adding DNS Domain' => 'Ajout d\'un Domaine DNS',
|
||||
'Editing DNS Domain' => 'Edition d\'un Domaine DNS',
|
||||
'Adding DNS Record' => 'Ajout d\'un Enregistrement DNS',
|
||||
'Editing DNS Record' => 'Edition d\'un Enregistrement DNS',
|
||||
'Adding Mail Domain' => 'Ajout d\'un Domaine Mail',
|
||||
'Editing Mail Domain' => 'Edition d\'un Domaine Mail',
|
||||
'Adding Mail Account' => 'Ajout d\'un Compte Mail',
|
||||
'Editing Mail Account' => 'Edition d\'un Compte Mail',
|
||||
'Adding database' => 'Ajout d\'une base de données',
|
||||
'Editing Cron Job' => 'Edition d\'une tâche Cron',
|
||||
'Adding Cron Job' => 'Ajout d\'une tâche Cron',
|
||||
'Editing Database' => 'Edition d\'une base de données',
|
||||
'Adding Package' => 'Ajout d\'un Paquet',
|
||||
'Editing Package' => 'Edition d\'un Paquet',
|
||||
'Adding IP address' => 'Ajout d\'une adresse IP',
|
||||
'Editing IP Address' => 'Edition d\'une adresse IP',
|
||||
'Editing Backup Exclusions' => 'Edition des exclusions de Backup',
|
||||
'Generating CSR' => 'Génération d\'un jeton CSR',
|
||||
'Listing' => 'Listage',
|
||||
'Search Results' => 'Résultats de Recherche',
|
||||
|
||||
'active' => 'actif',
|
||||
'spnd' => 'suspendu',
|
||||
'suspended' => 'suspendus',
|
||||
'running' => 'lancé',
|
||||
'stopped' => 'arrêté',
|
||||
'outdated' => 'périmé',
|
||||
'updated' => 'mis-à-jour',
|
||||
|
||||
'yes' => 'oui',
|
||||
'no' => 'non',
|
||||
'none' => 'aucun',
|
||||
'pb' => 'po',
|
||||
'tb' => 'to',
|
||||
'gb' => 'go',
|
||||
'mb' => 'mo',
|
||||
'minute' => 'minute',
|
||||
'hour' => 'heure',
|
||||
'day' => 'jour',
|
||||
'days' => 'jours',
|
||||
'hours' => 'heures',
|
||||
'minutes' => 'minutes',
|
||||
'month' => 'mois',
|
||||
'package' => 'paquet',
|
||||
'Bandwidth' => 'Bande Passante',
|
||||
'Disk' => 'Disque',
|
||||
'Web' => 'Web',
|
||||
'Mail' => 'Mail',
|
||||
'Databases' => 'Bases de Données',
|
||||
'User Directories' => 'Répertoires Utilisateurs',
|
||||
'Template' => 'Template',
|
||||
'Web Template' => 'Template Apache',
|
||||
'Proxy Template' => 'Template Nginx',
|
||||
'DNS Template' => 'Template DNS',
|
||||
'Web Domains' => 'Domaines Web',
|
||||
'SSL Domains' => 'Domaines SSL',
|
||||
'Web Aliases' => 'Alias Web',
|
||||
'per domain' => 'par domaine',
|
||||
'DNS domains' => 'Domaines DNS',
|
||||
'DNS domains' => 'Domaines DNS',
|
||||
'DNS records' => 'Enregistrements DNS' ,
|
||||
'Name Servers' => 'Nom des Serveurs',
|
||||
'Mail Domains' => 'Domaines Mail',
|
||||
'Mail Accounts' => 'Comptes Mail',
|
||||
'Cron Jobs' => 'Tâches Cron',
|
||||
'SSH Access' => 'Accès SSH',
|
||||
'IP Addresses' => 'Adresses IP',
|
||||
'Backups' => 'Sauvegardes',
|
||||
'Backup System' => 'Système de Sauvegarde',
|
||||
'backup exclusions' => 'exclusions',
|
||||
'template' => 'template',
|
||||
'SSL Support' => 'Support SSL',
|
||||
'SSL Home Directory' => 'Racine SSL',
|
||||
'Proxy Support' => 'Support Nginx',
|
||||
'Proxy Extensions' => 'Extensions Nginx',
|
||||
'Web Statistics' => 'Statistiques Web',
|
||||
'Additional FTP Account' => 'FTP Additionnel',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => 'Expiration',
|
||||
'Records' => 'Enregistrements',
|
||||
'Catchall email' => 'Email de Récupération',
|
||||
'AntiVirus Support' => 'Support de l\'AntiVirus',
|
||||
'AntiSpam Support' => 'Support de l\'AntiSpam',
|
||||
'DKIM Support' => 'Support DKIM',
|
||||
'Accounts' => 'Comptes',
|
||||
'Quota' => 'Quota',
|
||||
'Autoreply' => 'Réponse Automatique',
|
||||
'Forward to' => 'Transférer à',
|
||||
'Do not store forwarded mail' => 'Ne pas conserver le mail transféré',
|
||||
'database' => 'base de données',
|
||||
'User' => 'Utilisateur',
|
||||
'Host' => 'Serveur',
|
||||
'Charset' => 'Charset',
|
||||
'Min' => 'Mn',
|
||||
'Hour' => 'Heure',
|
||||
'Day' => 'Jour',
|
||||
'Month' => 'Mois',
|
||||
'Day of week' => 'Jour de la semaine',
|
||||
'local' => 'local',
|
||||
'Run Time' => 'Temps d\'Exécution',
|
||||
'Backup Size' => 'Taille de la sauvegarde',
|
||||
'SYS' => 'SYS',
|
||||
'Domains' => 'Domaines',
|
||||
'Status' => 'Statuts',
|
||||
'shared' => 'partagé',
|
||||
'dedicated' => 'dédié',
|
||||
'Owner' => 'Propriétaire',
|
||||
'Users' => 'Utilisateurs',
|
||||
'Load Average' => 'Charge Moyenne',
|
||||
'Memory Usage' => 'Utilisation de la Mémoire',
|
||||
'HTTPD Usage' => 'Utilisation HTTPD',
|
||||
'NGINX Usage' => 'Utilisation NGINX',
|
||||
'MySQL Usage on localhost' => 'Utilisation de MySQL sur localhost',
|
||||
'PostgreSQL Usage on localhost' => 'Utilisation de PostgreSQL sur localhost',
|
||||
'Bandwidth Usage eth0' => 'Utilisation de la Bande Passante sur eth0',
|
||||
'FTP Usage' => 'Utilisation du FTP',
|
||||
'SSH Usage' => 'Utilisation SSH',
|
||||
'reverse proxy' => 'reverse proxy',
|
||||
'web server' => 'serveur web',
|
||||
'dns server' => 'serveur dns',
|
||||
'mail server' => 'serveur mail',
|
||||
'pop/imap server' => 'serveur pop/imap',
|
||||
'email antivirus' => 'email antivirus',
|
||||
'email antispam' => 'email antispam',
|
||||
'database server' => 'serveur de base de données',
|
||||
'ftp server' => 'serveur ftp',
|
||||
'job scheduler' => 'programmation de tâches',
|
||||
'CPU' => 'CPU',
|
||||
'Memory' => 'Mémoire',
|
||||
'Uptime' => 'Temps de Fonctionnement',
|
||||
'core package' => 'paquet de base',
|
||||
'php interpreter' => 'interpréteur php',
|
||||
'internal web server' => 'serveur web interne',
|
||||
'Version' => 'Version',
|
||||
'Release' => 'Release',
|
||||
'Architecture' => 'Architecture',
|
||||
'Object' => 'Objet',
|
||||
'Owner' => 'Propriétaire',
|
||||
'Username' => 'Nom d\'Utilisateur',
|
||||
'Password' => 'Mot de Passe',
|
||||
'Email' => 'Email',
|
||||
'Package' => 'Paquet',
|
||||
'Language' => 'Langue',
|
||||
'First Name' => 'Prénom',
|
||||
'Last Name' => 'Nom',
|
||||
'Send login credentials to email address' => 'Envoyer les identifiants à l\'adresse email',
|
||||
'Default Template' => 'Template par défaut',
|
||||
'Default Name Servers' => 'Nom de Serveurs par Défaut',
|
||||
'Domain' => 'Domaine',
|
||||
'DNS Support' => 'Support DNS',
|
||||
'Mail Support' => 'Support Email',
|
||||
'Advanced options' => 'Options avancées',
|
||||
'Aliases' => 'Alias',
|
||||
'SSL Certificate' => 'Certificat SSL',
|
||||
'SSL Key' => 'Clé SSL',
|
||||
'SSL Certificate Authority / Intermediate' => 'Autorité de certification SSL / Intermédiaire',
|
||||
'SSL CSR' => 'Jeton CSR SSL',
|
||||
'optional' => 'optionnel',
|
||||
'internal' => 'interne',
|
||||
'Statistics Authorization' => 'Droits d\'Accès aux Statistiques',
|
||||
'Statistics Auth' => 'Accès aux Statistiques',
|
||||
'Account' => 'Compte',
|
||||
'Prefix will be automaticaly added to username' => 'Le préfixe %s sera automatiquement ajouté au nom d\'utilisateur',
|
||||
'Send FTP credentials to email' => 'Envoyer les identifiants FTP à l\'adresse email',
|
||||
'Expiration Date' => 'Date d\'Expiration',
|
||||
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||
'Name servers' => 'Nom des serveurs',
|
||||
'Record' => 'Valeur de l\'Enregistrement',
|
||||
'IP or Value' => 'IP ou Valeur',
|
||||
'Priority' => 'Priorité',
|
||||
'Record Number' => 'Nombre d\'Enregistrements',
|
||||
'in megabytes' => 'en mégaoctets',
|
||||
'Message' => 'Message',
|
||||
'use local-part' => 'utilisation locale',
|
||||
'one or more email addresses' => 'une ou plusieurs adresses email',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'Le préfixe %s sera automatiquement ajouté au nom de la base de données et de son utilisateur',
|
||||
'Database' => 'Base de Données',
|
||||
'Type' => 'Type',
|
||||
'Minute' => 'Minute',
|
||||
'Command' => 'Commande',
|
||||
'Package Name' => 'Nom du Paquet',
|
||||
'Netmask' => 'Masque Réseau',
|
||||
'Interface' => 'Interface',
|
||||
'Shared' => 'Partagé',
|
||||
'Assigned user' => 'Utilisateur associé',
|
||||
'Assigned domain' => 'Domaine associé',
|
||||
'NAT IP association' => 'Association NAT IP',
|
||||
'shell' => 'shell',
|
||||
'web domains' => 'domaines web',
|
||||
'web aliases' => 'alias web',
|
||||
'dns records' => 'enregistrements dns',
|
||||
'mail domains' => 'domaines email',
|
||||
'mail accounts' => 'comptes email',
|
||||
'accounts' => 'comptes',
|
||||
'databases' => 'bases données',
|
||||
'cron jobs' => 'tâches cron',
|
||||
'backups' => 'sauvegardes',
|
||||
'quota' => 'quota',
|
||||
'day of week' => 'jour de la semaine',
|
||||
'cmd' => 'cmd',
|
||||
'users' => 'utilisateurs',
|
||||
'disk' => 'disque',
|
||||
'traffic' => 'traffic',
|
||||
'domains' => 'domaines',
|
||||
'aliases' => 'alias',
|
||||
'records' => 'enregistrements',
|
||||
'jobs' => 'tâches',
|
||||
'username' => 'nom d\'utilisateur',
|
||||
'password' => 'mot de passe',
|
||||
'type' => 'type',
|
||||
'charset' => 'charset',
|
||||
'domain' => 'domaine',
|
||||
'ip' => 'ip',
|
||||
'ip address' => 'adresse IP',
|
||||
'IP address' => 'Adresse IP',
|
||||
'netmask' => 'masque réseau',
|
||||
'interface' => 'interface',
|
||||
'assigned user' => 'utilisateur associé',
|
||||
'ns1' => 'ns1',
|
||||
'ns2' => 'ns2',
|
||||
'user' => 'utilisateur',
|
||||
'email' => 'email',
|
||||
'first name' => 'prénom',
|
||||
'last name' => 'nom',
|
||||
'account' => 'compte',
|
||||
'ssl certificate' => 'certificat ssl',
|
||||
'ssl key' => 'clé ssl',
|
||||
'stats user password' => 'Mot de passe du compte statistiques',
|
||||
'stats username' => 'utilisateur statistiques',
|
||||
'stats password' => 'mot de passe statistiques',
|
||||
'ftp user password' => 'mot de passe ftp',
|
||||
'ftp user' => 'utilisateur ftp',
|
||||
'Last 70 lines of %s.%s.log' => 'Dernières 70 lignes du fichier %s.%s.log',
|
||||
'Download AccessLog' => 'Télécharger le fichier AccessLog',
|
||||
'Download ErrorLog' => 'Télécharger le fichier ErrorLog',
|
||||
'Country' => 'Pays',
|
||||
'2 letter code' => 'Code sur 2 lettres',
|
||||
'State / Province' => 'Pays / Province',
|
||||
'City / Locality' => 'Ville',
|
||||
'Organization' => 'Organisation',
|
||||
|
||||
'1 account' => '1 compte',
|
||||
'%s accounts' => '%s comptes',
|
||||
'1 domain' => '1 domaine',
|
||||
'%s domains' => '%s domaines',
|
||||
'1 record' => '1 enregistrement',
|
||||
'%s records' => '%s enregistrements',
|
||||
'1 mail account' => '1 compte email',
|
||||
'%s mail accounts' => '%s comptes email',
|
||||
'1 database' => '1 base de données',
|
||||
'%s databases' => '%s base de données',
|
||||
'1 cron job' => '1 tâche cron',
|
||||
'%s cron jobs' => '%s tâches cron',
|
||||
'1 archive' => '1 archive',
|
||||
'%s archives' => '%s archives',
|
||||
'1 package' => '1 paquet',
|
||||
'%s packages' => '%s paquets',
|
||||
'1 IP address' => '1 adresse IP',
|
||||
'%s IP addresses' => '%s adresses IP',
|
||||
'1 month' => '1 mois',
|
||||
'%s months' => '%s mois',
|
||||
'1 log record' => '1 enregistrement',
|
||||
'%s log records' => '%s enregistrements',
|
||||
'1 object' => '1 objet',
|
||||
'%s objects' => '%s objets',
|
||||
'no exclusions' => 'pas d\'exclusions',
|
||||
|
||||
'USER_CREATED_OK' => 'Utilisateur <a href="/edit/user/?user=%s"><b>%s</b></a> créé avec succès.',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'Domaine <a href="/edit/web/?domain=%s"><b>%s</b></a> créé avec succès.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'Domaine DNS <a href="/list/dns/?domain=%s"><b>%s</b></a> créé avec succès.',
|
||||
'DNS_RECORD_CREATED_OK' => 'L\'enregistrement <b>%s.%s</b> a été créé avec succès.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Le domaine email <a href="/list/mail/?domain=%s"><b>%s</b></a> a été créé avec succès.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'Le compte email <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> a été créé avec succès.',
|
||||
'DATABASE_CREATED_OK' => 'La base de données <a href="/edit/db/?database=%s"><b>%s</b></a> a été créée avec succès.',
|
||||
'CRON_CREATED_OK' => 'La tâche Cron a été créée avec succès.',
|
||||
'IP_CREATED_OK' => 'L\'adresse IP <a href="/edit/ip/?ip=%s"><b>%s</b></a> a été créée avec succès.',
|
||||
'PACKAGE_CREATED_OK' => 'Le paquet <a href="/edit/package/?package=%s"><b>%s</b></a> a été créé avec succès.',
|
||||
'SSL_GENERATED_OK' => 'Le certificat a été généré avec succès.',
|
||||
'Autoupdate has been successfully enabled' => 'Les mises-à-jour automatiques ont été activées avec succès.',
|
||||
'Autoupdate has been successfully disabled' => 'Les mises-à-jour automatiques ont été desactivées avec succès.',
|
||||
'Changes has been saved.' => 'Les changements ont été sauvegardés.',
|
||||
'Confirmation' => 'Confirmation',
|
||||
'DELETE_USER_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer l\'utilisateur %s ?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre l\'utilisateur %s ?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver l\'utilisateur %s ?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer le domaine %s ?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre le domaine %s ?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver le domaine %s ?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer l\'enregistrement %s ?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre l\'enregistrement %s ?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver l\'enregistrement %s ?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer %s ?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre %s ?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver %s ?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer la base de données %s ?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre la base de données %s ?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver la base de données %s ?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Êtes-vous sûr de vouloir suprimer la tâche cron ?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Êtes-vous sûr de vouloir suspendre la tâche cron ?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Êtes-vous sûr de vouloir réactiver la tâche cron ?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer la sauvergarde %s ?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer l\'exclusion %s ?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer le paquet %s ?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Êtes-vous sûr de vouloir supprimer l\'adresse IP %s ?',
|
||||
'RESTART_CONFIRMATION' => 'Êtes-vous sûr de vouloir redémarrer le serveur %s ?',
|
||||
'Welcome' => 'Bienvenue',
|
||||
'LOGGED_IN_AS' => 'Connecté en tant que %s',
|
||||
'Error' => 'Erreur',
|
||||
'Invalid username or password' => 'Nom d\'utilisateur ou mot de passe invalide.',
|
||||
'Invalid username or code' => 'Nom d\'utilisateur ou code de confirmation invalide.',
|
||||
'Passwords not match' => 'Les mots de passe ne correspondent pas.',
|
||||
'Please enter valid email address.' => 'Veuillez entrer une adresse email valide.',
|
||||
'Field "%s" can not be blank.' => 'Le champ "%s" ne peut être vide.',
|
||||
'Password is too short.' => 'Le mot de passe est trop court (6 caractères minimum)',
|
||||
'Error code:' => 'Code erreur : %s',
|
||||
'SERVICE_ACTION_FAILED' => '"%s" "%s" échouée',
|
||||
'IP address is in use' => 'L\'adresse IP est en cours d\'utilisation',
|
||||
'BACKUP_SCHEDULED' => 'La tâche a bien été ajoutée à la liste. Vous recevrez un mail de confirmation lorsque la sauvegarde sera prête pour le téléchargement.',
|
||||
'BACKUP_EXISTS' => 'La création d\'une sauvegarde est déjà en cours. Veuillez attendre que celle-ci soit terminée.',
|
||||
'RESTORE_SCHEDULED' => 'La tâche a bien été ajoutée à la liste. Vous recevrez un mail de confirmation lorsque sera terminée.',
|
||||
'RESTORE_EXISTS' => 'La restauration d\'une sauvegarde est déjà en cours. Veuillez attendre que celle-ci soit terminée avant d\en lancer une nouvelle.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Entrez les noms de domaines, un par ligne. Pour exclure tous les domaines utilisez *. Pour exclure des répertoires spécifiques utilisez le format suivant : domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "Entrez les noms de domaines, un par ligne. Pour exclure tous les domaines utilisez *.",
|
||||
'MAIL_EXCLUSIONS' => "Entrez les domaines, un par ligne. Pour exclure tous les domaines utilisez *. Pour exclure des comptes spécifiques utilisez le format suivant : domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "Entrez le nom complet des bases de données, une par ligne. Pour exclure toutes les bases de données utilisez *.",
|
||||
'CRON_EXCLUSIONS' => "Pour explure toutes les tâches utilisez *.",
|
||||
'USER_EXCLUSIONS' => "Entrez les noms de répertoires, un par ligne. Pour exclure tous les répertoires utilisez *.",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Bienvenue sur l\interface d\'administration Vesta CP',
|
||||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Bonjour, %s %s,\n",
|
||||
'GREETINGS' => "Bonjour,\n",
|
||||
'ACCOUNT_READY' => "Votre compte a été créé avec succès et est prêt à l\'emploi.\n\nhttps://%s/login/\nUtilisateur : %s\nMot de Passe : %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'FTP login credentials' => 'Identifiants de connexion FTP',
|
||||
'FTP_ACCOUNT_READY' => "Le compte FTP a été créé avec succès et est prêt à l\'emploi.\n\nHôte : %s\nUtilisateur : %s_%s\nMot de Passe : %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'Database Credentials' => 'Identifiants de connexion à la Base de Données',
|
||||
'DATABASE_READY' => "La base de données a été créée avec succès et est prête à l\'emploi.\n\nBase de Données : %s\nUtilisateur : %s\nMot de Passe: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'forgot password' => 'mot de passe oublié',
|
||||
'Confirm' => 'Confirmer',
|
||||
'New Password' => 'Nouveau mot de passe',
|
||||
'Confirm Password' => 'Confirmer le mot de passe',
|
||||
'Reset' => 'Réinitialiser',
|
||||
'Reset Code' => 'Code de Réinitialisation',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'Un Code de Réinitialisation de votre mot de passe a été envoyé à votre adresse email<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'Réinitialisation du mot de passe de %s',
|
||||
'PASSWORD_RESET_REQUEST' => "Pour réinitialiser votre mot de passe, veuillez suivre le lien suivant :\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nSinon, vous pouvez suivre https://%s/reset/?action=code&user=%s et entrer le code de réinitialisation suivant :\n%s\n\nSi vous n'avez pas demandé la réinitialisation de votre mot de passe, veuillez ignorer ce message. Nous vous prions de nous excuser pour la gène occasionnée.\n\n--\nVesta Control Panel\n",
|
||||
);
|
445
web/inc/i18n/hu.php
Normal file
|
@ -0,0 +1,445 @@
|
|||
<?php
|
||||
/**
|
||||
* Vesta hungarian language file
|
||||
* Készítette: Kovács Ákos - (kovacsakos1991@gmail.com)
|
||||
* www.kovacsakos.info
|
||||
* 2014.06.18.
|
||||
*/
|
||||
|
||||
$LANG['hu'] = array(
|
||||
'Packages' => 'Csomagok',
|
||||
'IP' => 'IP',
|
||||
'Graphs' => 'Grafikonok',
|
||||
'Statistics' => 'Statisztikák',
|
||||
'Log' => 'Log',
|
||||
'Services' => 'Szolgáltatások',
|
||||
'Updates' => 'Frissítések',
|
||||
'Log in' => 'Belépés',
|
||||
'Log out' => 'Kilépés',
|
||||
|
||||
'USER' => 'USER',
|
||||
'WEB' => 'WEB',
|
||||
'DNS' => 'DNS',
|
||||
'MAIL' => 'MAIL',
|
||||
'DB' => 'ADATBÁZIS',
|
||||
'CRON' => 'CRON',
|
||||
'BACKUP' => 'MENTÉS',
|
||||
|
||||
'Add User' => 'Új felhasználó',
|
||||
'Add Domain' => 'Új domain',
|
||||
'Add Web Domain' => 'Új Web Domain',
|
||||
'Add DNS Domain' => 'Új DNS Domain',
|
||||
'Add DNS Record' => 'Új DNS Record',
|
||||
'Add Mail Domain' => 'Új Mail Domain',
|
||||
'Add Mail Account' => 'Új Mail fiók',
|
||||
'Add Database' => 'Új adatbázis',
|
||||
'Add Cron Job' => 'Új Cron Job',
|
||||
'Create Backup' => 'Mentés készítése',
|
||||
'Configure' => 'Beállítás',
|
||||
'Restore All' => 'Összes visszaállítása',
|
||||
'Add Package' => 'Csomag hozzáadása',
|
||||
'Add IP' => 'Új IP',
|
||||
'Add one more FTP Account' => 'Add one more FTP Account',
|
||||
'Search' => 'Keresés',
|
||||
'Overall Statistics' => 'Átfogó statisztikák',
|
||||
'Daily' => 'Napi',
|
||||
'Weekly' => 'Heti',
|
||||
'Monthly' => 'Havi',
|
||||
'Yearly' => 'Éves',
|
||||
'Add' => 'Hozzáadás',
|
||||
'Back' => 'Vissza',
|
||||
'Save' => 'Mentés',
|
||||
'Submit' => 'OK',
|
||||
|
||||
'toggle all' => 'összes kinyit/bezár',
|
||||
'apply to selected' => 'alkalmazás a kiválasztottakra',
|
||||
'rebuild' => 'újratelepít',
|
||||
'rebuild web' => 'web újraépítés',
|
||||
'rebuild dns' => 'dns újraépítés',
|
||||
'rebuild mail' => 'mail újraépítés',
|
||||
'rebuild db' => 'adatbázis újraépítés',
|
||||
'rebuild cron' => 'cron újraépítés',
|
||||
'update counters' => 'számlálók frissítése',
|
||||
'suspend' => 'felfüggeszt',
|
||||
'unsuspend' => 'újraaktivál',
|
||||
'delete' => 'törlés',
|
||||
'show per user' => 'felhasználónként listáz',
|
||||
'login as' => 'bejelentkezés, mint',
|
||||
'logout' => 'kilépés',
|
||||
'edit' => 'szerkesztés',
|
||||
'open webstats' => 'statisztikák megnyitása',
|
||||
'view logs' => 'logok megnyitása',
|
||||
'list records' => '%s record listázása',
|
||||
'add record' => 'rekord hozzáadása',
|
||||
'list accounts' => '%s fiók listázása',
|
||||
'add account' => 'fiók hozzáadása',
|
||||
'open webmail' => 'webmail megnyitása',
|
||||
'open %s' => '%s megnyitása',
|
||||
'download' => 'letöltés',
|
||||
'restore' => 'visszaállítás',
|
||||
'configure restore settings' => 'visszaállítási beállítások konfigurálása',
|
||||
'stop' => 'stop',
|
||||
'start' => 'start',
|
||||
'restart' => 'újraindítás',
|
||||
'update' => 'frissítés',
|
||||
'generate' => 'létrehoz',
|
||||
'Generate CSR' => 'CSR generálás',
|
||||
'reread IP' => 'IP újraolvasása',
|
||||
'enable autoupdate' => 'automatikus frissítés engedélyezése',
|
||||
'disable autoupdate' => 'automatikus frissítés tiltása',
|
||||
|
||||
'Adding User' => 'Felhasználó hozzáadása',
|
||||
'Editing User' => 'Felhasználó szerkesztése',
|
||||
'Adding Domain' => 'Domain hozzáadása',
|
||||
'Editing Domain' => 'Domain szerkesztése',
|
||||
'Adding DNS Domain' => 'DNS Domain hozzáadása',
|
||||
'Editing DNS Domain' => 'DNS Domain szerkesztése',
|
||||
'Adding DNS Record' => 'DNS Rekord hozzáadása',
|
||||
'Editing DNS Record' => 'DNS Record szerkesztése',
|
||||
'Adding Mail Domain' => 'Mail Domain hozzáadása',
|
||||
'Editing Mail Domain' => 'Mail Domain szerkesztése',
|
||||
'Adding Mail Account' => 'Mail Fiók hozzáadása',
|
||||
'Editing Mail Account' => 'Mail Fiók szerkesztése',
|
||||
'Adding database' => 'Adatbázis hozzáadása',
|
||||
'Editing Cron Job' => 'Cron Job szerkesztése',
|
||||
'Adding Cron Job' => 'Cron Job hozzáadása',
|
||||
'Editing Database' => 'Adatbázis szerkesztése',
|
||||
'Adding Package' => 'Csomag hozzáadása',
|
||||
'Editing Package' => 'Csomag szerkesztése',
|
||||
'Adding IP address' => 'IP cím hozzáadása',
|
||||
'Editing IP Address' => 'IP cím szerkesztése',
|
||||
'Editing Backup Exclusions' => 'Mentési kivételek szerkesztése',
|
||||
'Generating CSR' => 'CSR generálása',
|
||||
'Listing' => 'Listázás',
|
||||
'Search Results' => 'Keresési eredmények',
|
||||
|
||||
'active' => 'aktív',
|
||||
'spnd' => 'felfüggesztett',
|
||||
'suspended' => 'felfüggesztett',
|
||||
'running' => 'fut',
|
||||
'stopped' => 'megállított',
|
||||
'outdated' => 'elavult',
|
||||
'updated' => 'frissített',
|
||||
|
||||
'yes' => 'igen',
|
||||
'no' => 'nem',
|
||||
'none' => 'egyik sem',
|
||||
'pb' => 'pb',
|
||||
'tb' => 'tb',
|
||||
'gb' => 'gb',
|
||||
'mb' => 'mb',
|
||||
'minute' => 'perc',
|
||||
'hour' => 'óra',
|
||||
'day' => 'nap',
|
||||
'days' => 'nap',
|
||||
'hours' => 'óra',
|
||||
'minutes' => 'perc',
|
||||
'month' => 'hónap',
|
||||
'package' => 'csomag',
|
||||
'Bandwidth' => 'Sávszélesség',
|
||||
'Disk' => 'Lemezterület',
|
||||
'Web' => 'Web',
|
||||
'Mail' => 'Mail',
|
||||
'Databases' => 'Adatbázis',
|
||||
'User Directories' => 'Felhasználói könyvtárak',
|
||||
'Template' => 'Sablon',
|
||||
'Web Template' => 'Apache sablon',
|
||||
'Proxy Template' => 'Nginx sablon',
|
||||
'DNS Template' => 'DNS sablon',
|
||||
'Web Domains' => 'Web Domainek',
|
||||
'SSL Domains' => 'SSL Domainek',
|
||||
'Web Aliases' => 'Web Alias',
|
||||
'per domain' => 'domainenként',
|
||||
'DNS domains' => 'DNS Domainek',
|
||||
'DNS domains' => 'DNS Domainek',
|
||||
'DNS records' => 'DNS recordok' ,
|
||||
'Name Servers' => 'Name Serverek',
|
||||
'Mail Domains' => 'Mail Domainek',
|
||||
'Mail Accounts' => 'Mail Fiókok',
|
||||
'Cron Jobs' => 'Cron Jobs',
|
||||
'SSH Access' => 'SSH hozzáférés',
|
||||
'IP Addresses' => 'IP Címek',
|
||||
'Backups' => 'Mentések',
|
||||
'Backup System' => 'Mentési rendszer',
|
||||
'backup exclusions' => 'kihagyás a mentésből',
|
||||
'template' => 'sablon',
|
||||
'SSL Support' => 'SSL támogatás',
|
||||
'SSL Home Directory' => 'SSL kezdőlap',
|
||||
'Proxy Support' => 'Nginx támogatás',
|
||||
'Proxy Extensions' => 'Nginx kiterjesztések',
|
||||
'Web Statistics' => 'Web statisztikák',
|
||||
'Additional FTP Account' => 'Hozzáadott FTP',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => 'Lejár',
|
||||
'Records' => 'Rekordok',
|
||||
'Catchall email' => 'Catchall email',
|
||||
'AntiVirus Support' => 'AntiVirus támogatás',
|
||||
'AntiSpam Support' => 'AntiSpam támogatás',
|
||||
'DKIM Support' => 'DKIM támogatás',
|
||||
'Accounts' => 'Fiókok',
|
||||
'Quota' => 'Kvóta',
|
||||
'Autoreply' => 'Automatikus válasz',
|
||||
'Forward to' => 'Továbbítás',
|
||||
'Do not store forwarded mail' => 'Továbbított e-mailek mentésének tiltása',
|
||||
'database' => 'adatbázis',
|
||||
'User' => 'Felhasználó',
|
||||
'Host' => 'Hoszt',
|
||||
'Charset' => 'Karakterkódolás',
|
||||
'Min' => 'Perc',
|
||||
'Hour' => 'Óra',
|
||||
'Day' => 'Nap',
|
||||
'Month' => 'Hónap',
|
||||
'Day of week' => 'A hét napja',
|
||||
'local' => 'helyi',
|
||||
'Run Time' => 'Futási idő',
|
||||
'Backup Size' => 'Mentés mérete',
|
||||
'SYS' => 'SYS',
|
||||
'Domains' => 'Domainek',
|
||||
'Status' => 'Státusz',
|
||||
'shared' => 'megosztott',
|
||||
'dedicated' => 'dedikált',
|
||||
'Owner' => 'Tulajdonos',
|
||||
'Users' => 'Felhasználók',
|
||||
'Load Average' => 'Load átlag',
|
||||
'Memory Usage' => 'Memória használat',
|
||||
'HTTPD Usage' => 'HTTPD használat',
|
||||
'NGINX Usage' => 'NGINX használat',
|
||||
'MySQL Usage on localhost' => 'MySQL használat a localhoston',
|
||||
'PostgreSQL Usage on localhost' => 'PostgreSQL használat a localhoston',
|
||||
'Bandwidth Usage eth0' => 'eth0 sávszélesség használat',
|
||||
'FTP Usage' => 'FTP használat',
|
||||
'SSH Usage' => 'SSH használat',
|
||||
'reverse proxy' => 'fordított proxy',
|
||||
'web server' => 'web szerver',
|
||||
'dns server' => 'dns szerver',
|
||||
'mail server' => 'mail szerver',
|
||||
'pop/imap server' => 'pop/imap szerver',
|
||||
'email antivirus' => 'email antivirus',
|
||||
'email antispam' => 'email antispam',
|
||||
'database server' => 'adatbázis szerver',
|
||||
'ftp server' => 'ftp szerver',
|
||||
'job scheduler' => 'job ütemező',
|
||||
'CPU' => 'CPU',
|
||||
'Memory' => 'Memória',
|
||||
'Uptime' => 'Futási idő',
|
||||
'core package' => 'alapcsomag',
|
||||
'php interpreter' => 'php értelmező',
|
||||
'internal web server' => 'külső web szerver',
|
||||
'Version' => 'Verzió',
|
||||
'Release' => 'Kiadás',
|
||||
'Architecture' => 'Architektúra',
|
||||
'Object' => 'Objektum',
|
||||
'Owner' => 'Tulajdonos',
|
||||
'Username' => 'Felhasználónév',
|
||||
'Password' => 'Jelszó',
|
||||
'Email' => 'Email',
|
||||
'Package' => 'Csomag',
|
||||
'Language' => 'Nyelv',
|
||||
'First Name' => 'Keresztnév',
|
||||
'Last Name' => 'Vezetéknév',
|
||||
'Send login credentials to email address' => 'Belépési adatok küldése e-mailben',
|
||||
'Default Template' => 'Alapértelmezett sablon',
|
||||
'Default Name Servers' => 'Alapértelmezett névszerverek',
|
||||
'Domain' => 'Domain',
|
||||
'DNS Support' => 'DNS támogatás',
|
||||
'Mail Support' => 'Mail támogatás',
|
||||
'Advanced options' => 'Haladó beállítások',
|
||||
'Aliases' => 'Aliaszok',
|
||||
'SSL Certificate' => 'SSL igazolás',
|
||||
'SSL Key' => 'SSL kulcs',
|
||||
'SSL Certificate Authority / Intermediate' => 'SSL igazolás engedélyezése',
|
||||
'SSL CSR' => 'SSL CSR',
|
||||
'optional' => 'opcionális',
|
||||
'internal' => 'belső',
|
||||
'Statistics Authorization' => 'Statisztika engedélyezése',
|
||||
'Statistics Auth' => 'Statisztika engedélyezése',
|
||||
'Account' => 'Fiók',
|
||||
'Prefix will be automaticaly added to username' => 'A(z) %s előtag automatikusan hozzáadásra kerül a felhasználónévhez.',
|
||||
'Send FTP credentials to email' => 'FTP adatok küldése e-mailben',
|
||||
'Expiration Date' => 'Lejárati dárum',
|
||||
'YYYY-MM-DD' => 'ÉÉÉÉ-HH-NN',
|
||||
'Name servers' => 'Névszerverek',
|
||||
'Record' => 'Rekord',
|
||||
'IP or Value' => 'IP avgy érték',
|
||||
'Priority' => 'Prioritás',
|
||||
'Record Number' => 'Rekord száma',
|
||||
'in megabytes' => 'megabájtokban',
|
||||
'Message' => 'üzenet',
|
||||
'use local-part' => 'helyi rész használata',
|
||||
'one or more email addresses' => 'egy vagy több e-mail cím',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'A(z) %s előtag automatikusan hozzáadásra kerül az adatbázis felhasználónévhez',
|
||||
'Database' => 'Adatbázis',
|
||||
'Type' => 'Típus',
|
||||
'Minute' => 'Perc',
|
||||
'Command' => 'Parancs',
|
||||
'Package Name' => 'Csomagnév',
|
||||
'Netmask' => 'Netmask',
|
||||
'Interface' => 'Interfész',
|
||||
'Shared' => 'Megosztott',
|
||||
'Assigned user' => 'Hozzárendelt felhasználó',
|
||||
'Assigned domain' => 'Hozzárendelt domain',
|
||||
'NAT IP association' => 'NAT IP hozzárendelés',
|
||||
'shell' => 'rendszerhéj',
|
||||
'web domains' => 'web domainek',
|
||||
'web aliases' => 'web aliaszok',
|
||||
'dns records' => 'dns rekordok',
|
||||
'mail domains' => 'mail domainek',
|
||||
'mail accounts' => 'mail fiókok',
|
||||
'accounts' => 'fiókok',
|
||||
'databases' => 'adatbázisok',
|
||||
'cron jobs' => 'cron jobs',
|
||||
'backups' => 'mentések',
|
||||
'quota' => 'kvóta',
|
||||
'day of week' => 'a hét napja',
|
||||
'cmd' => 'cmd',
|
||||
'users' => 'felhasználók',
|
||||
'domains' => 'domainek',
|
||||
'aliases' => 'aliaszok',
|
||||
'records' => 'rekordok',
|
||||
'jobs' => 'jobs',
|
||||
'username' => 'felhasználónév',
|
||||
'password' => 'jelszó',
|
||||
'type' => 'típus',
|
||||
'charset' => 'karakterkódolás',
|
||||
'domain' => 'domain',
|
||||
'ip' => 'ip',
|
||||
'ip address' => 'ip cím',
|
||||
'IP address' => 'IP cím',
|
||||
'netmask' => 'netmaszk',
|
||||
'interface' => 'interfész',
|
||||
'assigned user' => 'hozzárendelt felhasználó',
|
||||
'ns1' => 'ns1',
|
||||
'ns2' => 'ns2',
|
||||
'user' => 'felhasználó',
|
||||
'email' => 'email',
|
||||
'first name' => 'vezetéknév',
|
||||
'last name' => 'keresztnév',
|
||||
'account' => 'fiók',
|
||||
'ssl certificate' => 'ssl hitelesítés',
|
||||
'ssl key' => 'ssl kulcs',
|
||||
'stats user password' => 'stats user password',
|
||||
'stats username' => 'stats username',
|
||||
'stats password' => 'stats password',
|
||||
'ftp user password' => 'ftp felhasználónév',
|
||||
'ftp user' => 'ftp felhasználó',
|
||||
'Last 70 lines of %s.%s.log' => 'A %s.%s.log utolsó 70 sora',
|
||||
'Download AccessLog' => 'AccessLog letöltése',
|
||||
'Download ErrorLog' => 'ErrorLog letöltése',
|
||||
'Country' => 'Ország',
|
||||
'2 letter code' => '2 Irányítószám',
|
||||
'State / Province' => 'Megye',
|
||||
'City / Locality' => 'Város',
|
||||
'Organization' => 'Szervezet',
|
||||
|
||||
'1 account' => '1 fiók',
|
||||
'%s accounts' => '%s fiók',
|
||||
'1 domain' => '1 domain',
|
||||
'%s domains' => '%s domainek',
|
||||
'1 record' => '1 rekord',
|
||||
'%s records' => '%s recordok',
|
||||
'1 mail account' => '1 mail fiók',
|
||||
'%s mail accounts' => '%s mail fiókok',
|
||||
'1 database' => '1 adatbázis',
|
||||
'%s databases' => '%s adatbázis',
|
||||
'1 cron job' => '1 cron job',
|
||||
'%s cron jobs' => '%s cron job',
|
||||
'1 archive' => '1 archívum',
|
||||
'%s archives' => '%s archívum',
|
||||
'1 package' => '1 csomag',
|
||||
'%s packages' => '%s csomag',
|
||||
'1 IP address' => '1 IP cím',
|
||||
'%s IP addresses' => '%s IP cím',
|
||||
'1 month' => '1 hónap',
|
||||
'%s months' => '%s hónap',
|
||||
'1 log record' => '1 log rekord',
|
||||
'%s log records' => '%s log rekord',
|
||||
'1 object' => '1 objektum',
|
||||
'%s objects' => '%s objektum',
|
||||
'no exclusions' => 'nincs kihagyás',
|
||||
|
||||
'USER_CREATED_OK' => '<a href="/edit/user/?user=%s"><b>%s</b></a> felhasználó sikeresen létrehozva.',
|
||||
'WEB_DOMAIN_CREATED_OK' => '<a href="/edit/web/?domain=%s"><b>%s</b></a> domain sikeresen létrehozva.',
|
||||
'DNS_DOMAIN_CREATED_OK' => '<a href="/list/dns/?domain=%s"><b>%s</b></a> DNS domain sikeresen létrehozva.',
|
||||
'DNS_RECORD_CREATED_OK' => '<b>%s.%s</b> rekord sikeresen létrehozva.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => '<a href="/list/mail/?domain=%s"><b>%s</b></a> ail domain sikeresen létrehozva.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => '<a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> mail fiók sikeresen létrehozva.',
|
||||
'DATABASE_CREATED_OK' => '<a href="/edit/db/?database=%s"><b>%s</b></a> adatbázis sikeresen létrehozva.',
|
||||
'CRON_CREATED_OK' => 'Cron job sikeresen létrehozva.',
|
||||
'IP_CREATED_OK' => '<a href="/edit/ip/?ip=%s"><b>%s</b></a> IP cím sikeresen létrehozva.',
|
||||
'PACKAGE_CREATED_OK' => 'A(z) <a href="/edit/package/?package=%s"><b>%s</b></a> csomag sikeresen létrehozva.',
|
||||
'SSL_GENERATED_OK' => 'A tanúsítvány sikeresen létrehozva.',
|
||||
'Autoupdate has been successfully enabled' => 'Az automatikus frissítés bekapcsolva.',
|
||||
'Autoupdate has been successfully disabled' => 'Az automatikus frissítés kikapcsolva.',
|
||||
'Changes has been saved.' => 'A módosítások sikeresen mentésre kerültek.',
|
||||
'Confirmation' => 'Megerősítés',
|
||||
'DELETE_USER_CONFIRMATION' => 'Biztos, hogy törölni szeretnéd %s felhasználót?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Biztos, hogy felfüggeszted %s felhasználót?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni %s felhasználót?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s domaint?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s domaint?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s domaint?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s rekordot?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s rekordot?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s rekordot?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s -t?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy felfüggeszted a(z) %s -t?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s -t?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s adatbázist?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s adatbázist?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a(z) %s adatbázist?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Biztos, hogy törlöd a cron job-ot?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Biztos, hogy felfüggeszted a cron job-ot?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Biztos, hogy újra szeretnéd aktiválni a cron job-ot?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s mentést?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s kivételt?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Biztos, hogy törlöd a(z) %s csomagot?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Biztos, hogy törlöd a(z) IP címet?',
|
||||
'RESTART_CONFIRMATION' => 'Are you sure you want to restart %s?',
|
||||
'Welcome' => 'Üdvözöljük',
|
||||
'LOGGED_IN_AS' => 'Belépve, mint %s',
|
||||
'Error' => 'Hiba',
|
||||
'Invalid username or password' => 'Hibás felhasználónév vagy jelszó',
|
||||
'Invalid username or code' => 'Hibás felhasználónév vagy kód',
|
||||
'Passwords not match' => 'A jelszavak nem egyeznek meg',
|
||||
'Please enter valid email address.' => 'Kérlek valós e-mail címet adj meg!',
|
||||
'Field "%s" can not be blank.' => 'A(z) "%s" mező nem lehet üres.',
|
||||
'Password is too short.' => 'A jelszó túl rövid.(minimum 6 karakter)',
|
||||
'Error code:' => 'Hibakód: %s',
|
||||
'SERVICE_ACTION_FAILED' => 'A(z) "%s" "%s" meghiúsult',
|
||||
'IP address is in use' => 'Az IP cím használatban van.',
|
||||
'BACKUP_SCHEDULED' => 'A feladat végrehajtás alatt. A mentés elkészültéről e-mail értesítést fogunk küldeni.',
|
||||
'BACKUP_EXISTS' => 'Egy mentés már folyamatban van. Kérlek várj, míg elkészül.',
|
||||
'RESTORE_SCHEDULED' => 'A feladat a végrehajtási sorba került. A mentés elkészültéről e-mail értesítést fogunk küldeni.',
|
||||
'RESTORE_EXISTS' => 'Egy visszaállítás már folyamatban van. Kérlek várj, míg elkészül.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes kihagyásához használj "*" -ot. Adott könyvtár kihagyásához használd a következő formátumot: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes kihagyásához használj "*" -ot.",
|
||||
'MAIL_EXCLUSIONS' => "Írd be a domain nevet, soronként egyet. Az összes domain kihagyásához használj "*" -ot. Adott fiók kihagyásához használd a következő formátumot: domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "Írd be az adatbázis teljes nevét, soronként egyet. Az összes adatbázis kihagyásához használj "*" -ot",
|
||||
'CRON_EXCLUSIONS' => "Az összes job kihagyásához használj "*" -ot.",
|
||||
'USER_EXCLUSIONS' => "Írd be a könyvtár nevét, soronként egyet. Az összes kihagyásához használj "*" -ot.",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Üdv, a Kezelőfelület!',
|
||||
'MAIL_FROM' => 'Kezelőfelület <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Üdv, %s %s,\n",
|
||||
'GREETINGS' => "Üdv,\n",
|
||||
'ACCOUNT_READY' => "A fiókod létrejött és készen áll a használatra.\n\nhttps://%s/login/\nFelhasználónév: %s\nJelszó: %s\n\n--\nKezelőfelület\n",
|
||||
|
||||
'FTP login credentials' => 'FTP belépési adatok',
|
||||
'FTP_ACCOUNT_READY' => "Az FTP felhasználó létrejött és készen áll a használatra.\n\nKiszolgáló: %s\nFelhasználónév: %s_%s\nJelszó: %s\n\n--\nKezelőfelület\n",
|
||||
|
||||
'Database Credentials' => 'Adatbázis adatok',
|
||||
'DATABASE_READY' => "Az adatbázis létrejött és készen áll a használatra.\n\nAdatbázis: %s\nFelhasználónév: %s\nJelszó: %s\n%s\n\n--\nKezelőfelület\n",
|
||||
|
||||
'forgot password' => 'elfelejtett jelszó',
|
||||
'Confirm' => 'Megerősít',
|
||||
'New Password' => 'Új jelszó',
|
||||
'Confirm Password' => 'Jelszó megerősítése',
|
||||
'Reset' => 'Visszaállít',
|
||||
'Reset Code' => 'Kód újragenerálása',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'A jelszó visszaállításhoz szükséges kód elküldésre került az e-mail címedre<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'Jelszó újragenerálás %s -kor',
|
||||
'PASSWORD_RESET_REQUEST' => "A panel jelszavad visszaállításához kattints a következő linkre:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternatively, vagy használd a következőt https://%s/reset/?action=code&user=%s és írd be a kódot:\n%s\n\nHa nem Te kérted a visszaállítást, kérlek hagyd figyelmen kívül ezt a levelet.\n\n--\nKezelőfelület\n",
|
||||
);
|
|
@ -40,6 +40,7 @@ $LANG['id'] = array(
|
|||
'Restore All' => 'Kembalikan Semua',
|
||||
'Add Package' => 'Tambah Paket',
|
||||
'Add IP' => 'Tambah IP',
|
||||
'Add one more FTP Account' => 'Tambah satu lagi Pengguna FTP',
|
||||
'Search' => 'Cari',
|
||||
'Overall Statistics' => 'Seluruh Statistik',
|
||||
'Daily' => 'Harian',
|
||||
|
@ -395,6 +396,7 @@ $LANG['id'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Pengecualian %s mau dihapus?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Paket %s mau dihapus?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Alamat IP %s beneran mau dihapus?',
|
||||
'RESTART_CONFIRMATION' => '%s mau me-restart?',
|
||||
'Welcome' => 'Selamat Datang',
|
||||
'LOGGED_IN_AS' => 'Masuk sebagai pengguna %s',
|
||||
'Error' => 'Kesalahan',
|
||||
|
|
444
web/inc/i18n/it.php
Normal file
|
@ -0,0 +1,444 @@
|
|||
<?php
|
||||
/**
|
||||
* Vesta language file
|
||||
* Fabio Cagliero - fab120 (fabio@webnuvola.com)
|
||||
* https://github.com/fab120/ - https://facebook.com/fab120
|
||||
*/
|
||||
|
||||
$LANG['it'] = array(
|
||||
'Packages' => 'Pacchetti',
|
||||
'IP' => 'IP',
|
||||
'Graphs' => 'Grafici',
|
||||
'Statistics' => 'Statistiche',
|
||||
'Log' => 'Log',
|
||||
'Services' => 'Servizi',
|
||||
'Updates' => 'Aggiornamenti',
|
||||
'Log in' => 'Log in',
|
||||
'Log out' => 'Log out',
|
||||
|
||||
'USER' => 'USER',
|
||||
'WEB' => 'WEB',
|
||||
'DNS' => 'DNS',
|
||||
'MAIL' => 'MAIL',
|
||||
'DB' => 'DB',
|
||||
'CRON' => 'CRON',
|
||||
'BACKUP' => 'BACKUP',
|
||||
|
||||
'Add User' => 'Nuovo Utente',
|
||||
'Add Domain' => 'Nuovo Dominio',
|
||||
'Add Web Domain' => 'Nuovo Dominio',
|
||||
'Add DNS Domain' => 'Nuova Zona DNS',
|
||||
'Add DNS Record' => 'Nuovo Record',
|
||||
'Add Mail Domain' => 'Nuovo Dominio',
|
||||
'Add Mail Account' => 'Nuovo Account',
|
||||
'Add Database' => 'Nuovo Database',
|
||||
'Add Cron Job' => 'Nuovo Cron Job',
|
||||
'Create Backup' => 'Crea Backup',
|
||||
'Configure' => 'Configura',
|
||||
'Restore All' => 'Ripristina Tutto',
|
||||
'Add Package' => 'Nuovo Pacchetto',
|
||||
'Add IP' => 'Aggiungi IP',
|
||||
'Search' => 'Cerca',
|
||||
'Add one more FTP Account' => 'Nuovo account FTP',
|
||||
'Overall Statistics' => 'Statistiche Generali',
|
||||
'Daily' => 'Giornaliero',
|
||||
'Weekly' => 'Settimanale',
|
||||
'Monthly' => 'Mensile',
|
||||
'Yearly' => 'Annuale',
|
||||
'Add' => 'Aggiungi',
|
||||
'Back' => 'Indietro',
|
||||
'Save' => 'Salva',
|
||||
'Submit' => 'Invia',
|
||||
|
||||
'toggle all' => 'inverti tutti',
|
||||
'apply to selected' => 'applica ai selezionati',
|
||||
'rebuild' => 'ricostruisci',
|
||||
'rebuild web' => 'ricostruisci web',
|
||||
'rebuild dns' => 'ricostruisci dns',
|
||||
'rebuild mail' => 'ricostruisci mail',
|
||||
'rebuild db' => 'ricostruisci db',
|
||||
'rebuild cron' => 'ricostruisci cron',
|
||||
'update counters' => 'aggiorna contatori',
|
||||
'suspend' => 'sospendi',
|
||||
'unsuspend' => 'riabilita',
|
||||
'delete' => 'cancella',
|
||||
'show per user' => 'mostra per utente',
|
||||
'login as' => 'accedi come',
|
||||
'logout' => 'logout',
|
||||
'edit' => 'modifica',
|
||||
'open webstats' => 'apri webstats',
|
||||
'view logs' => 'visualizza logs',
|
||||
'list records' => 'mostra %s record',
|
||||
'add record' => 'nuovo record',
|
||||
'list accounts' => 'mostra %s account',
|
||||
'add account' => 'aggiungi account',
|
||||
'open webmail' => 'apri webmail',
|
||||
'open %s' => 'apri %s',
|
||||
'download' => 'download',
|
||||
'restore' => 'ripristina',
|
||||
'configure restore settings' => 'configure restore settings',
|
||||
'stop' => 'ferma',
|
||||
'start' => 'avvia',
|
||||
'restart' => 'riavvia',
|
||||
'update' => 'aggiorna',
|
||||
'generate' => 'genera',
|
||||
'Generate CSR' => 'Genera CSR',
|
||||
'reread IP' => 'rileggi IP',
|
||||
'enable autoupdate' => 'abilita aggiornamenti automatici',
|
||||
'disable autoupdate' => 'disabilita aggiornamenti automatici',
|
||||
|
||||
'Adding User' => 'Aggiunta Utente',
|
||||
'Editing User' => 'Modifica Utente',
|
||||
'Adding Domain' => 'Aggiunta Dominio',
|
||||
'Editing Domain' => 'Modifica Dominio',
|
||||
'Adding DNS Domain' => 'Aggiunta Dominio DNS',
|
||||
'Editing DNS Domain' => 'Modifica Dominio DNS',
|
||||
'Adding DNS Record' => 'Aggiunta Record DNS',
|
||||
'Editing DNS Record' => 'Modifica Record DNS',
|
||||
'Adding Mail Domain' => 'Aggiunta Dominio Mail',
|
||||
'Editing Mail Domain' => 'Modifica Dominio Mail',
|
||||
'Adding Mail Account' => 'Aggiunta Account Mail',
|
||||
'Editing Mail Account' => 'Modifica Account Mail',
|
||||
'Adding database' => 'Aggiunta database',
|
||||
'Editing Cron Job' => 'Modifica Cron Job',
|
||||
'Adding Cron Job' => 'Aggiunta Cron Job',
|
||||
'Editing Database' => 'Modifica Database',
|
||||
'Adding Package' => 'Aggiunta Pacchetto',
|
||||
'Editing Package' => 'Modifica Pacchetto',
|
||||
'Adding IP address' => 'Aggiunta Indirizzo IP',
|
||||
'Editing IP Address' => 'Modifica Indirizzo IP',
|
||||
'Editing Backup Exclusions' => 'Modifica Esclusioni Backup',
|
||||
'Generating CSR' => 'Genera CSR',
|
||||
'Listing' => 'Lista',
|
||||
'Search Results' => 'Risultati Ricerca',
|
||||
|
||||
'active' => 'attivo',
|
||||
'spnd' => 'sospeso',
|
||||
'suspended' => 'sospeso',
|
||||
'running' => 'in esecuzione',
|
||||
'stopped' => 'fermato',
|
||||
'outdated' => 'obsoleto',
|
||||
'updated' => 'aggiornato',
|
||||
|
||||
'yes' => 'si',
|
||||
'no' => 'no',
|
||||
'none' => 'nessuno',
|
||||
'pb' => 'pb',
|
||||
'tb' => 'tb',
|
||||
'gb' => 'gb',
|
||||
'mb' => 'mb',
|
||||
'minute' => 'minuto',
|
||||
'hour' => 'ora',
|
||||
'day' => 'giorno',
|
||||
'days' => 'giorni',
|
||||
'hours' => 'ore',
|
||||
'minutes' => 'minuti',
|
||||
'month' => 'mese',
|
||||
'package' => 'pacchetto',
|
||||
'Bandwidth' => 'Banda',
|
||||
'Disk' => 'Disco',
|
||||
'Web' => 'Web',
|
||||
'Mail' => 'Mail',
|
||||
'Databases' => 'Databases',
|
||||
'User Directories' => 'Directories Utente',
|
||||
'Template' => 'Template',
|
||||
'Web Template' => 'Apache Template',
|
||||
'Proxy Template' => 'Nginx Template',
|
||||
'DNS Template' => 'DNS Template',
|
||||
'Web Domains' => 'Domini Web',
|
||||
'SSL Domains' => 'Domini SSL',
|
||||
'Web Aliases' => 'Alias Web',
|
||||
'per domain' => 'per dominio',
|
||||
'DNS Domains' => 'Zone DNS',
|
||||
'DNS domains' => 'Zone DNS',
|
||||
'DNS records' => 'Record DNS',
|
||||
'Name Servers' => 'Name Servers',
|
||||
'Mail Domains' => 'Domini Mail',
|
||||
'Mail Accounts' => 'Account Mail',
|
||||
'Cron Jobs' => 'Cron Jobs',
|
||||
'SSH Access' => 'Accesso SSH',
|
||||
'IP Addresses' => 'Indirizzi IP',
|
||||
'Backups' => 'Backups',
|
||||
'Backup System' => 'Sistema Backup',
|
||||
'backup exclusions' => 'esclusioni backup',
|
||||
'template' => 'template',
|
||||
'SSL Support' => 'Supporto SSL',
|
||||
'SSL Home Directory' => 'SSL Home',
|
||||
'Proxy Support' => 'Supporto Nginx',
|
||||
'Proxy Extensions' => 'Estensioni Nginx',
|
||||
'Web Statistics' => 'Statistiche Web',
|
||||
'Additional FTP Account' => 'FTP Addizionali',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => 'Scadenza',
|
||||
'Records' => 'Record',
|
||||
'Catchall email' => 'Catchall email',
|
||||
'AntiVirus Support' => 'Supporto AntiVirus',
|
||||
'AntiSpam Support' => 'Supporto AntiSpam',
|
||||
'DKIM Support' => 'Supporto DKIM',
|
||||
'Accounts' => 'Account',
|
||||
'Quota' => 'Quota',
|
||||
'Autoreply' => 'Autorisposta',
|
||||
'Forward to' => 'Inoltra a',
|
||||
'Do not store forwarded mail' => 'Non salvare le email inoltrate',
|
||||
'database' => 'database',
|
||||
'User' => 'Utente',
|
||||
'Host' => 'Host',
|
||||
'Charset' => 'Charset',
|
||||
'Min' => 'Minuto',
|
||||
'Hour' => 'Ora',
|
||||
'Day' => 'Giorno',
|
||||
'Month' => 'Mese',
|
||||
'Day of week' => 'Giorno della settimana',
|
||||
'local' => 'local',
|
||||
'Run Time' => 'Tempo di Esecuzione',
|
||||
'Backup Size' => 'Dimensioni Backup',
|
||||
'SYS' => 'SYS',
|
||||
'Domains' => 'Domini',
|
||||
'Status' => 'Stato',
|
||||
'shared' => 'condiviso',
|
||||
'dedicated' => 'dedicato',
|
||||
'Owner' => 'Proprietario',
|
||||
'Users' => 'Utenti',
|
||||
'Load Average' => 'Carico Medio',
|
||||
'Memory Usage' => 'Uso Memoria',
|
||||
'HTTPD Usage' => 'Utilizzo HTTPD',
|
||||
'NGINX Usage' => 'Utilizzo NGINX',
|
||||
'MySQL Usage on localhost' => 'Utilizzo MySQL su localhost',
|
||||
'PostgreSQL Usage on localhost' => 'Utilizzo PostgreSQL su localhost',
|
||||
'Bandwidth Usage eth0' => 'Utilizzo banda su eth0',
|
||||
'FTP Usage' => 'Utilizzo FTP',
|
||||
'SSH Usage' => 'Utilizzo SSH',
|
||||
'reverse proxy' => 'reverse proxy',
|
||||
'web server' => 'web server',
|
||||
'dns server' => 'dns server',
|
||||
'mail server' => 'mail server',
|
||||
'pop/imap server' => 'pop/imap server',
|
||||
'email antivirus' => 'email antivirus',
|
||||
'email antispam' => 'email antispam',
|
||||
'database server' => 'database server',
|
||||
'ftp server' => 'ftp server',
|
||||
'job scheduler' => 'job scheduler',
|
||||
'CPU' => 'CPU',
|
||||
'Memory' => 'Memoria',
|
||||
'Uptime' => 'Uptime',
|
||||
'core package' => 'pacchetto di sistema',
|
||||
'php interpreter' => 'interprete php',
|
||||
'internal web server' => 'web server interno',
|
||||
'Version' => 'Versione',
|
||||
'Release' => 'Release',
|
||||
'Architecture' => 'Architettura',
|
||||
'Object' => 'Oggetto',
|
||||
'Owner' => 'Proprietario',
|
||||
'Username' => 'Username',
|
||||
'Password' => 'Password',
|
||||
'Email' => 'Email',
|
||||
'Package' => 'Pacchetto',
|
||||
'Language' => 'Lingua',
|
||||
'First Name' => 'Nome',
|
||||
'Last Name' => 'Cognome',
|
||||
'Send login credentials to email address' => 'Invia le credenziali di login per email',
|
||||
'Default Template' => 'Default Template',
|
||||
'Default Name Servers' => 'Default Name Servers',
|
||||
'Domain' => 'Dominio',
|
||||
'DNS Support' => 'Supporto DNS',
|
||||
'Mail Support' => 'Supporto Mail',
|
||||
'Advanced options' => 'Opzioni Avanzate',
|
||||
'Aliases' => 'Alias Dominio',
|
||||
'SSL Certificate' => 'Certificato SSL',
|
||||
'SSL Key' => 'SSL Key',
|
||||
'SSL Certificate Authority / Intermediate' => 'SSL Certificate Authority / Intermediate',
|
||||
'SSL CSR' => 'SSL CSR',
|
||||
'optional' => 'opzionale',
|
||||
'internal' => 'interno',
|
||||
'Statistics Authorization' => 'Autorizzazione Statistiche',
|
||||
'Statistics Auth' => 'Statistiche Auth',
|
||||
'Account' => 'Account',
|
||||
'Prefix will be automaticaly added to username' => 'Il prefisso %s verrà automatiamente aggiunto all\'username',
|
||||
'Send FTP credentials to email' => 'Invia le credenziali FTP per email',
|
||||
'Expiration Date' => 'Data di scadenza',
|
||||
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||
'Name servers' => 'Name servers',
|
||||
'Record' => 'Record',
|
||||
'IP or Value' => 'IP o Valore',
|
||||
'Priority' => 'Priorità',
|
||||
'Record Number' => 'Numero Record',
|
||||
'in megabytes' => 'in megabytes',
|
||||
'Message' => 'Messaggio',
|
||||
'use local-part' => 'usa local-part',
|
||||
'one or more email addresses' => 'uno o più indirizzi email',
|
||||
'Prefix will be automaticaly added to database name and database user' => 'Il prefisso %s verrà automatiamente aggiunto al nome e all\'utente del database',
|
||||
'Database' => 'Database',
|
||||
'Type' => 'Tipo',
|
||||
'Minute' => 'Minuto',
|
||||
'Command' => 'Comando',
|
||||
'Package Name' => 'Nome Pacchetto',
|
||||
'Netmask' => 'Netmask',
|
||||
'Interface' => 'Interfaccia',
|
||||
'Shared' => 'Condiviso',
|
||||
'Assigned user' => 'Utente Assegnato',
|
||||
'Assigned domain' => 'Dominio Assegnato',
|
||||
'NAT IP association' => 'Associazione IP NAT',
|
||||
'shell' => 'shell',
|
||||
'web domains' => 'domini web',
|
||||
'web aliases' => 'aliases web',
|
||||
'dns records' => 'record dns',
|
||||
'mail domains' => 'domini mail',
|
||||
'mail accounts' => 'account mail',
|
||||
'accounts' => 'account',
|
||||
'databases' => 'database',
|
||||
'cron jobs' => 'cron jobs',
|
||||
'backups' => 'backups',
|
||||
'quota' => 'quota',
|
||||
'day of week' => 'giorno della settimanta',
|
||||
'cmd' => 'cmd',
|
||||
'users' => 'users',
|
||||
'domains' => 'domini',
|
||||
'aliases' => 'alias',
|
||||
'records' => 'record',
|
||||
'jobs' => 'jobs',
|
||||
'username' => 'username',
|
||||
'password' => 'password',
|
||||
'type' => 'tipo',
|
||||
'charset' => 'charset',
|
||||
'domain' => 'dominio',
|
||||
'ip' => 'ip',
|
||||
'ip address' => 'indirizzo ip',
|
||||
'IP address' => 'indirizzo IP',
|
||||
'netmask' => 'netmask',
|
||||
'interface' => 'interfaccia',
|
||||
'assigned user' => 'utente assegnato',
|
||||
'ns1' => 'ns1',
|
||||
'ns2' => 'ns2',
|
||||
'user' => 'user',
|
||||
'email' => 'email',
|
||||
'first name' => 'nome',
|
||||
'last name' => 'cognome',
|
||||
'account' => 'account',
|
||||
'ssl certificate' => 'certificato ssl',
|
||||
'ssl key' => 'key ssl',
|
||||
'stats user password' => 'stats user password',
|
||||
'stats username' => 'stats username',
|
||||
'stats password' => 'stats password',
|
||||
'ftp user password' => 'ftp user password',
|
||||
'ftp user' => 'ftp user',
|
||||
'Last 70 lines of %s.%s.log' => 'Ultime 70 righe di %s.%s.log',
|
||||
'Download AccessLog' => 'Download AccessLog',
|
||||
'Download ErrorLog' => 'Download ErrorLog',
|
||||
'Country' => 'Paese',
|
||||
'2 letter code' => 'codice di 2 lettere',
|
||||
'State / Province' => 'Stato / Provincia',
|
||||
'City / Locality' => 'Città / Località',
|
||||
'Organization' => 'Organizzazione',
|
||||
|
||||
'1 account' => '1 account',
|
||||
'%s accounts' => '%s account',
|
||||
'1 domain' => '1 dominio',
|
||||
'%s domains' => '%s domini',
|
||||
'1 record' => '1 record',
|
||||
'%s records' => '%s record',
|
||||
'1 mail account' => '1 account mail',
|
||||
'%s mail accounts' => '%s account mail',
|
||||
'1 database' => '1 database',
|
||||
'%s databases' => '%s databases',
|
||||
'1 cron job' => '1 cron job',
|
||||
'%s cron jobs' => '%s cron jobs',
|
||||
'1 archive' => '1 archivio',
|
||||
'%s archives' => '%s archivi',
|
||||
'1 package' => '1 pacchetto',
|
||||
'%s packages' => '%s pacchetti',
|
||||
'1 IP address' => '1 indirizzo IP',
|
||||
'%s IP addresses' => '%s indirizzi IP',
|
||||
'1 month' => '1 mese',
|
||||
'%s months' => '%s mesi',
|
||||
'1 log record' => '1 log record',
|
||||
'%s log records' => '%s log record',
|
||||
'1 object' => '1 oggetto',
|
||||
'%s objects' => '%s oggetti',
|
||||
'no exclusions' => 'senza esclusioni',
|
||||
|
||||
'USER_CREATED_OK' => 'L\'utente <a href="/edit/user/?user=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'Il dominio <a href="/edit/web/?domain=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'Il dominio DNS <a href="/list/dns/?domain=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'DNS_RECORD_CREATED_OK' => 'Il record <b>%s.%s</b> è stato creato con successo.',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'Dominio Mail <a href="/list/mail/?domain=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'L\'account mail <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> è stato creato con successo.',
|
||||
'DATABASE_CREATED_OK' => 'Il database <a href="/edit/db/?database=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'CRON_CREATED_OK' => 'Il cron job è stato creato con successo.',
|
||||
'IP_CREATED_OK' => 'L\'indirizzo IP <a href="/edit/ip/?ip=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'PACKAGE_CREATED_OK' => 'Il pacchetto <a href="/edit/package/?package=%s"><b>%s</b></a> è stato creato con successo.',
|
||||
'SSL_GENERATED_OK' => 'Il certificato è stato generato con successo.',
|
||||
'Autoupdate has been successfully enabled' => 'Gli aggiornamenti automatici sono stati abilitati',
|
||||
'Autoupdate has been successfully disabled' => 'Gli aggiornamenti automatici sono stati disabilitati',
|
||||
'Changes has been saved.' => 'I cambiamenti sono stati salvati.',
|
||||
'Confirmation' => 'Conferma',
|
||||
'DELETE_USER_CONFIRMATION' => 'Sei sicuro di voler cancellare l\'utente %s?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'Sei sicuro di voler disabilitare l\'utente %s?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'Sei sicuro di voler riabilitare l\'utente %s?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'Sei sicuro di voler cancellare il dominio %s?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'Sei sicuro di voler disabilitare il dominio %s?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'Sei sicuro di voler riabilitare il dominio %s?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'Sei sicuro di voler cancellare il record %s?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'Sei sicuro di voler disabilitare il record %s?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'Sei sicuro di voler riabilitare il record %s?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'Sei sicuro di voler cancellare %s?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Sei sicuro di voler disabilitare %s?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'Sei sicuro di voler riabilitare %s?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'Sei sicuro di voler cancellare il database %s?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'Sei sicuro di voler disabilitare il database %s?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'Sei sicuro di voler riabilitare il database %s?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Sei sicuro di voler cancellare il cron job?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Sei sicuro di voler disabilitare il cron job?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Sei sicuro di voler riabilitare il cron job?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'Sei sicuro di voler cancellare il backup %s?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'Sei sicuro di voler cancellare l\'esclusione %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Sei sicuro di voler cancellare il pacchetto %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Sei sicuro di voler l\'indirizoz IP %s?',
|
||||
'RESTART_CONFIRMATION' => 'Sei sicuro di voler riavviare %s?',
|
||||
'Welcome' => 'Benvenuto',
|
||||
'LOGGED_IN_AS' => 'Connesso come l\'utente %s',
|
||||
'Error' => 'Errore',
|
||||
'Invalid username or password' => 'Username o password non validi',
|
||||
'Invalid username or code' => 'Esername o codice non validi',
|
||||
'Passwords not match' => 'Le passwords non coincidono',
|
||||
'Please enter valid email address.' => 'Inserisci un\'indirizzo email valido.',
|
||||
'Field "%s" can not be blank.' => 'Il campo "%s" non può essere lasciato vuoto.',
|
||||
'Password is too short.' => 'La password è troppo corta (minimo 6 caratteri)',
|
||||
'Error code:' => 'Codice errore: %s',
|
||||
'SERVICE_ACTION_FAILED' => '"%s" "%s" fallita',
|
||||
'IP address is in use' => 'L\'indirizzo IP è già in uso',
|
||||
'BACKUP_SCHEDULED' => 'L\'operazione è stata aggiunta alla coda. Riceverai una notifica via email quando il tuo backup sarà pronto per il download.',
|
||||
'BACKUP_EXISTS' => 'È già in corso la creazione di un backup. Perfavore attendi che il backup finisca.',
|
||||
'RESTORE_SCHEDULED' => 'L\'operazione è stata aggiunta alla coda. Riceverai una notifica via email quando il tuo backup sarà pronto per il download.',
|
||||
'RESTORE_EXISTS' => 'È già in corso un\'oprazione di ripristino. Attendi che finisca prima di rilanciarla nuovamento.',
|
||||
|
||||
'WEB_EXCLUSIONS' => "Scrivi un nome di dominio per riga. Per escludere tutti i domini usa *. Per escludere directory specifiche usa il formato: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "Scrivi un nome di dominio per riga. Per escludere tutti i domini usa *",
|
||||
'MAIL_EXCLUSIONS' => "Scrivi un nome di dominio per riga. Per escludere tutti i domini usa *. Per escludere account specifici usare il formato: domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "Scrivi un nome completo di database per riga. Per escludere tutti i database usa *",
|
||||
'CRON_EXCLUSIONS' => "Per escludere tutti i cron job usa *",
|
||||
'USER_EXCLUSIONS' => "Scrivi un nome di directory per riga. Per escludere tutte le directory usa *",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Benvenuto nel Vesta Control Panel',
|
||||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "Ciao, %s %s,\n",
|
||||
'GREETINGS' => "Ciao,\n",
|
||||
'ACCOUNT_READY' => "Il tuo account è stato creato ed è pronto per l\'utilizzo.\n\nhttps://%s/login/\nUsername: %s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'FTP login credentials' => 'Credenziali login FTP',
|
||||
'FTP_ACCOUNT_READY' => "L\'account FTP è stato creato ed è pronto per l\'uso.\n\nHostname: %s\nUsername: %s_%s\nPassword: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'Database Credentials' => 'Credenziali Database',
|
||||
'DATABASE_READY' => "Il database è stato creato con successo.\n\nDatabase: %s\nUser: %s\nPassword: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'forgot password' => 'password dimenticata',
|
||||
'Confirm' => 'Conferma',
|
||||
'New Password' => 'Nuova Password',
|
||||
'Confirm Password' => 'Conferma Password',
|
||||
'Reset' => 'Reset',
|
||||
'Reset Code' => 'Codice Reset',
|
||||
'RESET_NOTICE' => '',
|
||||
'RESET_CODE_SENT' => 'Il codice di reset per la tua password ti è stato inviato per email<br>',
|
||||
'MAIL_RESET_SUBJECT' => 'Password Reset per %s',
|
||||
'PASSWORD_RESET_REQUEST' => "Per fare il reset della password per il pannello di controllo clicca sul link:\nhttps://%s/reset/?action=confirm&user=%s&code=%s\n\nAlternativamente puoi andare su https://%s/reset/?action=code&user=%s e inserire questo codice di reset:\n%s\n\nSe non hai richiesto il reset della tua password, ignora questa email.\n\n--\nVesta Control Panel\n",
|
||||
);
|
|
@ -38,6 +38,7 @@ $LANG['nl'] = array(
|
|||
'Restore All' => 'Herstel alles',
|
||||
'Add Package' => 'Pakket toevoegen',
|
||||
'Add IP' => 'IP toevoegen',
|
||||
'Add one more FTP Account' => 'Extra FTP-account toevoegen',
|
||||
'Search' => 'Zoeken',
|
||||
'Overall Statistics' => 'Globale statistieken',
|
||||
'Daily' => 'Dagelijks',
|
||||
|
@ -393,6 +394,7 @@ $LANG['nl'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Weet u zeker dat u uitsluitingen %s wilt verwijderen?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Weet u zeker dat u het pakket %s wilt verwijderen?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Weet u zeker dat u het IP-adres %s wilt verwijderen?',
|
||||
'RESTART_CONFIRMATION' => 'Weet u zeker dat %s wilt herstarten?',
|
||||
'Welcome' => 'Welkom',
|
||||
'LOGGED_IN_AS' => 'Ingelogd als gebruiker %s',
|
||||
'Error' => 'Fout',
|
||||
|
|
|
@ -39,6 +39,7 @@ $LANG['no'] = array(
|
|||
'Add Package' => 'Legg til Pakke',
|
||||
'Add IP' => 'Legg til IP',
|
||||
'Search' => 'Søk',
|
||||
'Add one more FTP Account' => 'Legg til én FTP Konto',
|
||||
'Overall Statistics' => 'Samlede Statistikker',
|
||||
'Daily' => 'Daglig',
|
||||
'Weekly' => 'Ukentlig',
|
||||
|
@ -393,6 +394,7 @@ $LANG['no'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Er du sikker på at du vil slette %s eksklusjon?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Er du sikker på at du vil slette pakken %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Er du sikker på at du vil slette IP Addressen %s?',
|
||||
'RESTART_CONFIRMATION' => 'Er du sikker på at du vil omstarte %s?',
|
||||
'Welcome' => 'Velkommen',
|
||||
'LOGGED_IN_AS' => 'Logget inn som %s',
|
||||
'Error' => 'Feil',
|
||||
|
|
|
@ -38,6 +38,7 @@ $LANG['pt'] = array(
|
|||
'Add Package' => 'Adicionar Pacote',
|
||||
'Add IP' => 'Adicionar IP',
|
||||
'Search' => 'Pesquisar',
|
||||
'Add one more FTP Account' => 'Adicionar mais uma conta FTP',
|
||||
'Overall Statistics' => 'Estatísticas Gerais',
|
||||
'Daily' => 'Diário',
|
||||
'Weekly' => 'Semanal',
|
||||
|
@ -392,6 +393,7 @@ $LANG['pt'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Tem certeza que deseja deletar o exclusões %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Tem certeza que deseja deletar o pacote %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Tem certeza que deseja deletar o endereço IP %s?',
|
||||
'RESTART_CONFIRMATION' => 'Tem certeza que deseja reiniciar %s?',
|
||||
'Welcome' => 'Bem Vindo',
|
||||
'LOGGED_IN_AS' => 'Entrar como o usuário %s',
|
||||
'Error' => 'Erro',
|
||||
|
|
|
@ -40,6 +40,7 @@ $LANG['ro'] = array(
|
|||
'Add Package' => 'Adăugare pachet',
|
||||
'Add IP' => 'Adăugare IP',
|
||||
'Search' => 'Сăutare',
|
||||
'Add one more FTP Account' => 'Inca un FTP count',
|
||||
'Overall Statistics' => 'Statistică rezumativă',
|
||||
'Daily' => 'Zilnic',
|
||||
'Weekly' => 'Săptămânal',
|
||||
|
@ -394,6 +395,7 @@ $LANG['ro'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Ești sigur că dorești să ștergi excludere %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Ești sigur că dorești să ștergi %s',
|
||||
'DELETE_IP_CONFIRMATION' => 'Ești sigur că dorești să șterge IP %s?',
|
||||
'RESTART_CONFIRMATION' => 'Ești sigur că dorești să restartezi %s?',
|
||||
'Welcome' => 'Bun venit',
|
||||
'LOGGED_IN_AS' => 'Ai intrat ca utilizator %s',
|
||||
'Error' => 'Eroare',
|
||||
|
|
|
@ -40,6 +40,7 @@ $LANG['ru'] = array(
|
|||
'Add Package' => 'Добавить пакет',
|
||||
'Add IP' => 'Добавить IP',
|
||||
'Search' => 'Поиск',
|
||||
'Add one more FTP Account' => 'Добавить еще один FTP аккаунт',
|
||||
'Overall Statistics' => 'Сводная статистика',
|
||||
'Daily' => 'Ежедневые',
|
||||
'Weekly' => 'Еженедельные',
|
||||
|
@ -394,6 +395,7 @@ $LANG['ru'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Вы уверены, что хотите удалить исключение %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Вы уверены, что хотите удалить пакет %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Вы уверены, что хотите удалить IP адрес %s?',
|
||||
'RESTART_CONFIRMATION' => 'Вы уверены, что хотите перезагрузить %s?',
|
||||
'Welcome' => 'Добро пожаловать',
|
||||
'LOGGED_IN_AS' => 'Вы вошли как пользователь %s',
|
||||
'Error' => 'Ошибка',
|
||||
|
|
|
@ -39,6 +39,7 @@ $LANG['ua'] = array(
|
|||
'Restore All' => 'Відновити все',
|
||||
'Add Package' => 'Додати пакет',
|
||||
'Add IP' => 'Додати IP',
|
||||
'Add one more FTP Account' => 'Додати ще один FTP акаунт',
|
||||
'Search' => 'Пошук',
|
||||
'Overall Statistics' => 'Загальна статистика',
|
||||
'Daily' => 'Щоденні',
|
||||
|
@ -394,6 +395,7 @@ $LANG['ua'] = array(
|
|||
'DELETE_EXCLUSION_CONFIRMATION' => 'Ви впевнені, що хочете видалити вийняток %s?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'Ви впевнені, що хочете видалити пакет %s?',
|
||||
'DELETE_IP_CONFIRMATION' => 'Ви впевнені, що хочете видалити IP адресу %s?',
|
||||
'RESTART_CONFIRMATION' => 'Ви впевнені, що хочете перезапустити %s?',
|
||||
'Welcome' => 'Ласкаво просимо',
|
||||
'LOGGED_IN_AS' => 'Ви увійшли як користувач %s',
|
||||
'Error' => 'Помилка',
|
||||
|
|
|
@ -151,12 +151,12 @@ function humanize_time($usage) {
|
|||
}
|
||||
|
||||
function humanize_usage($usage) {
|
||||
if ( $usage > 1000 ) {
|
||||
$usage = $usage / 1000;
|
||||
if ( $usage > 1000 ) {
|
||||
$usage = $usage / 1000 ;
|
||||
if ( $usage > 1000 ) {
|
||||
$usage = $usage / 1000 ;
|
||||
if ( $usage > 1024 ) {
|
||||
$usage = $usage / 1024;
|
||||
if ( $usage > 1024 ) {
|
||||
$usage = $usage / 1024 ;
|
||||
if ( $usage > 1024 ) {
|
||||
$usage = $usage / 1024 ;
|
||||
$usage = number_format($usage, 2);
|
||||
$usage = $usage."".__('pb');
|
||||
} else {
|
||||
|
|
|
@ -102,7 +102,7 @@ VE.helpers.createConfirmationDialog = function(elm, dialog_title, confirmed_loca
|
|||
$(this).dialog("destroy");
|
||||
},
|
||||
buttons: {
|
||||
"Ok": function(event, ui) {
|
||||
"OK": function(event, ui) {
|
||||
location.href = confirmed_location_url;
|
||||
},
|
||||
"Cancel": function() {
|
||||
|
|
|
@ -1,37 +1,158 @@
|
|||
//
|
||||
//
|
||||
// Updates ftp username dynamically, showing its prefix
|
||||
App.Actions.WEB.update_ftp_username_hint = function(elm, hint) {
|
||||
if (hint.trim() == '') {
|
||||
$(elm).parent().find('.hint').html('');
|
||||
}
|
||||
// remove prefix from value in order to eliminate duplicates
|
||||
|
||||
hint = hint.replace(/[^\w\d]/gi, '');
|
||||
|
||||
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
|
||||
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
|
||||
}
|
||||
|
||||
$(elm).parent().find('.v-ftp-user').val(hint);
|
||||
$(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint);
|
||||
}
|
||||
|
||||
//
|
||||
// listener that triggers ftp user hint updating
|
||||
App.Listeners.WEB.keypress_ftp_username = function() {
|
||||
var ref = $('input[name="v_ftp_user"]');
|
||||
var ftp_user_inputs = $('.v-ftp-user');
|
||||
$.each(ftp_user_inputs, function(i, ref) {
|
||||
var ref = $(ref);
|
||||
var current_val = ref.val();
|
||||
if (current_val.trim() != '') {
|
||||
App.Actions.DB.update_ftp_username_hint(ref, current_val);
|
||||
App.Actions.WEB.update_ftp_username_hint(ref, current_val);
|
||||
}
|
||||
|
||||
ref.bind('keypress input', function(evt) {
|
||||
ref.bind('keypress', function(evt) {
|
||||
clearTimeout(window.frp_usr_tmt);
|
||||
window.frp_usr_tmt = setTimeout(function() {
|
||||
var elm = $(evt.target);
|
||||
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
App.Listeners.WEB.keypress_domain_name = function() {
|
||||
$('#v_domain').bind('keypress', function(evt) {
|
||||
clearTimeout(window.frp_usr_tmt);
|
||||
window.frp_usr_tmt = setTimeout(function() {
|
||||
//var elm = $(evt.target);
|
||||
//App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
|
||||
var domain = $('.ftp-path-prefix').text(GLOBAL.FTP_USER_PREPATH + '/' + $('#v_domain').val());
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
|
||||
App.Actions.WEB.update_ftp_path_hint = function(elm, hint) {
|
||||
if (hint.trim() == '') {
|
||||
$(elm).parent().find('.v-ftp-path-hint').html('');
|
||||
}
|
||||
|
||||
if (hint[0] != '/') {
|
||||
hint = '/' + hint;
|
||||
}
|
||||
hint = hint.replace(/\/(\/+)/g, '/');
|
||||
|
||||
$(elm).parent().find('.v-ftp-path-hint').text(hint);
|
||||
}
|
||||
|
||||
App.Listeners.WEB.keypress_ftp_path = function() {
|
||||
var ftp_path_inputs = $('.v-ftp-path');
|
||||
$.each(ftp_path_inputs, function(i, ref) {
|
||||
var ref = $(ref);
|
||||
var current_val = ref.val();
|
||||
if (current_val.trim() != '') {
|
||||
App.Actions.WEB.update_ftp_path_hint(ref, current_val);
|
||||
}
|
||||
|
||||
ref.bind('keypress', function(evt) {
|
||||
clearTimeout(window.frp_usr_tmt);
|
||||
window.frp_usr_tmt = setTimeout(function() {
|
||||
var elm = $(evt.target);
|
||||
App.Actions.WEB.update_ftp_path_hint(elm, $(elm).val());
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
App.Actions.WEB.add_ftp_user_form = function() {
|
||||
var ref = $('#templates').find('.ftptable').clone(true);
|
||||
var index = $('.data-col2 .ftptable').length + 1;
|
||||
|
||||
ref.find('input').each(function(i, elm) {
|
||||
var attr_value = $(elm).attr('name').replace('%INDEX%', index);
|
||||
$(elm).attr('name', attr_value);
|
||||
});
|
||||
|
||||
ref.find('.ftp-user-number').text(index);
|
||||
|
||||
$('.data-col2 .ftptable:last').after(ref);
|
||||
|
||||
var index = 1;
|
||||
$('.data-col2 .ftp-user-number:visible').each(function(i, o) {
|
||||
$(o).text(index);
|
||||
index += 1;
|
||||
});
|
||||
}
|
||||
|
||||
App.Actions.WEB.remove_ftp_user = function(elm) {
|
||||
var ref = $(elm).parents('.ftptable');
|
||||
ref.remove();
|
||||
|
||||
var index = 1;
|
||||
$('.data-col2 .ftp-user-number:visible').each(function(i, o) {
|
||||
$(o).text(index);
|
||||
index += 1;
|
||||
});
|
||||
|
||||
if ($('.ftptable-nrm:visible').length == 0) {
|
||||
$('.v-add-new-user').hide();
|
||||
$('input[name="v_ftp"]').attr('checked', false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
App.Actions.WEB.toggle_additional_ftp_accounts = function(elm) {
|
||||
if ($(elm).attr('checked')) {
|
||||
$('.ftptable-nrm, .v-add-new-user, .add-new-ftp-user-button').show();
|
||||
$('.ftptable-nrm').each(function(i, elm) {
|
||||
var login = $(elm).find('.v-ftp-user');
|
||||
if (login.val().trim() != '') {
|
||||
$(elm).find('.v-ftp-user-deleted').val(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('.ftptable-nrm, .v-add-new-user, .add-new-ftp-user-button').hide();
|
||||
$('.ftptable-nrm').each(function(i, elm) {
|
||||
var login = $(elm).find('.v-ftp-user');
|
||||
if (login.val().trim() != '') {
|
||||
$(elm).find('.v-ftp-user-deleted').val(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ($('.ftptable-nrm:visible').length == 0) {
|
||||
var ref = $('#templates').find('.ftptable').clone(true);
|
||||
var index = $('.data-col2 .ftptable').length + 1;
|
||||
|
||||
ref.find('input').each(function(i, elm) {
|
||||
var attr_value = $(elm).attr('name').replace('%INDEX%', index);
|
||||
$(elm).attr('name', attr_value);
|
||||
});
|
||||
|
||||
ref.find('.ftp-user-number').text(index);
|
||||
|
||||
$('.v-add-new-user').parent('tr').prev().find('td').html(ref);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Page entry point
|
||||
// Trigger listeners
|
||||
App.Listeners.WEB.keypress_ftp_username();
|
||||
App.Listeners.WEB.keypress_ftp_path();
|
||||
App.Listeners.WEB.keypress_domain_name();
|
||||
|
|
|
@ -2,17 +2,23 @@ App.Actions.WEB.update_ftp_username_hint = function(elm, hint) {
|
|||
if (hint.trim() == '') {
|
||||
$(elm).parent().find('.hint').html('');
|
||||
}
|
||||
|
||||
hint = hint.replace(/[^\w\d]/gi, '');
|
||||
|
||||
if (hint.indexOf(GLOBAL.FTP_USER_PREFIX) == 0) {
|
||||
hint = hint.slice(GLOBAL.FTP_USER_PREFIX.length, hint.length);
|
||||
}
|
||||
$(elm).parent().find('.v-ftp-user').val(hint);
|
||||
$(elm).parent().find('.hint').text(GLOBAL.FTP_USER_PREFIX + hint);
|
||||
}
|
||||
|
||||
App.Listeners.WEB.keypress_ftp_username = function() {
|
||||
var ref = $('input[name="v_ftp_user"]');
|
||||
var ftp_user_inputs = $('.v-ftp-user');
|
||||
$.each(ftp_user_inputs, function(i, ref) {
|
||||
var ref = $(ref);
|
||||
var current_val = ref.val();
|
||||
if (current_val.trim() != '') {
|
||||
App.Actions.DB.update_ftp_username_hint(ref, current_val);
|
||||
App.Actions.WEB.update_ftp_username_hint(ref, current_val);
|
||||
}
|
||||
|
||||
ref.bind('keypress', function(evt) {
|
||||
|
@ -22,8 +28,111 @@ App.Listeners.WEB.keypress_ftp_username = function() {
|
|||
App.Actions.WEB.update_ftp_username_hint(elm, $(elm).val());
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
|
||||
App.Actions.WEB.update_ftp_path_hint = function(elm, hint) {
|
||||
if (hint.trim() == '') {
|
||||
$(elm).parent().find('.v-ftp-path-hint').html('');
|
||||
}
|
||||
|
||||
if (hint[0] != '/') {
|
||||
hint = '/' + hint;
|
||||
}
|
||||
|
||||
hint = hint.replace(/\/(\/+)/g, '/');
|
||||
|
||||
$(elm).parent().find('.v-ftp-path-hint').text(hint);
|
||||
}
|
||||
|
||||
App.Listeners.WEB.keypress_ftp_path = function() {
|
||||
var ftp_path_inputs = $('.v-ftp-path');
|
||||
$.each(ftp_path_inputs, function(i, ref) {
|
||||
var ref = $(ref);
|
||||
var current_val = ref.val();
|
||||
if (current_val.trim() != '') {
|
||||
App.Actions.WEB.update_ftp_path_hint(ref, current_val);
|
||||
}
|
||||
|
||||
ref.bind('keypress', function(evt) {
|
||||
clearTimeout(window.frp_usr_tmt);
|
||||
window.frp_usr_tmt = setTimeout(function() {
|
||||
var elm = $(evt.target);
|
||||
App.Actions.WEB.update_ftp_path_hint(elm, $(elm).val());
|
||||
}, 100);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
App.Actions.WEB.add_ftp_user_form = function() {
|
||||
var ref = $('#templates').find('.ftptable').clone(true);
|
||||
var index = $('.data-col2 .ftptable').length + 1;
|
||||
|
||||
ref.find('input').each(function(i, elm) {
|
||||
var attr_value = $(elm).attr('name').replace('%INDEX%', index);
|
||||
$(elm).attr('name', attr_value);
|
||||
});
|
||||
|
||||
ref.find('.ftp-user-number').text(index);
|
||||
|
||||
$('.data-col2 .ftptable:last').after(ref);
|
||||
|
||||
var index = 1;
|
||||
$('.data-col2 .ftp-user-number:visible').each(function(i, o) {
|
||||
$(o).text(index);
|
||||
index += 1;
|
||||
});
|
||||
}
|
||||
|
||||
App.Actions.WEB.remove_ftp_user = function(elm) {
|
||||
var ref = $(elm).parents('.ftptable');
|
||||
ref.find('.v-ftp-user-deleted').val('1');
|
||||
if (ref.find('.v-ftp-user-is-new').val() == 1) {
|
||||
ref.remove();
|
||||
return true;
|
||||
}
|
||||
ref.removeClass('ftptable-nrm');
|
||||
ref.hide();
|
||||
|
||||
var index = 1;
|
||||
$('.data-col2 .ftp-user-number:visible').each(function(i, o) {
|
||||
$(o).text(index);
|
||||
index += 1;
|
||||
});
|
||||
|
||||
if ($('.ftptable-nrm:visible').length == 0) {
|
||||
$('.add-new-ftp-user-button').hide();
|
||||
$('input[name="v_ftp"]').attr('checked', false);
|
||||
}
|
||||
}
|
||||
|
||||
App.Actions.WEB.toggle_additional_ftp_accounts = function(elm) {
|
||||
if ($(elm).attr('checked')) {
|
||||
$('.ftptable-nrm, .v-add-new-user, .add-new-ftp-user-button').show();
|
||||
$('.ftptable-nrm').each(function(i, elm) {
|
||||
var login = $(elm).find('.v-ftp-user');
|
||||
if (login.val().trim() != '') {
|
||||
$(elm).find('.v-ftp-user-deleted').val(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
$('.ftptable-nrm, .v-add-new-user, .add-new-ftp-user-button').hide();
|
||||
$('.ftptable-nrm').each(function(i, elm) {
|
||||
var login = $(elm).find('.v-ftp-user');
|
||||
if (login.val().trim() != '') {
|
||||
$(elm).find('.v-ftp-user-deleted').val(1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Page entry point
|
||||
App.Listeners.WEB.keypress_ftp_username();
|
||||
App.Listeners.WEB.keypress_ftp_path();
|
||||
|
|
|
@ -25,7 +25,7 @@ include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
|||
top_panel($user,$TAB);
|
||||
|
||||
$lang = 'ru_RU.utf8';
|
||||
setlocale(LC_ALL, $lang);
|
||||
//setlocale(LC_ALL, $lang);
|
||||
|
||||
// Data
|
||||
if ($_SESSION['user'] == 'admin') {
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<td class="data-dotted">
|
||||
<table class="data-col2" width="600px">
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 24px 0 0 0;">
|
||||
<td class="vst-text step-top">
|
||||
<?php print __('Minute');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -44,7 +44,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Hour');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -54,7 +54,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Day');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -64,7 +64,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Month');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -74,7 +74,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Day of week');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -84,22 +84,22 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Command');?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" size="20" class="vst-input" name="v_cmd" <?php if (!empty($v_cmd)) echo "value='".$v_cmd."'"; ?>>
|
||||
<input type="text" size="30" class="vst-input long" name="v_cmd" <?php if (!empty($v_cmd)) echo "value='".$v_cmd."'"; ?>>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table class="data-col2">
|
||||
<tr>
|
||||
<td style="padding: 24px 0 0 0;" width="116px">
|
||||
<td class="step-top" width="116px">
|
||||
<input type="submit" name="ok" value="<?php print __('Add');?>" class="button">
|
||||
</td>
|
||||
<td style="padding: 24px 0 0 0;">
|
||||
<td class="step-top">
|
||||
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -54,59 +54,44 @@
|
|||
<td class="data-dotted">
|
||||
<table class="data-col2" width="600px">
|
||||
<tr>
|
||||
<td style="padding:24px 0 0 0; color:#777;" >
|
||||
<td class="step-top" style="color:#777;" >
|
||||
<?php print __('Prefix will be automaticaly added to database name and database user',$user."_");?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Database');?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php
|
||||
exec (VESTA_CMD."v-list-database-types", $output);
|
||||
if (strpos($output, "postgresql") !== false)
|
||||
$database_maxlength = 63 - strlen($user."_");
|
||||
elseif (strpos($output, "mysql") !== false)
|
||||
$database_maxlength = 64 - strlen($user."_");
|
||||
?>
|
||||
<?php $database_maxlength = 64 - strlen($user."_"); ?>
|
||||
<input type="text" size="20" class="vst-input" name="v_database" <?php if (!empty($database_maxlength)) echo "maxlength=".$database_maxlength; if (!empty($v_database)) echo "value=".$v_database; ?>>
|
||||
<input type="text" size="20" class="vst-input" name="v_database" <?php if (!empty($v_database)) echo "value=".$v_database; ?>>
|
||||
<small class="hint"></small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('User');?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php
|
||||
exec (VESTA_CMD."v-list-database-types", $output);
|
||||
if (strpos($output, "mysql") !== false)
|
||||
$dbuser_maxlength = 16 - strlen($user."_");
|
||||
elseif (strpos($output, "postgresql") !== false)
|
||||
$dbuser_maxlength = 63 - strlen($user."_");
|
||||
?>
|
||||
<input type="text" size="20" class="vst-input" name="v_dbuser" <?php if (!empty($dbuser_maxlength)) echo "maxlength=".$dbuser_maxlength; if (!empty($v_dbuser)) echo "value=".$v_dbuser; ?>>
|
||||
<input type="text" size="20" class="vst-input" name="v_dbuser" <?php if (!empty($v_dbuser)) echo "value=".$v_dbuser; ?>>
|
||||
<small class="hint"></small>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Password');?> / <a href="javascript:randomString();" class="generate"><?php print __('generate');?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="text" size="20" class="vst-input" name="v_password">
|
||||
<input type="text" size="20" class="vst-input password" name="v_password">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Type');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -124,7 +109,7 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Host');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -143,7 +128,7 @@
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Charset');?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -189,7 +174,7 @@
|
|||
</select>
|
||||
</td>
|
||||
<tr>
|
||||
<td class="vst-text" style="padding: 12px 0 0 0;">
|
||||
<td class="vst-text input-label">
|
||||
<?php print __('Send login credentials to email address') ?>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -201,10 +186,10 @@
|
|||
</table>
|
||||
<table class="data-col2">
|
||||
<tr>
|
||||
<td style="padding: 24px 0 0 0;" width="116px">
|
||||
<td class="step-top" width="116px">
|
||||
<input type="submit" name="ok" value="<?php print __('Add');?>" class="button">
|
||||
</td>
|
||||
<td style="padding: 24px 0 0 0;">
|
||||
<td class="step-top">
|
||||
<input type="button" class="button" value="<?php print __('Back');?>" onclick="<?php echo $back ?>">
|
||||
</td>
|
||||
</tr>
|
||||
|
|