Merge changes from upstream & more

This commit is contained in:
ZonD Eighty 2013-01-10 22:14:34 +04:00
commit a2ac36b676
22 changed files with 5760 additions and 4261 deletions

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
#!/bin/bash #!/bin/bash
# info: add dns domain or dns record based on web domain alias restart # info: add dns domain or dns record based on web domain alias restart
# options: USER DOMAIN # options: USER DOMAIN
@ -78,3 +79,92 @@ fi
# No Logging # No Logging
exit exit
=======
#!/bin/bash
# info: add dns domain or dns record based on web domain alias restart
# options: USER DOMAIN
#
# The function adds dns domain or dns record based on web domain alias.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(echo $2 | sed -e 's/\.*$//g' -e 's/^\.*//g')
domain_idn=$(idn -t --quiet -a "$domain")
dom_alias=$(idn -t --quiet -u "$3" )
dom_alias=$(echo $dom_alias | sed -e 's/\.*$//g' -e 's/^\.*//g')
dom_alias=$(echo $dom_alias | tr '[:upper:]' '[:lower:]')
dom_alias_idn=$(idn -t --quiet -a "$dom_alias" )
restart="$4"
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '3' "$#" 'USER DOMAIN ALIAS'
validate_format 'user' 'domain'
is_system_enabled "$WEB_SYSTEM"
is_system_enabled "$DNS_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"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Parsing domain values
get_domain_values 'web'
# Check if it a simple domain
if [ $(echo -e "${dom_alias//\./\n}" | wc -l) -le 2 ]; then
if [ ! -e "$USER_DATA/dns/$dom_alias.conf" ]; then
$BIN/v-add-dns-domain \
$user $dom_alias $IP '' '' '' '' '' $restart > /dev/null
fi
else
# Check subdomain
sub=$(echo "$dom_alias" | cut -f1 -d . -s)
dom=$(echo "$dom_alias" | sed -e "s/^$sub.//" )
if [ ! -e "$USER_DATA/dns/$dom.conf" ]; then
$BIN/v-add-dns-domain \
$user $dom $IP '' '' '' '' '' $restart > /dev/null
if [ $? -eq 0 ]; then
$BIN/v-add-dns-domain-record \
$user $dom "$sub" A $IP '' '' $restart
fi
else
if [ "$sub" == '*' ]; then
rec=$(grep -w "RECORD='\*'" $USER_DATA/dns/$dom.conf)
else
rec=$(grep -w "RECORD='$sub'" $USER_DATA/dns/$dom.conf)
fi
if [ -z "$rec" ]; then
$BIN/v-add-dns-domain-record \
$user $dom "$sub" A $IP '' '' $restart > /dev/null
fi
fi
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# No Logging
exit
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
#!/bin/bash #!/bin/bash
# info: add ftp account for web domain. # info: add ftp account for web domain.
# options: USER DOMAIN FTP_USER FTP_PASSWORD # options: USER DOMAIN FTP_USER FTP_PASSWORD
@ -69,3 +70,82 @@ log_history "added ftp account $ftp_user for $domain"
log_event "$OK" "$EVENT" log_event "$OK" "$EVENT"
exit exit
=======
#!/bin/bash
# info: add ftp account for web domain.
# options: USER DOMAIN FTP_USER FTP_PASSWORD
#
# The function creates addutional ftp account for web domain.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
domain=$(idn -t --quiet -u "$2" )
domain_idn=$(idn -t --quiet -a "$domain")
ftp_user=${1}_${3}
ftp_password=$4
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
# Hiding password
A4='******'
EVENT="DATE='$DATE' TIME='$TIME' CMD='$SCRIPT' A1='$A1' A2='$A2' A3='$A3'"
EVENT="$EVENT A4='$A4' A5='$A5' A6='$A6' A7='$A7' A8='$A8' A9='$A9'"
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '4' "$#" 'USER DOMAIN FTP_USER FTP_PASSWORD'
validate_format 'user' 'domain' 'ftp_user' 'ftp_password'
is_system_enabled "$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"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
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 $FTP_USER
fi
# Adding user
/usr/sbin/adduser $ftp_user -g $user -s /sbin/nologin -M \
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
echo "$ftp_password" | /usr/bin/passwd "$ftp_user" --stdin &>/dev/null
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"
update_object_value 'web' 'DOMAIN' "$domain" '$FTP_MD5' "$ftp_md5"
# Logging
log_history "added ftp account $ftp_user for $domain"
log_event "$OK" "$EVENT"
exit
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
#!/bin/bash #!/bin/bash
# info: rebuild dns domains # info: rebuild dns domains
# options: USER [RESTART] # options: USER [RESTART]
@ -310,3 +311,317 @@ fi
log_event "$OK" "$EVENT" log_event "$OK" "$EVENT"
exit exit
=======
#!/bin/bash
# info: rebuild dns domains
# options: USER [RESTART]
#
# The function rebuilds BIND configuration files for all dns domains.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
restart=$2
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
source $VESTA/func/ip.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '1' "$#" 'USER [RESTART]'
validate_format 'user'
is_system_enabled "$WEB_SYSTEM"
is_object_valid 'user' 'USER' "$user"
is_object_unsuspended 'user' 'USER' "$user"
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
user_domains=0
user_ssl=0
user_aliases=0
suspended_web=0
# Clean up old config
rm -f $HOMEDIR/$user/conf/tmp_*.conf
# Defining config
conf=$USER_DATA/web.conf
fields='$DOMAIN'
nohead=1
# Starting loop
for domain in $(shell_list) ; do
# Rebuilding directories
mkdir -p $HOMEDIR/$user/web/$domain \
$HOMEDIR/$user/web/$domain/public_html \
$HOMEDIR/$user/web/$domain/public_shtml \
$HOMEDIR/$user/web/$domain/document_errors \
$HOMEDIR/$user/web/$domain/cgi-bin \
$HOMEDIR/$user/web/$domain/private \
$HOMEDIR/$user/web/$domain/stats \
$HOMEDIR/$user/web/$domain/logs
if [ ! -e "$HOMEDIR/$user/web/$domain/logs/$domain.log" ]; then
ln -s /var/log/httpd/domains/$domain.error.log \
$HOMEDIR/$user/web/$domain/logs/$domain.log
fi
if [ ! -e "$HOMEDIR/$user/web/$domain/logs/$domain.error.log" ]; then
ln -s /var/log/httpd/domains/$domain.error.log \
$HOMEDIR/$user/web/$domain/logs/$domain.error.log
fi
if [ -e "$WEBTPL/skel/document_errors/" ]; then
cp -r $WEBTPL/skel/document_errors/ $HOMEDIR/$user/web/$domain/
fi
touch /var/log/httpd/domains/$domain.bytes \
/var/log/httpd/domains/$domain.log \
/var/log/httpd/domains/$domain.error.log
chmod 551 $HOMEDIR/$user/web/$domain
chmod 771 $HOMEDIR/$user/web/$domain/private
chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin
chmod 771 $HOMEDIR/$user/web/$domain/public_html
chmod 771 $HOMEDIR/$user/web/$domain/public_shtml
chmod 771 $HOMEDIR/$user/web/$domain/document_errors
chmod 551 $HOMEDIR/$user/web/$domain/stats
chmod 551 $HOMEDIR/$user/web/$domain/logs
chmod 640 /var/log/httpd/domains/$domain.*
chown $user:$user $HOMEDIR/$user/web/$domain
chown $user:$user $HOMEDIR/$user/web/$domain/private
chown $user:$user $HOMEDIR/$user/web/$domain/cgi-bin
chown $user:$user $HOMEDIR/$user/web/$domain/public_html
chown $user:$user $HOMEDIR/$user/web/$domain/public_shtml
chown -R $user:$user $HOMEDIR/$user/web/$domain/document_errors
chown root:$user /var/log/httpd/domains/$domain.*
chown root:apache $conf
# Parsing domain values
domain_idn=$(idn -t --quiet -a "$domain")
get_domain_values 'web'
# Preparing domain values for the template substitution
upd_web_domain_values
# Adding domain to the tmp_httpd.conf
tpl_file="$WEBTPL/apache_$TPL.tpl"
conf="$HOMEDIR/$user/conf/web/tmp_httpd.conf"
add_web_config
chown root:apache $conf
chmod 640 $conf
# Running template trigger
if [ -x $WEBTPL/apache_$TPL.sh ]; then
$WEBTPL/apache_$TPL.sh $user $domain $ip $HOMEDIR $docroot
fi
# Checking aliases
if [ ! -z "$ALIAS" ]; then
aliases=$(echo "$ALIAS"|tr ',' '\n'| wc -l)
user_aliases=$((user_aliases + aliases))
fi
# Checking stats
if [ ! -z "$STATS" ]; then
cat $WEBTPL/$STATS.tpl |\
sed -e "s/%ip%/$ip/g" \
-e "s/%web_port%/$WEB_PORT/g" \
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
-e "s/%proxy_port%/$PROXY_PORT/g" \
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
-e "s/%domain_idn%/$domain_idn/g" \
-e "s/%domain%/$domain/g" \
-e "s/%user%/$user/g" \
-e "s/%home%/${HOMEDIR////\/}/g" \
-e "s/%alias%/${aliases//,/ }/g" \
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
if [ "$STATS" == 'awstats' ]; then
if [ ! -e "/etc/awstats/$STATS.$domain.conf" ]; then
ln -s $HOMEDIR/$user/conf/web/$STATS.$domain.conf /etc/awstats/
fi
fi
webstats="$BIN/v-update-web-domain-stat $user $domain"
check_webstats=$(grep "$webstats" $VESTA/data/queue/webstats.pipe)
if [ -z "$check_webstats" ]; then
echo "$webstats" >> $VESTA/data/queue/webstats.pipe
fi
if [ ! -z "$STATS_USER" ]; then
# Definining statistic dir
stats_dir="$HOMEDIR/$user/web/$domain/stats"
# Adding htaccess file
echo "AuthUserFile $stats_dir/.htpasswd" > $stats_dir/.htaccess
echo "AuthName \"Web Statistics\"" >> $stats_dir/.htaccess
echo "AuthType Basic" >> $stats_dir/.htaccess
echo "Require valid-user" >> $stats_dir/.htaccess
# Generating htaccess user and password
echo "$STATS_USER:$STATS_CRYPT" > $stats_dir/.htpasswd
fi
fi
# Checking ssl
if [ "$SSL" = 'yes' ]; then
# Adding domain to the shttpd.conf
conf="$HOMEDIR/$user/conf/web/tmp_shttpd.conf"
tpl_file="$WEBTPL/apache_$TPL.stpl"
add_web_config
chown root:apache $conf
chmod 640 $conf
cp -f $USER_DATA/ssl/$domain.crt \
$HOMEDIR/$user/conf/web/ssl.$domain.crt
cp -f $USER_DATA/ssl/$domain.key \
$HOMEDIR/$user/conf/web/ssl.$domain.key
cp -f $USER_DATA/ssl/$domain.pem \
$HOMEDIR/$user/conf/web/ssl.$domain.pem
if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
cp -f $USER_DATA/ssl/$domain.ca \
$HOMEDIR/$user/conf/web/ssl.$domain.ca
fi
# Running template trigger
if [ -x $WEBTPL/apache_$TPL.sh ]; then
$WEBTPL/apache_$TPL.sh $user $domain $ip $HOMEDIR $sdocroot
fi
user_ssl=$((user_ssl + 1))
ssl_change='yes'
fi
# Checking nginx
if [ ! -z "$NGINX" ]; then
tpl_file="$WEBTPL/nginx_$NGINX.tpl"
conf="$HOMEDIR/$user/conf/web/tmp_nginx.conf"
add_web_config
chown root:nginx $conf
chmod 640 $conf
if [ "$SSL" = 'yes' ]; then
tpl_file="$WEBTPL/nginx_$NGINX.stpl"
conf="$HOMEDIR/$user/conf/web/tmp_snginx.conf"
add_web_config
chown root:nginx $conf
chmod 640 $conf
fi
ngix_change='yes'
fi
if [ "$SUSPENDED" = 'yes' ]; then
suspended_web=$((suspended_web + 1))
fi
user_domains=$((user_domains + 1))
# Checking ftp
if [ ! -z "$FTP_USER" ]; then
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
/usr/sbin/adduser $FTP_USER -g $user -s /sbin/nologin -M \
-d "$HOMEDIR/$user/web/$domain" > /dev/null 2>&1
shadow='/etc/shadow'
shdw=$(grep "^$FTP_USER:" $shadow)
shdw3=$(echo "$shdw" | cut -f3 -d :)
shdw4=$(echo "$shdw" | cut -f4 -d :)
shdw5=$(echo "$shdw" | cut -f5 -d :)
shdw6=$(echo "$shdw" | cut -f6 -d :)
shdw7=$(echo "$shdw" | cut -f7 -d :)
shdw8=$(echo "$shdw" | cut -f8 -d :)
shdw9=$(echo "$shdw" | cut -f9 -d :)
chmod u+w $shadow
sed -i "/^$FTP_USER:*/d" $shadow
shdw_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
shdw_str="$shdw_str:$shdw7:$shdw8:$shdw9"
echo "$shdw_str" >> $shadow
chmod u-w $shadow
fi
fi
done
# Renaming tmp config
tmp_conf="$HOMEDIR/$user/conf/web/tmp_httpd.conf"
conf="$HOMEDIR/$user/conf/web/httpd.conf"
if [ -e "$tmp_conf" ]; then
mv $tmp_conf $conf
fi
# Checking include in main httpd.conf
main_conf='/etc/httpd/conf.d/vesta.conf'
main_conf_check=$(grep "$conf" $main_conf )
if [ ! -z "$domain" ] && [ -z "$main_conf_check" ]; then
echo "Include $conf" >>$main_conf
fi
# Checking ssl
if [ "$ssl_change" = 'yes' ]; then
tmp_conf="$HOMEDIR/$user/conf/web/tmp_shttpd.conf"
conf="$HOMEDIR/$user/conf/web/shttpd.conf"
mv $tmp_conf $conf
# Checking include in main httpd.conf
main_conf_check=$(grep "$conf" $main_conf )
if [ -z "$main_conf_check" ]; then
echo "Include $conf" >>$main_conf
fi
fi
# Checking nginx
if [ "$ngix_change" = 'yes' ]; then
nginx_conf='/etc/nginx/conf.d/vesta_users.conf'
tmp_conf="$HOMEDIR/$user/conf/web/tmp_nginx.conf"
conf="$HOMEDIR/$user/conf/web/nginx.conf"
mv $tmp_conf $conf
nginx_conf_check=$(grep "$conf" $nginx_conf )
if [ -z "$nginx_conf_check" ]; then
echo "include $conf;" >>$nginx_conf
fi
# Checking ssl for nginx
if [ "$ssl_change" = 'yes' ]; then
tmp_conf="$HOMEDIR/$user/conf/web/tmp_snginx.conf"
conf="$HOMEDIR/$user/conf/web/snginx.conf"
mv $tmp_conf $conf
nginx_conf_check=$(grep "$conf" $nginx_conf )
if [ -z "$nginx_conf_check" ]; then
echo "include $conf;" >>$nginx_conf
fi
fi
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Updating counters
update_user_value "$user" '$SUSPENDED_WEB' "$suspended_web"
update_user_value "$user" '$U_WEB_DOMAINS' "$user_domains"
update_user_value "$user" '$U_WEB_SSL' "$user_ssl"
update_user_value "$user" '$U_WEB_ALIASES' "$user_aliases"
# Restart web server
if [ "$restart" != 'no' ]; then
$BIN/v-restart-web "$EVENT"
fi
# Logging
log_event "$OK" "$EVENT"
exit
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
#!/bin/bash #!/bin/bash
# info: update user statistics # info: update user statistics
# options: USER # options: USER
@ -167,3 +168,174 @@ fi
log_event "$OK" "$EVENT" log_event "$OK" "$EVENT"
exit exit
=======
#!/bin/bash
# info: update user statistics
# options: USER
#
# Function logs user parameters into statistics database.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Argument defenition
user=$1
# Importing system enviroment as we run this script
# mostly by cron wich not read it by itself
source /etc/profile
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
source $VESTA/func/domain.sh
#----------------------------------------------------------#
# Verifications #
#----------------------------------------------------------#
check_args '0' "$#" 'USER'
if [ ! -z "$user" ]; then
validate_format 'user'
is_object_valid 'user' 'USER' "$user"
fi
#----------------------------------------------------------#
# Action #
#----------------------------------------------------------#
# Creating user_list
if [ -z "$user" ]; then
user_list=$(ls $VESTA/data/users)
else
user_list="$user"
fi
# Reset overal statistics
TOTAL_IP_OWNED=0
TOTAL_U_DISK=0
TOTAL_U_DISK_DIRS=0
TOTAL_U_DISK_WEB=0
TOTAL_U_DISK_MAIL=0
TOTAL_U_DISK_DB=0
TOTAL_U_BANDWIDTH=0
TOTAL_U_WEB_DOMAINS=0
TOTAL_U_WEB_SSL=0
TOTAL_U_WEB_ALIASES=0
TOTAL_U_DNS_DOMAINS=0
TOTAL_U_DNS_RECORDS=0
TOTAL_U_MAIL_DOMAINS=0
TOTAL_U_MAIL_DKIM=0
TOTAL_U_MAIL_ACCOUNTS=0
TOTAL_U_DATABASES=0
TOTAL_U_CRON_JOBS=0
TOTAL_U_BACKUPS=0
# Updating user stats
for user in $user_list; do
USER_DATA=$VESTA/data/users/$user
source $USER_DATA/user.conf
next_month=$(date +'%m/01/%y' -d '+ 1 month')
DATE=$(date -d "$next_month -1day" +%F)
# Compiling report string
s="DATE='$DATE' TIME='$TIME' PACKAGE='$PACKAGE' IP_OWNED='$IP_OWNED'"
s="$s DISK_QUOTA='$DISK_QUOTA' U_DISK='$U_DISK' U_DISK_DIRS='$U_DISK_DIRS'"
s="$s U_DISK_WEB='$U_DISK_WEB' U_DISK_MAIL='$U_DISK_MAIL'"
s="$s U_DISK_DB='$U_DISK_DB' BANDWIDTH='$BANDWIDTH'"
s="$s U_BANDWIDTH='$U_BANDWIDTH' U_WEB_DOMAINS='$U_WEB_DOMAINS'"
s="$s U_WEB_SSL='$U_WEB_SSL' U_WEB_ALIASES='$U_WEB_ALIASES'"
s="$s U_DNS_DOMAINS='$U_DNS_DOMAINS' U_DNS_RECORDS='$U_DNS_RECORDS'"
s="$s U_MAIL_DOMAINS='$U_MAIL_DOMAINS' U_MAIL_DKIM='$U_MAIL_DKIM'"
s="$s U_MAIL_ACCOUNTS='$U_MAIL_ACCOUNTS' U_DATABASES='$U_DATABASES'"
s="$s U_CRON_JOBS='$U_CRON_JOBS' U_BACKUPS='$U_BACKUPS'"
# Updating user stats log
stats="$USER_DATA/stats.log"
if [ -e "$stats" ]; then
# Checking dublicates
check_month=$(grep -n "DATE='$DATE'" $stats|cut -f 1 -d :)
if [ -z "$check_month" ]; then
# Updating as there no dublicates
echo "$s" >> $stats
chmod 660 $stats
else
# Replacing string with new data
sed -i "$check_month s/.*/$s/" $stats
fi
else
# Creating stats log
echo "$s" >$stats
chmod 660 $stats
fi
# Increase overall counters
TOTAL_IP_OWNED=$((TOTAL_IP_OWNED + IP_OWNED))
TOTAL_U_DISK=$((TOTAL_U_DISK + U_DISK))
TOTAL_U_DISK_DIRS=$((TOTAL_U_DISK_DIRS + U_DISK_DIRS))
TOTAL_U_DISK_WEB=$((TOTAL_U_DISK_WEB + U_DISK_WEB))
TOTAL_U_DISK_MAIL=$((TOTAL_U_DISK_MAIL + U_DISK_MAIL))
TOTAL_U_DISK_DB=$((TOTAL_U_DISK_DB + U_DISK_DB))
TOTAL_U_BANDWIDTH=$((TOTAL_U_BANDWIDTH + U_BANDWIDTH))
TOTAL_U_WEB_DOMAINS=$((TOTAL_U_WEB_DOMAINS + U_WEB_DOMAINS))
TOTAL_U_WEB_SSL=$((TOTAL_U_WEB_SSL + U_WEB_SSL))
TOTAL_U_WEB_ALIASES=$((TOTAL_U_WEB_ALIASES + U_WEB_ALIASES))
TOTAL_U_DNS_DOMAINS=$((TOTAL_U_DNS_DOMAINS + U_DNS_DOMAINS))
TOTAL_U_DNS_RECORDS=$((TOTAL_U_DNS_RECORDS + U_DNS_RECORDS))
TOTAL_U_MAIL_DOMAINS=$((TOTAL_U_MAIL_DOMAINS + U_MAIL_DOMAINS))
TOTAL_U_MAIL_DKIM=$((TOTAL_U_MAIL_DKIM + U_MAIL_DKIM))
TOTAL_U_MAIL_ACCOUNTS=$((TOTAL_U_MAIL_ACCOUNTS + U_MAIL_ACCOUNTS))
TOTAL_U_DATABASES=$((TOTAL_U_DATABASES + U_DATABASES))
TOTAL_U_CRON_JOBS=$((TOTAL_U_CRON_JOBS + U_CRON_JOBS))
TOTAL_U_BACKUPS=$((TOTAL_U_BACKUPS + U_BACKUPS))
done
# Updating overall stats
stats="$VESTA/data/users/admin/overall_stats.log"
s="DATE='$DATE' TIME='$TIME' PACKAGE='default' IP_OWNED='$TOTAL_IP_OWNED'"
s="$s DISK_QUOTA='0' U_DISK='$TOTAL_U_DISK' U_DISK_DIRS='$TOTAL_U_DISK_DIRS'"
s="$s U_DISK_WEB='$TOTAL_U_DISK_WEB' U_DISK_MAIL='$TOTAL_U_DISK_MAIL'"
s="$s U_DISK_DB='$TOTAL_U_DISK_DB' BANDWIDTH='0'"
s="$s U_BANDWIDTH='$TOTAL_U_BANDWIDTH' U_WEB_DOMAINS='$TOTAL_U_WEB_DOMAINS'"
s="$s U_WEB_SSL='$TOTAL_U_WEB_SSL' U_WEB_ALIASES='$TOTAL_U_WEB_ALIASES'"
s="$s U_DNS_DOMAINS='$TOTAL_U_DNS_DOMAINS'"
s="$s U_DNS_RECORDS='$TOTAL_U_DNS_RECORDS'"
s="$s U_MAIL_DOMAINS='$TOTAL_U_MAIL_DOMAINS' U_MAIL_DKIM='$TOTAL_U_MAIL_DKIM'"
s="$s U_MAIL_ACCOUNTS='$TOTAL_U_MAIL_ACCOUNTS'"
s="$s U_DATABASES='$TOTAL_U_DATABASES'"
s="$s U_CRON_JOBS='$TOTAL_U_CRON_JOBS' U_BACKUPS='$TOTAL_U_BACKUPS'"
if [ -e "$stats" ]; then
# Checking dublicates
check_month=$(grep -n "DATE='$DATE'" $stats|cut -f 1 -d :)
if [ -z "$check_month" ]; then
# Updating as there no dublicates
echo "$s" >> $stats
chmod 660 $stats
else
# Replacing string with new data
sed -i "$check_month s/.*/$s/" $stats
fi
else
# Creating stats log
echo "$s" >$stats
chmod 660 $stats
fi
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$EVENT"
exit
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,340 +1,340 @@
########################################################################## ##########################################################################
SPAMASSASSIN = yes SPAMASSASSIN = yes
SPAM_SCORE = 10 SPAM_SCORE = 10
CLAMD = yes CLAMD = yes
########################################################################## ##########################################################################
domainlist local_domains = dsearch;/etc/exim/domains/ domainlist local_domains = dsearch;/etc/exim/domains/
domainlist relay_to_domains = dsearch;/etc/exim/domains/ domainlist relay_to_domains = dsearch;/etc/exim/domains/
hostlist relay_from_hosts = 127.0.0.1 hostlist relay_from_hosts = 127.0.0.1
hostlist spammers = net-iplsearch;/etc/exim/spam-blocks.conf hostlist spammers = net-iplsearch;/etc/exim/spam-blocks.conf
acl_smtp_connect = acl_check_spammers acl_smtp_connect = acl_check_spammers
acl_smtp_mail = acl_check_mail acl_smtp_mail = acl_check_mail
acl_smtp_rcpt = acl_check_rcpt acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data acl_smtp_data = acl_check_data
acl_smtp_mime = acl_check_mime acl_smtp_mime = acl_check_mime
.ifdef SPAMASSASSIN .ifdef SPAMASSASSIN
spamd_address = 127.0.0.1 783 spamd_address = 127.0.0.1 783
.endif .endif
.ifdef CLAMD .ifdef CLAMD
av_scanner = clamd: /var/run/clamav/clamd.sock av_scanner = clamd: /var/run/clamav/clamd.sock
.endif .endif
tls_advertise_hosts = * tls_advertise_hosts = *
tls_certificate = /etc/pki/tls/certs/exim.pem tls_certificate = /etc/pki/tls/certs/exim.pem
tls_privatekey = /etc/pki/tls/private/exim.pem tls_privatekey = /etc/pki/tls/private/exim.pem
daemon_smtp_ports = 25 : 465 : 587 : 2525 daemon_smtp_ports = 25 : 465 : 587 : 2525
tls_on_connect_ports = 465 tls_on_connect_ports = 465
never_users = root never_users = root
host_lookup = * host_lookup = *
rfc1413_hosts = * rfc1413_hosts = *
rfc1413_query_timeout = 5s rfc1413_query_timeout = 5s
ignore_bounce_errors_after = 2d ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d timeout_frozen_after = 7d
DKIM_DOMAIN = ${lc:${domain:$h_from:}} DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/exim/domains/${lc:${domain:$h_from:}}/dkim.pem DKIM_FILE = /etc/exim/domains/${lc:${domain:$h_from:}}/dkim.pem
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}} DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
########################################################################## ##########################################################################
begin acl begin acl
########################################################################## ##########################################################################
acl_check_spammers: acl_check_spammers:
drop message = Your host in blacklist on this server. drop message = Your host in blacklist on this server.
log_message = Host in blacklist log_message = Host in blacklist
hosts = +spammers hosts = +spammers
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}} dnslists = ${readfile {/etc/exim/dnsbl.conf}{:}}
accept accept
acl_check_mail: acl_check_mail:
deny deny
condition = ${if eq{$sender_helo_name}{}} condition = ${if eq{$sender_helo_name}{}}
message = HELO required before MAIL message = HELO required before MAIL
drop # drop
condition = ${if isip{$sender_helo_name}} # condition = ${if isip{$sender_helo_name}}
message = Access denied - Invalid HELO name (See RFC2821 4.1.3) # 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 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{$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}} condition = ${if match {${lookup dnsdb{>: defer_never,ptr=$sender_host_address}}\}{$sender_helo_name}{no}{yes}}
delay = 45s delay = 45s
# drop # drop
# condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}} # condition = ${if match{$sender_helo_name}{\N^\[\N}{no}{yes}}
# 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) # message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
drop drop
condition = ${if isip{$sender_helo_name}} condition = ${if isip{$sender_helo_name}}
message = Access denied - Invalid HELO name (See RFC2821 4.1.3) message = Access denied - Invalid HELO name (See RFC2821 4.1.3)
drop # drop
condition = ${if match{$sender_helo_name}{\N\.$\N}} # condition = ${if match{$sender_helo_name}{\N\.$\N}}
message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1) # message = Access denied - Invalid HELO name (See RFC2821 4.1.1.1)
drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]" # drop message = "REJECTED - Bad HELO - Host impersonating [$sender_helo_name]"
condition = ${if match{$sender_helo_name}{$primary_hostname}} # condition = ${if match{$sender_helo_name}{$primary_hostname}}
drop condition = ${if eq{[$interface_address]}{$sender_helo_name}} drop condition = ${if eq{[$interface_address]}{$sender_helo_name}}
message = $interface_address is _my_ address message = $interface_address is _my_ address
accept accept
acl_check_rcpt: acl_check_rcpt:
accept hosts = : accept hosts = :
deny message = Restricted characters in address deny message = Restricted characters in address
domains = +local_domains domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|] local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address deny message = Restricted characters in address
domains = !+local_domains domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
require verify = sender require verify = sender
accept hosts = +relay_from_hosts accept hosts = +relay_from_hosts
control = submission control = submission
accept local_parts = postmaster accept local_parts = postmaster
domains = +local_domains domains = +local_domains
accept authenticated = * accept authenticated = *
control = submission/domain= control = submission/domain=
require message = relay not permitted require message = relay not permitted
domains = +local_domains : +relay_to_domains domains = +local_domains : +relay_to_domains
deny message = smtp auth requried deny message = smtp auth requried
sender_domains = +local_domains sender_domains = +local_domains
!authenticated = * !authenticated = *
require verify = recipient require verify = recipient
.ifdef CLAMD .ifdef CLAMD
warn set acl_m0 = no warn set acl_m0 = no
warn condition = ${if exists {/etc/exim/domains/$domain/antivirus}{yes}{no}} warn condition = ${if exists {/etc/exim/domains/$domain/antivirus}{yes}{no}}
set acl_m0 = yes set acl_m0 = yes
.endif .endif
.ifdef SPAMASSASSIN .ifdef SPAMASSASSIN
warn set acl_m1 = no warn set acl_m1 = no
warn condition = ${if exists {/etc/exim/domains/$domain/antispam}{yes}{no}} warn condition = ${if exists {/etc/exim/domains/$domain/antispam}{yes}{no}}
set acl_m1 = yes set acl_m1 = yes
.endif .endif
accept accept
acl_check_data: acl_check_data:
.ifdef CLAMD .ifdef CLAMD
deny message = Message contains a virus ($malware_name) and has been rejected deny message = Message contains a virus ($malware_name) and has been rejected
malware = * malware = *
condition = ${if eq{$acl_m0}{yes}{yes}{no}} condition = ${if eq{$acl_m0}{yes}{yes}{no}}
.endif .endif
.ifdef SPAMASSASSIN .ifdef SPAMASSASSIN
warn warn
!authenticated = * !authenticated = *
hosts = !+relay_from_hosts hosts = !+relay_from_hosts
condition = ${if < {$message_size}{100K}} condition = ${if < {$message_size}{100K}}
condition = ${if eq{$acl_m1}{yes}{yes}{no}} condition = ${if eq{$acl_m1}{yes}{yes}{no}}
spam = nobody:true/defer_ok spam = nobody:true/defer_ok
add_header = X-Spam-Score: $spam_score_int add_header = X-Spam-Score: $spam_score_int
add_header = X-Spam-Bar: $spam_bar add_header = X-Spam-Bar: $spam_bar
add_header = X-Spam-Report: $spam_report add_header = X-Spam-Report: $spam_report
set acl_m2 = $spam_score_int set acl_m2 = $spam_score_int
warn warn
condition = ${if !eq{$acl_m2}{} {yes}{no}} condition = ${if !eq{$acl_m2}{} {yes}{no}}
condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}} condition = ${if >{$acl_m2}{SPAM_SCORE} {yes}{no}}
add_header = X-Spam-Status: Yes add_header = X-Spam-Status: Yes
message = SpamAssassin detected spam (from $sender_address to $recipients). message = SpamAssassin detected spam (from $sender_address to $recipients).
.endif .endif
accept accept
acl_check_mime: acl_check_mime:
deny message = Blacklisted file extension detected 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}} 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 accept
########################################################################## ##########################################################################
begin authenticators begin authenticators
########################################################################## ##########################################################################
dovecot_plain: dovecot_plain:
driver = dovecot driver = dovecot
public_name = PLAIN public_name = PLAIN
server_socket = /var/run/dovecot/auth-client server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1 server_set_id = $auth1
dovecot_login: dovecot_login:
driver = dovecot driver = dovecot
public_name = LOGIN public_name = LOGIN
server_socket = /var/run/dovecot/auth-client server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1 server_set_id = $auth1
########################################################################## ##########################################################################
begin routers begin routers
########################################################################## ##########################################################################
dnslookup: dnslookup:
driver = dnslookup driver = dnslookup
domains = !+local_domains domains = !+local_domains
transport = remote_smtp transport = remote_smtp
# ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 # ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more no_more
#system_aliases: #system_aliases:
# domains = +local_domains # domains = +local_domains
# driver = redirect # driver = redirect
# allow_fail # allow_fail
# allow_defer # allow_defer
# data = ${lookup{$local_part}lsearch{/etc/aliases}} # data = ${lookup{$local_part}lsearch{/etc/aliases}}
# file_transport = address_file # file_transport = address_file
# pipe_transport = address_pipe # pipe_transport = address_pipe
userforward: userforward:
driver = redirect driver = redirect
check_local_user check_local_user
file = $home/.forward file = $home/.forward
allow_filter allow_filter
no_verify no_verify
no_expn no_expn
check_ancestor check_ancestor
file_transport = address_file file_transport = address_file
pipe_transport = address_pipe pipe_transport = address_pipe
reply_transport = address_reply reply_transport = address_reply
procmail: procmail:
driver = accept driver = accept
check_local_user check_local_user
require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail require_files = ${local_part}:+${home}/.procmailrc:/usr/bin/procmail
transport = procmail transport = procmail
no_verify no_verify
autoreplay: autoreplay:
driver = accept driver = accept
require_files = /etc/exim/domains/$domain/autoreply.${local_part}.msg require_files = /etc/exim/domains/$domain/autoreply.${local_part}.msg
condition = ${if exists{/etc/exim/domains/$domain/autoreply.${local_part}.msg}}{yes}{no}} condition = ${if exists{/etc/exim/domains/$domain/autoreply.${local_part}.msg}}{yes}{no}}
retry_use_local_part retry_use_local_part
transport = userautoreply transport = userautoreply
unseen unseen
aliases: aliases:
driver = redirect driver = redirect
headers_add = X-redirected: yes headers_add = X-redirected: yes
data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}}}} data = ${extract{1}{:}{${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}}}}
require_files = /etc/exim/domains/$domain/aliases require_files = /etc/exim/domains/$domain/aliases
redirect_router = dnslookup redirect_router = dnslookup
pipe_transport = address_pipe pipe_transport = address_pipe
unseen unseen
localuser_spam: localuser_spam:
driver = accept driver = accept
transport = local_spam_delivery transport = local_spam_delivery
condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}{yes}{no_such_user}}}} condition = ${if eq {${if match{$h_X-Spam-Status:}{\N^Yes\N}{yes}{no}}} {${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}{yes}{no_such_user}}}}
localuser: localuser:
driver = accept driver = accept
transport = local_delivery transport = local_delivery
condition = ${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}{true}{false}} condition = ${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}{true}{false}}
catchall: catchall:
driver = redirect driver = redirect
headers_add = X-redirected: yes headers_add = X-redirected: yes
require_files = /etc/exim/domains/$domain/aliases require_files = /etc/exim/domains/$domain/aliases
data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim/domains/$domain/aliases}}}} data = ${extract{1}{:}{${lookup{*@$domain}lsearch{/etc/exim/domains/$domain/aliases}}}}
file_transport = local_delivery file_transport = local_delivery
redirect_router = dnslookup redirect_router = dnslookup
terminate_alias: terminate_alias:
driver = accept driver = accept
transport = devnull transport = devnull
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}{true}{false}} condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/domains/$domain/aliases}{true}{false}}
########################################################################## ##########################################################################
begin transports begin transports
########################################################################## ##########################################################################
remote_smtp: remote_smtp:
driver = smtp driver = smtp
helo_data = $sender_address_domain helo_data = $sender_address_domain
dkim_domain = DKIM_DOMAIN dkim_domain = DKIM_DOMAIN
dkim_selector = mail dkim_selector = mail
dkim_private_key = DKIM_PRIVATE_KEY dkim_private_key = DKIM_PRIVATE_KEY
dkim_canon = relaxed dkim_canon = relaxed
dkim_strict = 0 dkim_strict = 0
procmail: procmail:
driver = pipe driver = pipe
command = "/usr/bin/procmail -d $local_part" command = "/usr/bin/procmail -d $local_part"
return_path_add return_path_add
delivery_date_add delivery_date_add
envelope_to_add envelope_to_add
user = $local_part user = $local_part
initgroups initgroups
return_output return_output
local_delivery: local_delivery:
driver = appendfile driver = appendfile
maildir_format maildir_format
maildir_use_size_file maildir_use_size_file
user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}} user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}
group = mail group = mail
create_directory create_directory
directory_mode = 770 directory_mode = 770
mode = 660 mode = 660
use_lockfile = no use_lockfile = no
delivery_date_add delivery_date_add
envelope_to_add envelope_to_add
return_path_add return_path_add
directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part" directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part"
quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}M quota = ${extract{6}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}M
quota_warn_threshold = 75% quota_warn_threshold = 75%
local_spam_delivery: local_spam_delivery:
driver = appendfile driver = appendfile
maildir_format maildir_format
maildir_use_size_file maildir_use_size_file
user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}} user = ${extract{2}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}
group = mail group = mail
create_directory create_directory
directory_mode = 770 directory_mode = 770
mode = 660 mode = 660
use_lockfile = no use_lockfile = no
delivery_date_add delivery_date_add
envelope_to_add envelope_to_add
return_path_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 = ${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_directory = "${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim/domains/$domain/passwd}}}}/mail/$domain/$local_part"
quota_warn_threshold = 75% quota_warn_threshold = 75%
address_pipe: address_pipe:
driver = pipe driver = pipe
return_output return_output
address_file: address_file:
driver = appendfile driver = appendfile
delivery_date_add delivery_date_add
envelope_to_add envelope_to_add
return_path_add return_path_add
address_reply: address_reply:
driver = autoreply driver = autoreply
userautoreply: userautoreply:
driver = autoreply driver = autoreply
file = /etc/exim/domains/$domain/autoreply.${local_part}.msg file = /etc/exim/domains/$domain/autoreply.${local_part}.msg
from = "${local_part}@${domain}" from = "${local_part}@${domain}"
subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {Autoreply Message}}" subject = "${if def:h_Subject: {Autoreply: ${quote:${escape:$h_Subject:}}} {Autoreply Message}}"
to = "${sender_address}" to = "${sender_address}"
devnull: devnull:
driver = appendfile driver = appendfile
file = /dev/null file = /dev/null
########################################################################## ##########################################################################
begin retry begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h * * F,2h,15m; G,16h,1h,1.5; F,4d,6h
########################################################################## ##########################################################################
begin rewrite begin rewrite

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
<?php <?php
/** /**
@ -52,3 +53,65 @@ class rcube_vesta_password
} }
} }
=======
<?php
/**
* Vesta Control Panel Password Driver
*
* @version 1.0
* @author Serghey Rodin <skid@vestacp.com>
*/
class rcube_vesta_password
{
function save($curpass, $passwd)
{
$rcmail = rcmail::get_instance();
$vesta_host = $rcmail->config->get('password_vesta_host');
if (empty($vesta_host))
{
$vesta_host = 'localhost';
}
$vesta_port = $rcmail->config->get('password_vesta_port');
if (empty($vesta_port))
{
$vesta_port = '8083';
}
$postvars = array(
'email' => $_SESSION['username'],
'password' => $curpass,
'new' => $passwd
);
$postdata = http_build_query($postvars);
$send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL;
$send .= 'Host: ' . $vesta_host . PHP_EOL;
$send .= 'User-Agent: PHP Script' . PHP_EOL;
$send .= 'Content-length: ' . strlen($postdata) . PHP_EOL;
$send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL;
$send .= 'Connection: close' . PHP_EOL;
$send .= PHP_EOL;
$send .= $postdata . PHP_EOL . PHP_EOL;
$fp = fsockopen('ssl://' . $vesta_host, $vesta_port);
fputs($fp, $send);
$result = fread($fp, 2048);
fclose($fp);
if(strpos($result, 'ok') && !strpos($html, 'error'))
{
return PASSWORD_SUCCESS;
}
else {
return PASSWORD_ERROR;
}
}
}
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

View file

@ -1,3 +1,4 @@
<<<<<<< HEAD
#!/bin/bash #!/bin/bash
# Vesta installer # Vesta installer
@ -636,3 +637,652 @@ cd
bash bash
# EOF # EOF
=======
#!/bin/bash
# Vesta installer
# Define Variables
RHOST='r.vestacp.com'
CHOST='c.vestacp.com'
REPO='cmmnt'
VERSION='0.9.7'
YUM_REPO='/etc/yum.repos.d/vesta.repo'
arch=$(uname -i)
tools="screen mc libpng libjpeg curl libmcrypt mhash zip unzip freetype ntp
openssl flex libxml2 ImageMagick sqlite pcre sudo bc jwhois mailx lsof
tar telnet rsync"
rpms="nginx httpd mod_ssl mod_ruid2 mod_extract_forwarded mod_fcgid ftp
webalizer awstats mysql mysql-server php php-bcmath php-cli php-common
php-gd php-imap php-mbstring php-mcrypt php-mysql php-pdo php-soap php-tidy
php-xml php-xmlrpc phpMyAdmin exim dovecot clamd spamassassin roundcubemail
bind bind-utils bind-libs vsftpd rrdtool GeoIP vesta vesta-nginx vesta-php"
# Am I root?
if [ "x$(id -u)" != 'x0' ]; then
echo 'Error: this script can only be executed by root'
exit 1
fi
# Check supported version
if [ ! -e '/etc/redhat-release' ]; then
echo 'Error: sorry, we currently support RHEL and CentOS only'
exit 1
fi
os=$(cut -f 1 -d ' ' /etc/redhat-release)
if [ $os != 'CentOS' ] && [ $os != 'Red' ]; then
echo 'Error: sorry, we currently support RHEL and CentOS only'
fi
release=$(grep -o "[0-9]" /etc/redhat-release |head -n1)
help() {
echo "usage: $0 [OPTIONS]
-d, --disable-remi Disable remi
-e, --email Define email address
-h, --help Print this help and exit
-f, --force Force installation"
exit 1
}
# Translating argument to --gnu-long-options
for arg; do
delim=""
case "$arg" in
--help) args="${args}-h " ;;
--disable-remi) args="${args}-d " ;;
--force) args="${args}-f " ;;
--email) args="${args}-e " ;;
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
args="${args}${delim}${arg}${delim} ";;
esac
done
eval set -- "$args"
# Getopt
while getopts "dhfe:" Option; do
case $Option in
d) disable_remi='yes' ;; # Disable remi repo
h) help ;; # Help
e) email=$OPTARG ;; # Contact email
f) force=yes ;; # Force install
*) help ;; # Default
esac
done
# Are you sure ?
if [ -z $email ]; then
echo
echo
echo
echo
echo
echo ' ***********************************************************'
echo
echo ' _| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_| '
echo ' _| _| _| _| _| _| _| '
echo ' _| _| _|_|_| _|_| _| _|_|_|_| '
echo ' _| _| _| _| _| _| _| '
echo ' _| _|_|_|_| _|_|_| _| _| _| '
echo
echo
echo
echo
echo
echo
echo
echo
echo ' ***********************************************************'
echo
echo
read -n 1 -p 'Do you want to install Vesta Control Panel? [y/n]): ' answer
if [ "$answer" != 'y' ] && [ "$answer" != 'Y' ]; then
echo 'Goodbye'
exit 1
fi
echo
# Check email
read -p 'Please enter valid email address: ' email
fi
# Validate email
local_part=$(echo $email | cut -s -f1 -d\@)
remote_host=$(echo $email | cut -s -f2 -d\@)
mx_failed=1
if [ ! -z "$remote_host" ] && [ ! -z "$local_part" ]; then
/usr/bin/host -t mx "$remote_host" &> /dev/null
mx_failed="$?"
fi
if [ "$mx_failed" -eq 1 ]; then
echo "Error: email $email is not valid"
exit 1
fi
echo
echo
echo
echo
echo 'Installation will take about 15 minutes ...'
echo
sleep 2
# Check wget
if [ ! -e '/usr/bin/wget' ]; then
yum -y install wget
if [ $? -ne 0 ]; then
echo "Error: can't install wget"
exit 1
fi
fi
# Check repo availability
wget "$RHOST/$REPO/vesta.conf" -O /dev/null
if [ $? -ne 0 ]; then
echo "Error: no access to $REPO repository"
exit 1
fi
# Check installed packages
tmpfile=$(mktemp -p /tmp)
rpm -qa > $tmpfile
for rpm in $rpms; do
if [ ! -z "$(grep ^$rpm. $tmpfile)" ]; then
conflicts="$rpm $conflicts"
fi
done
rm -f $tmpfile
if [ ! -z "$conflicts" ] && [ -z "$force" ]; then
echo
echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!'
echo
echo 'Following rpm packages aleady installed:'
echo "$conflicts"
echo
echo 'It is highly recommended to remove them before proceeding.'
echo
echo 'If you want to force installation run this script with -f option:'
echo "Example: bash $0 --force"
echo
echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!'
echo
exit 1
fi
# Password generator
gen_pass() {
MATRIX='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
LENGTH=10
while [ ${n:=1} -le $LENGTH ]; do
PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"
let n+=1
done
echo "$PASS"
}
# Update system
yum -y update
if [ $? -ne 0 ]; then
echo 'Error: yum update failed'
exit 1
fi
# Install additional packages
yum -y install $tools
if [ $? -ne 0 ]; then
echo 'Error: yum install failed'
exit 1
fi
# Install EPEL repo
if [ ! -e '/etc/yum.repos.d/epel.repo' ]; then
if [ "$release" -eq '5' ]; then
epel="5/$arch/epel-release-5-4.noarch.rpm"
fi
if [ "$release" -eq '6' ]; then
epel="6/$arch/epel-release-6-8.noarch.rpm"
fi
rpm -ivh http://dl.fedoraproject.org/pub/epel/$epel
if [ $? -ne 0 ]; then
echo "Error: can't install EPEL repository"
exit 1
fi
fi
# Install remi repo
if [ ! -e '/etc/yum.repos.d/remi.repo' ]; then
if [ "$release" -eq '5' ]; then
remi="remi-release-5.rpm"
fi
if [ "$release" -eq '6' ]; then
remi="remi-release-6.rpm"
fi
rpm -ivh http://rpms.famillecollet.com/enterprise/$remi
if [ $? -ne 0 ]; then
echo "Error: can't install remi repository"
exit 1
fi
fi
# Install vesta repo
echo "[vesta]
name=Vesta - $REPO
baseurl=http://$RHOST/$REPO/$release/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA" > $YUM_REPO
wget $CHOST/GPG.txt -O /etc/pki/rpm-gpg/RPM-GPG-KEY-VESTA
# Checking if old MySQL stuff exists
if [ -e '/var/lib/mysql' ]; then
mv -f /var/lib/mysql /var/lib/mysql_old
fi
if [ -e '/etc/my.cnf' ]; then
mv -f /etc/my.cnf /etc/my.cnf_old
fi
if [ -e '/root/.my.cnf' ]; then
mv -f /root/.my.cnf
fi
# Install Vesta packages
if [ -z "$disable_remi" ]; then
yum -y --enablerepo=remi install $rpms
else
yum -y install $rpms
fi
if [ $? -ne 0 ]; then
echo 'Error: yum install failed'
exit 1
fi
# Configuring run levels
chkconfig iptables off
if [ -e /etc/init.d/sendmail ]; then
chkconfig sendmail off
fi
if [ -e /etc/init.d/postfix ]; then
chkconfig postfix off
fi
chkconfig vesta on
chkconfig httpd on
chkconfig nginx on
chkconfig mysqld on
chkconfig vsftpd on
chkconfig named on
chkconfig exim on
chkconfig clamd on
chkconfig spamassassin on
chkconfig dovecot on
# Make dirs more visible
echo 'LS_COLORS="$LS_COLORS:di=00;33"' >> /etc/profile
# Vesta does not support SELINUX for now
if [ -e '/etc/sysconfig/selinux' ]; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
setenforce 0
fi
if [ -e '/etc/selinux/config' ]; then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
fi
# Vesta use own webalizer routine
rm -f /etc/cron.daily/00webalizer
# NTP Synchronization
echo '#!/bin/sh' > /etc/cron.daily/ntpdate
echo "$(which ntpdate) -s pool.ntp.org" >> /etc/cron.daily/ntpdate
chmod 775 /etc/cron.daily/ntpdate
ntpdate -s pool.ntp.org
# Vesta Environment
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
mkdir -p $VESTA/conf
mkdir -p $VESTA/log
mkdir -p $VESTA/data
mkdir -p $VESTA/ssl
chmod 770 $VESTA/conf
# Make backup directory
vst_backups="/root/vst_install_backups/$(date +%s)"
mkdir -p $vst_backups
mkdir -p $vst_backups/nginx
mkdir -p $vst_backups/httpd
mkdir -p $vst_backups/mysql
mkdir -p $vst_backups/exim
mkdir -p $vst_backups/dovecot
mkdir -p $vst_backups/clamd
mkdir -p $vst_backups/vsftpd
mkdir -p $vst_backups/named
wget $RHOST/$REPO/vesta.conf -O $VESTA/conf/vesta.conf
if [ -e '/etc/sudoers' ]; then
mv /etc/sudoers $vst_backups/
fi
wget $CHOST/$VERSION/sudoers.conf -O /etc/sudoers
chmod 0440 /etc/sudoers
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
sed -i "s/umask 022/umask 002/g" /etc/profile
# Create backup directory
adduser backup
ln -s /home/backup /backup
chmod a+x /backup
# Configuring data templates
cd /usr/local/vesta/data
mkdir ips
mkdir queue
mkdir users
touch queue/backup.pipe
touch queue/disk.pipe
touch queue/webstats.pipe
touch queue/restart.pipe
touch queue/traffic.pipe
chmod 750 users
chmod 750 ips
chmod -R 750 queue
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
chmod -R 755 /usr/local/vesta/data/templates
cp templates/web/skel/public_html/index.html /var/www/html/
sed -i 's/%domain%/It worked!/g' /var/www/html/index.html
# Configuring 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
vpass=$(gen_pass)
$VESTA/bin/v-add-user admin $vpass $email default System Administrator
if [ $? -ne 0 ]; then
echo "Error: can't create admin user"
exit 1
fi
# Set shell
$VESTA/bin/v-change-user-shell admin bash
# Apache
if [ -e '/etc/httpd/conf/httpd.conf' ]; then
mv /etc/httpd/conf/httpd.conf $vst_backups/httpd/
fi
if [ -e '/etc/httpd/conf.d/ssl.conf' ]; then
mv /etc/httpd/conf.d/ssl.conf $vst_backups/httpd/
fi
if [ -e '/etc/httpd/conf.d/proxy_ajp.conf' ]; then
mv /etc/httpd/conf.d/proxy_ajp.conf $vst_backups/httpd/
fi
wget $CHOST/$VERSION/httpd.conf -O /etc/httpd/conf/httpd.conf
wget $CHOST/$VERSION/httpd-status.conf -O /etc/httpd/conf.d/status.conf
wget $CHOST/$VERSION/httpd-ssl.conf -O /etc/httpd/conf.d/ssl.conf
wget $CHOST/$VERSION/httpd.log -O /etc/logrotate.d/httpd
echo "MEFaccept 127.0.0.1" >> /etc/httpd/conf.d/mod_extract_forwarded.conf
echo > /etc/httpd/conf.d/proxy_ajp.conf
echo > /etc/httpd/conf.d/vesta.conf
touch /var/log/httpd/access_log
touch /var/log/httpd/error_log
touch /var/log/httpd/suexec.log
mkdir -p /var/log/httpd/domains
chmod a+x /var/log/httpd
chmod 640 /var/log/httpd/access_log
chmod 640 /var/log/httpd/error_log
chmod 640 /var/log/httpd/suexec.log
chmod 751 /var/log/httpd/domains
# Nginx
if [ -e '/etc/nginx/nginx.conf' ]; then
mv /etc/nginx/nginx.conf $vst_backups/nginx/
fi
if [ -f '/etc/nginx/conf.d/default.conf' ]; then
mv /etc/nginx/conf.d/default.conf $vst_backups/nginx/
fi
if [ -e '/etc/nginx/conf.d/example_ssl.conf' ]; then
mv /etc/nginx/conf.d/example_ssl.conf $vst_backups/nginx/
fi
wget $CHOST/$VERSION/nginx.conf -O /etc/nginx/nginx.conf
wget $CHOST/$VERSION/nginx-status.conf -O /etc/nginx/conf.d/status.conf
touch /etc/nginx/conf.d/vesta_ip.conf
touch /etc/nginx/conf.d/vesta_users.conf
# VsFTP
if [ -e '/etc/vsftpd/vsftpd.conf' ]; then
mv /etc/vsftpd/vsftpd.conf $vst_backups/vsftpd/
fi
wget $CHOST/$VERSION/vsftpd.conf -O /etc/vsftpd/vsftpd.conf
# MySQL
if [ -e '/etc/my.cnf' ]; then
mv /etc/my.cnf $vst_backups/mysql/
fi
if [ -e '/root/.my.cnf' ]; then
mv /root/.my.cnf $vst_backups/mysql/
fi
mpass=$(gen_pass)
server_memory="$(grep 'MemTotal' /proc/meminfo |tr ' ' '\n' |grep [0-9])"
if [ "$server_memory" -gt '1000000' ]; then
wget $CHOST/$VERSION/mysql.cnf -O /etc/my.cnf
else
wget $CHOST/$VERSION/mysql-512.cnf -O /etc/my.cnf
fi
service mysqld start
mysqladmin -u root password $mpass
echo -e "[client]\npassword='$mpass'\n" >/root/.my.cnf
$VESTA/bin/v-add-database-server mysql localhost 3306 root $mpass
$VESTA/bin/v-add-database admin default default $(gen_pass) mysql
# Bind
if [ -e '/etc/named.conf' ]; then
mv /etc/named.conf $vst_backups/named/
fi
wget $CHOST/$VERSION/named.conf -O /etc/named.conf
chown root:named /etc/named.conf
chmod 640 /etc/named.conf
# Exim
if [ -e '/etc/exim/exim.conf' ]; then
mv /etc/exim/exim.conf $vst_backups/exim/
fi
if [ -e '/etc/clamd.conf' ]; then
mv /etc/clamd.conf $vst_backups/clamd/
fi
wget $CHOST/$VERSION/exim.conf -O /etc/exim/exim.conf
wget $CHOST/$VERSION/dnsbl.conf -O /etc/exim/dnsbl.conf
wget $CHOST/$VERSION/spam-blocks.conf -O /etc/exim/spam-blocks.conf
wget $CHOST/$VERSION/clamd.conf -O /etc/clamd.conf
mkdir /etc/exim/domains
chmod 640 /etc/exim/exim.conf
gpasswd -a clam exim
gpasswd -a exim mail
gpasswd -a clam mail
gpasswd -a dovecot mail
/usr/bin/freshclam
# Dovecot config
if [ "$release" -eq '5' ]; then
if -e [ '/etc/dovecot.conf' ]; then
mv /etc/dovecot.conf $vst_backups/dovecot/
fi
wget $CHOST/$VERSION/dovecot.conf -O /etc/dovecot.conf
else
if [ -e '/etc/dovecot' ]; then
mv /etc/dovecot/* $vst_backups/dovecot/
fi
wget $CHOST/$VERSION/dovecot.tar.gz -O /etc/dovecot.tar.gz
cd /etc/
tar -xzf dovecot.tar.gz
rm -f dovecot.tar.gz
fi
# PMA
wget $CHOST/$VERSION/httpd-pma.conf -O /etc/httpd/conf.d/phpMyAdmin.conf
wget $CHOST/$VERSION/pma.conf -O /etc/phpMyAdmin/config.inc.php
sed -i "s/%blowfish_secret%/$(gen_pass)/g" /etc/phpMyAdmin/config.inc.php
# Roundcube setup
wget $CHOST/$VERSION/httpd-webmail.conf -O /etc/httpd/conf.d/roundcubemail.conf
wget $CHOST/$VERSION/roundcube-main.conf -O /etc/roundcubemail/main.inc.php
wget $CHOST/$VERSION/roundcube-db.conf -O /etc/roundcubemail/db.inc.php
wget $CHOST/$VERSION/roundcube-driver.php -O /usr/share/roundcubemail/plugins/password/vesta.php
wget $CHOST/$VERSION/roundcube-pw.conf -O /usr/share/roundcubemail/plugins/password/config.inc.php
r="$(gen_pass)"
mysql -e "CREATE DATABASE roundcube"
mysql -e "GRANT ALL ON roundcube.* TO roundcube@localhost IDENTIFIED BY '$r'"
sed -i "s/%password%/$r/g" /etc/roundcubemail/db.inc.php
mysql roundcube < /usr/share/doc/roundcubemail-*/SQL/mysql.initial.sql
# Configuring ip
$VESTA/bin/v-update-sys-ip
# Get main ip
main_ip=$(ifconfig |grep 'inet addr:' |grep -v 127.0.0.1 |head -n1 |\
cut -f2 -d: | cut -f1 -d ' ')
# Add default web domain on main ip
$VESTA/bin/v-add-web-domain admin default.domain $main_ip
# Add default dns domain on main ip
$VESTA/bin/v-add-dns-domain admin default.domain $main_ip
# Add default mail domain
$VESTA/bin/v-add-mail-domain admin default.domain
# Configuring crond
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'
$VESTA/bin/v-add-cron-job 'admin' '10' '00' '*' '*' '*' "$command"
command='sudo /usr/local/vesta/bin/v-update-sys-queue webstats'
$VESTA/bin/v-add-cron-job 'admin' '30' '03' '*' '*' '*' "$command"
command='sudo /usr/local/vesta/bin/v-update-sys-queue backup'
$VESTA/bin/v-add-cron-job 'admin' '*/30' '*' '*' '*' '*' "$command"
command='sudo /usr/local/vesta/bin/v-backup-users'
$VESTA/bin/v-add-cron-job 'admin' '10' '05' '*' '*' '*' "$command"
command='sudo /usr/local/vesta/bin/v-update-user-stats'
$VESTA/bin/v-add-cron-job 'admin' '20' '00' '01' '*' '*' "$command"
command='sudo /usr/local/vesta/bin/v-update-sys-rrd'
$VESTA/bin/v-add-cron-job 'admin' '*/5' '*' '*' '*' '*' "$command"
# Creating symlink
ln -s /usr/local/vesta/log /var/log/vesta
# Stop unused services
services='iptables sendmail postfix'
for srv in $services; do
service $srv status > /dev/null
if [ $? -eq 0 ]; then
service $srv stop
fi
done
# Start system service
services='vesta httpd nginx vsftpd exim dovecot clamd spamassassin named crond'
for srv in $services; do
service $srv status > /dev/null
if [ $? -gt 0 ]; then
service $srv start
else
service $srv restart
fi
done
# Change sendmail client
rm -f /etc/alternatives/mta
ln -s /usr/sbin/sendmail.exim /etc/alternatives/mta
# Build inititall rrd images
$VESTA/bin/v-update-sys-rrd
# Send notification to vestacp.com
wget vestacp.com/notify/?$REPO -O /dev/null
# Get server ip
vst_ip=$(wget vestacp.com/what-is-my-ip/ -O - 2>/dev/null)
if [ ! -z "$vst_ip" ] && [ "$vst_ip" != "$main_ip" ]; then
# Assign passive ip address
echo "pasv_address=$vst_ip" >> /etc/vsftpd/vsftpd.conf
fi
if [ -z "$vst_ip" ]; then
vst_ip=$main_ip
fi
# Send email
echo -e "Congratulations, you have just successfully installed \
the Vesta Control Panel
You can login in Vesta with following credentials:
username: admin
password: $vpass
https://$vst_ip:8083
We hope that you enjoy your installation of Vesta. Please \
feel free to contact us anytime if you have any questions.
Thank you.
--
Sincerely yours
vestacp.com team
" > $tmpfile
cat $tmpfile | mail -s "Vesta Control Panel" $email
rm -f $tmpfile
# Congrats
echo
echo
echo ' ***********************************************************'
echo
echo ' _| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_| '
echo ' _| _| _| _| _| _| _| '
echo ' _| _| _|_|_| _|_| _| _|_|_|_| '
echo ' _| _| _| _| _| _| _| '
echo ' _| _|_|_|_| _|_|_| _| _| _| '
echo
echo ' Congratulations, you have just successfully installed'
echo ' the Vesta Control Panel!'
echo
echo ' Now you can login in Vesta with following credentials:'
echo ' username: admin'
echo " password: $vpass"
echo " https://$vst_ip:8083/"
echo
echo
echo ' Thank you for using our product.'
echo
echo ' ***********************************************************'
echo
echo
# Tricky way to get new PATH variable
cd
bash
# EOF
>>>>>>> 994c40901078e48fe939536f7b366e29c2e44a1d

View file

@ -1,76 +1,93 @@
<?php <?php
// Init // Init
error_reporting(NULL); error_reporting(NULL);
ob_start(); ob_start();
session_start(); session_start();
$TAB = 'DB'; $TAB = 'DB';
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php"); include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
// Header // Header
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html'); include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
// Panel // Panel
top_panel($user,$TAB); top_panel($user,$TAB);
// Are you admin? // Are you admin?
//if ($_SESSION['user'] == 'admin') { //if ($_SESSION['user'] == 'admin') {
if (!empty($_POST['ok'])) { if (!empty($_POST['ok'])) {
// Check input // Check input
if (empty($_POST['v_database'])) $errors[] = _('database'); if (empty($_POST['v_database'])) $errors[] = _('database');
if (empty($_POST['v_dbuser'])) $errors[] = _('username'); if (empty($_POST['v_dbuser'])) $errors[] = _('username');
if (empty($_POST['v_password'])) $errors[] = _('password'); if (empty($_POST['v_password'])) $errors[] = _('password');
if (empty($_POST['v_type'])) $errors[] = _('type'); if (empty($_POST['v_type'])) $errors[] = _('type');
if (empty($_POST['v_charset'])) $errors[] = _('charset'); if (empty($_POST['v_charset'])) $errors[] = _('charset');
// Protect input // Protect input
$v_database = escapeshellarg($_POST['v_database']); $v_database = escapeshellarg($_POST['v_database']);
$v_dbuser = escapeshellarg($_POST['v_dbuser']); $v_dbuser = escapeshellarg($_POST['v_dbuser']);
$v_password = escapeshellarg($_POST['v_password']); $v_password = escapeshellarg($_POST['v_password']);
$v_type = $_POST['v_type']; $v_type = $_POST['v_type'];
$v_charset = $_POST['v_charset']; $v_charset = $_POST['v_charset'];
// Check for errors if (empty($_POST['v_notify'])) $v_notify = 'off';
if (!empty($errors[0])) {
foreach ($errors as $i => $error) { // Check for errors
if ( $i == 0 ) { if (!empty($errors[0])) {
$error_msg = $error; foreach ($errors as $i => $error) {
} else { if ( $i == 0 ) {
$error_msg = $error_msg.", ".$error; $error_msg = $error;
} } else {
} $error_msg = $error_msg.", ".$error;
$_SESSION['error_msg'] = _('Error: field "%s" can not be blank.',$error_msg); }
} else { }
// Add Database $_SESSION['error_msg'] = _('Error: field "%s" can not be blank.',$error_msg);
$v_type = escapeshellarg($_POST['v_type']); } else {
$v_charset = escapeshellarg($_POST['v_charset']); // Add Database
exec (VESTA_CMD."v-add-database ".$user." ".$v_database." ".$v_dbuser." ".$v_password." ".$v_type." 'default' ".$v_charset, $output, $return_var); $v_type = escapeshellarg($_POST['v_type']);
$v_type = $_POST['v_type']; $v_charset = escapeshellarg($_POST['v_charset']);
$v_charset = $_POST['v_charset']; exec (VESTA_CMD."v-add-database ".$user." ".$v_database." ".$v_dbuser." ".$v_password." ".$v_type." 'default' ".$v_charset, $output, $return_var);
if ($return_var != 0) { $v_type = $_POST['v_type'];
$error = implode('<br>', $output); $v_charset = $_POST['v_charset'];
if (empty($error)) $error = _('Error: vesta did not return any output.'); if ($return_var != 0) {
$_SESSION['error_msg'] = $error; $error = implode('<br>', $output);
unset($v_password); if (empty($error)) $error = _('Error: vesta did not return any output.');
unset($output); $_SESSION['error_msg'] = $error;
} else { unset($v_password);
$_SESSION['ok_msg'] = _('DATABASE_CREATED_OK',$user."_".$_POST['v_database'],$user."_".$_POST['v_database']); unset($output);
unset($v_database); } else {
unset($v_dbuser); if (empty($v_notify)) {
unset($v_password); list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]);
unset($v_type); if ($_POST['v_type'] == 'mysql') $db_admin_link = "http://".$http_host."/phpMyAdmin/";
unset($v_charset); if ($_POST['v_type'] == 'pgsql') $db_admin_link = "http://".$http_host."/phpPgAdmin/";
unset($output);
} $to = $panel[$user]['CONTACT'];
} $subject = _("Database Credentials");
} $hostname = exec('hostname');
exec (VESTA_CMD."v-list-database-types 'json'", $output, $return_var); $from = _('MAIL_FROM',$hostname);
$db_types = json_decode(implode('', $output), true); $mailtext = _('DATABASE_READY',$panel[$user]['FNAME'],$panel[$user]['LNAME'],$_POST['v_type'],$user,$_POST['v_database'],$user,$_POST['v_dbuser'],$_POST['v_password']);
unset($output); $mailtext .= $db_admin_link."\n\n";
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_db.html'); $mailtext .= "--\n"._('Vesta Control Panel')."\n";
unset($_SESSION['error_msg']); send_email($to, $subject, $mailtext, $from);
unset($_SESSION['ok_msg']); }
//} $_SESSION['ok_msg'] = _('DATABASE_CREATED_OK',$user."_".$_POST['v_database'],$user."_".$_POST['v_database']);
unset($v_database);
// Footer unset($v_dbuser);
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html'); unset($v_password);
unset($v_type);
unset($v_charset);
unset($output);
}
}
}
exec (VESTA_CMD."v-list-database-types 'json'", $output, $return_var);
$db_types = json_decode(implode('', $output), true);
unset($output);
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/add_db.html');
unset($_SESSION['error_msg']);
unset($_SESSION['ok_msg']);
//}
// Footer
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');

File diff suppressed because it is too large Load diff

View file

@ -147,5 +147,8 @@ $LANG = array(
'Reset Code'=>'Код сброса', 'Reset Code'=>'Код сброса',
'disk'=>'Место', 'disk'=>'Место',
'traffic'=>'Трафик', 'traffic'=>'Трафик',
'Database Credentials'=>'Данные для доступа к БД',
'DATABASE_READY'=>"Здравствуйте %s %s,\nВаша %s база данных создана успешно.\n\nИмя БД: %s_%s\nПользователь: %s_%s\nПароль: %s\n\n",
'Send credentials to'=>'Отправить данные для доступа к '
); );

View file

@ -1,176 +1,184 @@
<?php
<?php $back = $_SESSION['back'];
$back = $_SESSION['back']; if (empty($back)) {
if (empty($back)) { $back = "location.href='/list/db/'";
$back = "location.href='/list/db/'"; } else {
} else { $back = "location.href='".$back."'";
$back = "location.href='".$back."'"; }
} ?>
?>
<table class="sub-menu" style="background: white;">
<table class="sub-menu" style="background: white;"> <tr>
<tr> <td style="padding: 10px 2px 10px 0;" ><a class="name"><b><?php print _('Adding database');?></b></a>
<td style="padding: 10px 2px 10px 0;" ><a class="name"><b><?php print _('Adding database');?></b></a> <?php
<?php if (!empty($_SESSION['error_msg'])) {
if (!empty($_SESSION['error_msg'])) { echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>";
echo "<span class=\"vst-error\"> → ".$_SESSION['error_msg']."</span>"; } else {
} else { if (!empty($_SESSION['ok_msg'])) {
if (!empty($_SESSION['ok_msg'])) { echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>";
echo "<span class=\"vst-ok\"> → ".$_SESSION['ok_msg']."</span>"; }
} }
} ?>
?> </td>
</td> </tr>
</tr> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>
<form id="vstobjects" name="v_add_db" method="post">
<form id="vstobjects" name="v_add_db" method="post"> <script type="text/javascript">
<script type="text/javascript"> function elementHideShow(elementToHideOrShow) {
function elementHideShow(elementToHideOrShow) { var el = document.getElementById(elementToHideOrShow);
var el = document.getElementById(elementToHideOrShow); if (el.style.display == "block") {
if (el.style.display == "block") { el.style.display = "none";
el.style.display = "none"; } else {
} else { el.style.display = "block";
el.style.display = "block"; }
} }
} function randomString() {
function randomString() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 10;
var string_length = 10; var randomstring = '';
var randomstring = ''; for (var i=0; i<string_length; i++) {
for (var i=0; i<string_length; i++) { var rnum = Math.floor(Math.random() * chars.length);
var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1);
randomstring += chars.substring(rnum,rnum+1); }
} document.v_add_db.v_password.value = randomstring;
document.v_add_db.v_password.value = randomstring; }
} </script>
</script>
<table class='data'>
<table class='data'> <tr class="data-add">
<tr class="data-add"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> <table class="data-col1">
<table class="data-col1"> <tr><td style="padding: 18 0 4 18;"></td></tr>
<tr><td style="padding: 18 0 4 18;"></td></tr> </table>
</table> </td>
</td> <td class="data-dotted" width="830px" style="vertical-align:top;">
<td class="data-dotted" width="830px" style="vertical-align:top;"> <table width="830px">
<table width="830px"> <tr>
<tr> <td></td>
<td></td> </tr>
</tr> </table>
</table> <table class="data-col2" width="600px">
<table class="data-col2" width="600px"> <tr>
<tr> <td style="padding: 10 0 0 2px; color:99a7af;" >
<td style="padding: 10 0 0 2px; color:99a7af;" > <?php print _('DB_PREFIX_WILL_BE_ADDED',$user."_");?>
<?php print _('DB_PREFIX_WILL_BE_ADDED',$user."_");?> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="vst-text" style="padding: 10 0 0 2px;">
<td class="vst-text" style="padding: 10 0 0 2px;"> <?php print _('Database');?>
<?php print _('Database');?> </td>
</td> </tr>
</tr> <tr>
<tr> <td>
<td> <input type="text" size="20" class="vst-input" name="v_database" <?php 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; ?>> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="vst-text" style="padding: 10px 0 0 2px;">
<td class="vst-text" style="padding: 10px 0 0 2px;"> <?php print _('Username');?>
<?php print _('Username');?> </td>
</td> </tr>
</tr> <tr>
<tr> <td>
<td> <input type="text" size="20" class="vst-input" name="v_dbuser" <?php 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; ?>> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="vst-text" style="padding: 10px 0 0 2px;">
<td class="vst-text" style="padding: 10px 0 0 2px;"> <?php print _('Password');?> <a href="javascript:randomString();" class="genpass"><?php print _('generate');?></a>
<?php print _('Password');?> <a href="javascript:randomString();" class="genpass"><?php print _('generate');?></a> </td>
</td> </tr>
</tr> <tr>
<tr> <td>
<td> <input type="text" size="20" class="vst-input" name="v_password">
<input type="text" size="20" class="vst-input" name="v_password"> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="vst-text" style="padding: 10 0 0 2px;">
<td class="vst-text" style="padding: 10 0 0 2px;"> <?php print _('Type');?>
<?php print _('Type');?> </td>
</td> </tr>
</tr> <tr>
<tr> <td>
<td> <select class="vst-list" name="v_type">
<select class="vst-list" name="v_type"> <?php
<?php foreach ($db_types as $key => $value) {
foreach ($db_types as $key => $value) { echo "\t\t\t\t<option value=\"".$value."\"";
echo "\t\t\t\t<option value=\"".$value."\""; if ((!empty($v_type)) && ( $value == $v_type )) echo ' selected';
if ((!empty($v_type)) && ( $value == $v_type )) echo ' selected'; echo ">".$value."</option>\n";
echo ">".$value."</option>\n"; }
} ?>
?> </select>
</select> </td>
</td> </tr>
</tr> <tr>
<tr> <td class="vst-text" style="padding: 10 0 0 2px;">
<td class="vst-text" style="padding: 10 0 0 2px;"> <?php print _('Charset');?>
<?php print _('Кодировка');?> </td>
</td> </tr>
</tr> <tr>
<tr> <td>
<td> <select class="vst-list" name="v_charset">
<select class="vst-list" name="v_charset"> <option value=big5 <?php if ((!empty($v_charset)) && ( $v_charset == 'big5')) echo 'selected';?> >big5</option>
<option value=big5 <?php if ((!empty($v_charset)) && ( $v_charset == 'big5')) echo 'selected';?> >big5</option> <option value=dec8 <?php if ((!empty($v_charset)) && ( $v_charset == 'dec8')) echo 'selected';?> >dec8</option>
<option value=dec8 <?php if ((!empty($v_charset)) && ( $v_charset == 'dec8')) echo 'selected';?> >dec8</option> <option value=cp850 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp850')) echo 'selected';?> >cp850</option>
<option value=cp850 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp850')) echo 'selected';?> >cp850</option> <option value=hp8 <?php if ((!empty($v_charset)) && ( $v_charset == 'hp8')) echo 'selected';?> >hp8</option>
<option value=hp8 <?php if ((!empty($v_charset)) && ( $v_charset == 'hp8')) echo 'selected';?> >hp8</option> <option value=koi8r <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8r')) echo 'selected';?> >koi8r</option>
<option value=koi8r <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8r')) echo 'selected';?> >koi8r</option> <option value=latin1 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin1')) echo 'selected';?> >latin1</option>
<option value=latin1 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin1')) echo 'selected';?> >latin1</option> <option value=latin2 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin2')) echo 'selected';?> >latin2</option>
<option value=latin2 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin2')) echo 'selected';?> >latin2</option> <option value=swe7 <?php if ((!empty($v_charset)) && ( $v_charset == 'swe7')) echo 'selected';?> >swe7</option>
<option value=swe7 <?php if ((!empty($v_charset)) && ( $v_charset == 'swe7')) echo 'selected';?> >swe7</option> <option value=ascii <?php if ((!empty($v_charset)) && ( $v_charset == 'ascii')) echo 'selected';?> >ascii</option>
<option value=ascii <?php if ((!empty($v_charset)) && ( $v_charset == 'ascii')) echo 'selected';?> >ascii</option> <option value=ujis <?php if ((!empty($v_charset)) && ( $v_charset == 'ujis')) echo 'selected';?> >ujis</option>
<option value=ujis <?php if ((!empty($v_charset)) && ( $v_charset == 'ujis')) echo 'selected';?> >ujis</option> <option value=sjis <?php if ((!empty($v_charset)) && ( $v_charset == 'sjis')) echo 'selected';?> >sjis</option>
<option value=sjis <?php if ((!empty($v_charset)) && ( $v_charset == 'sjis')) echo 'selected';?> >sjis</option> <option value=hebrew <?php if ((!empty($v_charset)) && ( $v_charset == 'hebrew')) echo 'selected';?> >hebrew</option>
<option value=hebrew <?php if ((!empty($v_charset)) && ( $v_charset == 'hebrew')) echo 'selected';?> >hebrew</option> <option value=tis620 <?php if ((!empty($v_charset)) && ( $v_charset == 'tis620')) echo 'selected';?> >tis620</option>
<option value=tis620 <?php if ((!empty($v_charset)) && ( $v_charset == 'tis620')) echo 'selected';?> >tis620</option> <option value=euckr <?php if ((!empty($v_charset)) && ( $v_charset == 'euckr')) echo 'selected';?> >euckr</option>
<option value=euckr <?php if ((!empty($v_charset)) && ( $v_charset == 'euckr')) echo 'selected';?> >euckr</option> <option value=koi8u <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8u')) echo 'selected';?> >koi8u</option>
<option value=koi8u <?php if ((!empty($v_charset)) && ( $v_charset == 'koi8u')) echo 'selected';?> >koi8u</option> <option value=gb2312 <?php if ((!empty($v_charset)) && ( $v_charset == 'gb2312')) echo 'selected';?> >gb2312</option>
<option value=gb2312 <?php if ((!empty($v_charset)) && ( $v_charset == 'gb2312')) echo 'selected';?> >gb2312</option> <option value=greek <?php if ((!empty($v_charset)) && ( $v_charset == 'greek')) echo 'selected';?> >greek</option>
<option value=greek <?php if ((!empty($v_charset)) && ( $v_charset == 'greek')) echo 'selected';?> >greek</option> <option value=cp1250 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1250')) echo 'selected';?> >cp1250</option>
<option value=cp1250 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1250')) echo 'selected';?> >cp1250</option> <option value=gbk <?php if ((!empty($v_charset)) && ( $v_charset == 'gbk')) echo 'selected';?> >gbk</option>
<option value=gbk <?php if ((!empty($v_charset)) && ( $v_charset == 'gbk')) echo 'selected';?> >gbk</option> <option value=latin5 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin5')) echo 'selected';?> >latin5</option>
<option value=latin5 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin5')) echo 'selected';?> >latin5</option> <option value=armscii8 <?php if ((!empty($v_charset)) && ( $v_charset == 'armscii8')) echo 'selected';?> >armscii8</option>
<option value=armscii8 <?php if ((!empty($v_charset)) && ( $v_charset == 'armscii8')) echo 'selected';?> >armscii8</option> <option value=utf8 <?php if ((!empty($v_charset)) && ( $v_charset == 'utf8')) echo 'selected';?> <?php if (empty($v_charset)) echo 'selected';?> >utf8</option>
<option value=utf8 <?php if ((!empty($v_charset)) && ( $v_charset == 'utf8')) echo 'selected';?> <?php if (empty($v_charset)) echo 'selected';?> >utf8</option> <option value=ucs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'ucs2')) echo 'selected';?> >ucs2</option>
<option value=ucs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'ucs2')) echo 'selected';?> >ucs2</option> <option value=cp866 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp866')) echo 'selected';?> >cp866</option>
<option value=cp866 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp866')) echo 'selected';?> >cp866</option> <option value=keybcs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'keybcs2')) echo 'selected';?> >keybcs2</option>
<option value=keybcs2 <?php if ((!empty($v_charset)) && ( $v_charset == 'keybcs2')) echo 'selected';?> >keybcs2</option> <option value=macce <?php if ((!empty($v_charset)) && ( $v_charset == 'macce')) echo 'selected';?> >macce</option>
<option value=macce <?php if ((!empty($v_charset)) && ( $v_charset == 'macce')) echo 'selected';?> >macce</option> <option value=macroman <?php if ((!empty($v_charset)) && ( $v_charset == 'macroman')) echo 'selected';?> >macroman</option>
<option value=macroman <?php if ((!empty($v_charset)) && ( $v_charset == 'macroman')) echo 'selected';?> >macroman</option> <option value=cp852 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp852')) echo 'selected';?> >cp852</option>
<option value=cp852 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp852')) echo 'selected';?> >cp852</option> <option value=latin7 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin7')) echo 'selected';?> >latin7</option>
<option value=latin7 <?php if ((!empty($v_charset)) && ( $v_charset == 'latin7')) echo 'selected';?> >latin7</option> <option value=cp1251 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1251')) echo 'selected';?> >cp1251</option>
<option value=cp1251 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1251')) echo 'selected';?> >cp1251</option> <option value=cp1256 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1256')) echo 'selected';?> >cp1256</option>
<option value=cp1256 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1256')) echo 'selected';?> >cp1256</option> <option value=cp1257 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1257')) echo 'selected';?> >cp1257</option>
<option value=cp1257 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp1257')) echo 'selected';?> >cp1257</option> <option value=binary <?php if ((!empty($v_charset)) && ( $v_charset == 'binary')) echo 'selected';?> >binary</option>
<option value=binary <?php if ((!empty($v_charset)) && ( $v_charset == 'binary')) echo 'selected';?> >binary</option> <option value=geostd8 <?php if ((!empty($v_charset)) && ( $v_charset == 'geostd8')) echo 'selected';?> >geostd8</option>
<option value=geostd8 <?php if ((!empty($v_charset)) && ( $v_charset == 'geostd8')) echo 'selected';?> >geostd8</option> <option value=cp932 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp932')) echo 'selected';?> >cp932</option>
<option value=cp932 <?php if ((!empty($v_charset)) && ( $v_charset == 'cp932')) echo 'selected';?> >cp932</option> <option value=eucjpms <?php if ((!empty($v_charset)) && ( $v_charset == 'eucjpms')) echo 'selected';?> >eucjpms</option>
<option value=eucjpms <?php if ((!empty($v_charset)) && ( $v_charset == 'eucjpms')) echo 'selected';?> >eucjpms</option> </select>
</select> </td>
</td> <tr>
</tr> <td class="vst-text" style="padding: 10px 0 0 2px;">
<tr> <?php print _('Send credentials to'); echo $panel[$user]['CONTACT'] ?>
<td style="padding: 24px 0 0 0;"> </td>
<input type="submit" name="ok" value="<?php print _('Add');?>" class="button"> </tr>
<input type="button" class="button" value="<?php print _('Back');?>" onclick="<?php echo $back ?>"> <tr>
</td> <td>
</tr> <input type="checkbox" size="20" class="vst-checkbox" name="v_notify" <?php if (empty($v_notify)) echo "checked=yes"; ?>>
</table> </td>
</td> </tr>
</tr> <tr>
</table> <td style="padding: 24px 0 0 0;">
</form> <input type="submit" name="ok" value="<?php print _('Add');?>" class="button">
<input type="button" class="button" value="<?php print _('Back');?>" onclick="<?php echo $back ?>">
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

View file

@ -1,147 +1,146 @@
<table class="sub-menu" style="background: white;"> <table class="sub-menu" style="background: white;">
<tr> <tr>
<td style="padding: 12px 0 8px 6px"> <td style="padding: 12px 0 8px 6px">
<div style="float:left"> <div style="float:left">
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/'"> Add DNS Domain </button> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/'"> Add DNS Domain </button>
</div> </div>
<div style="text-align: right; float: right;"> <div style="text-align: right; float: right;">
<form action="/search/" method="get"> <form action="/search/" method="get">
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
</form> </form>
</div> </div>
<div style="float:left; padding-left: 26px;"> <div style="float:left; padding-left: 26px;">
<form action="/bulk/dns/" method="post" id="objects"> <form action="/bulk/dns/" method="post" id="objects">
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<select style="margin:0 2px 0 0px;" name="action"> <select style="margin:0 2px 0 0px;" name="action">
<option>apply to selected</option> <option>apply to selected</option>
<option>suspend</option> <option>suspend</option>
<option>unsuspend</option> <option>unsuspend</option>
<option>delete</option> <option>delete</option>
</select> </select>
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<div id="vstobjects"> <div id="vstobjects">
<table class="data"> <table class="data">
<?php <?php
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
++$i; ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') { if ($data[$key]['SUSPENDED'] == 'yes') {
$status = 'suspended'; $status = 'suspended';
$spnd_action = 'unsuspend' ; $spnd_action = 'unsuspend' ;
} else { } else {
$status = 'active'; $status = 'active';
$spnd_action = 'suspend' ; $spnd_action = 'suspend' ;
} }
?> ?>
<tr class="data-row"> <tr class="data-row">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<table class="data-col1"> <table class="data-col1">
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
</table> </table>
</td> </td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"> <table width="830px">
<tr> <tr>
<td></td> <td></td>
<td class="data-controls" width="96px"><a href="/list/dns/?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list records</a></td> <td class="data-controls" width="108px"><a href="/list/dns/?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list <?php echo $data[$key]['RECORDS'] ?> records</a></td>
<td class="data-controls" width="92px"><a href="/add/dns/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add record</a></td> <td class="data-controls" width="92px"><a href="/add/dns/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add record</a></td>
<td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_<?php echo $spnd_action ?>" width="80px"> <td class="data-controls do_<?php echo $spnd_action ?>" width="80px">
<img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>"> <img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>">
<a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a> <a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a>
<input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/dns/?domain=<?php echo $key ?>" /> <input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/dns/?domain=<?php echo $key ?>" />
<div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation"> <div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_delete" width="70px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $key ?>" /> <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $key ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2" width="830px"> <table class="data-col2" width="830px">
<tr> <tr>
<td colspan=3 class="domain" style="padding: 0 0 0 4px;"> <td colspan=3 class="domain" style="padding: 0 0 0 4px;">
<b><?php echo $key ?></b> <b><?php echo $key ?></b>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align:top;" > <td style="vertical-align:top;" >
<table> <table>
<tr> <tr>
<td class="counter-name" style="padding: 2px 0 0 2px;"> <td class="counter-name" style="padding: 2px 0 0 2px;">
<?php echo $data[$key]['IP'] ?> <?php echo $data[$key]['IP'] ?>
</td> </td>
<tr> <tr>
<td class="counter-name" style="padding: 0 0 20px 2px"> <td class="counter-name" style="padding: 0 0 20px 2px">
[<?php echo $data[$key]['TPL'] ?>] template [<?php echo $data[$key]['TPL'] ?>] template
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td style="vertical-align:top;" width="250"> <td style="vertical-align:top;" width="250">
<table> <table>
<tr> <tr>
<td class="counter-name">SOA:</td> <td class="counter-name">SOA:</td>
<td class="counter-value"><?php echo $data[$key]['SOA'] ?></td> <td class="counter-value"><?php echo $data[$key]['SOA'] ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">TTL:</td> <td class="counter-name">TTL:</td>
<td class="counter-value"><?php echo $data[$key]['TTL'] ?></td> <td class="counter-value"><?php echo $data[$key]['TTL'] ?></td>
</tr> </tr>
</table> </table>
</td> </td>
<td rowspan=4 style="vertical-align:top;" width="300"> <td rowspan=4 style="vertical-align:top;" width="300">
<table> <table>
<tr> <tr>
<td class="counter-name">Expire:</td> <td class="counter-name">Expire:</td>
<td class="counter-value"><?php echo date("Y M d", strtotime($data[$key]['EXP'])) ?></td> <td class="counter-value"><?php echo date("Y M d", strtotime($data[$key]['EXP'])) ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">Records:</td> <td class="counter-name">Records:</td>
<td class="counter-value"><?php echo $data[$key]['RECORDS'] ?></td> <td class="counter-value"><?php echo $data[$key]['RECORDS'] ?></td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</table> </table>
</form> </form>
<table class="data-count"> <table class="data-count">
<tr> <tr>
<td width="160px"></td> <td width="160px"></td>
<td> <td>
<?php <?php
if ( $i == 1) { if ( $i == 1) {
echo "1 user dns domain "; echo "1 user dns domain ";
} else { } else {
echo "$i dns domains "; echo "$i dns domains ";
} }
?> ?>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>

View file

@ -1,107 +1,115 @@
<table class="sub-menu" style="background: white;">
<table class="sub-menu" style="background: white;"> <tr>
<tr> <td style="padding: 12px 0 8px 6px">
<td style="padding: 12px 0 8px 6px"> <div style="float:left">
<div style="float:left"> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/?domain=<?php echo $_GET['domain'] ?>'"> Add DNS Record </button>
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/?domain=<?php echo $_GET['domain'] ?>'"> Add DNS Record </button> </div>
</div> <div style="text-align: right; float: right;">
<div style="text-align: right; float: right;"> <form action="/search/" method="get">
<form action="/search/" method="get"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> </form>
</form> </div>
</div> <div style="float:left; padding-left: 26px;">
<div style="float:left; padding-left: 26px;"> <form action="/bulk/dns/" method="post" id="objects">
<form action="/bulk/dns/" method="post" id="objects"> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <select style="margin:0 2px 0 0px;" name="action">
<select style="margin:0 2px 0 0px;" name="action"> <option>apply to selected</option>
<option>apply to selected</option> <option>suspend</option>
<option>suspend</option> <option>unsuspend</option>
<option>unsuspend</option> <option>delete</option>
<option>delete</option> </select>
</select> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> </div>
</div> </td>
</td> </tr>
</tr> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>
<div id="vstobjects">
<div id="vstobjects"> <div style="height:10px; font-size:0;"></div>
<table class="data"> <table class="data" style="background: #ebe9dc;">
<?php <tr>
foreach ($data as $key => $value) { <td style="padding: 8px 2px 8px 0;">
++$i; <a class="name" style="color: #555; font-size: 10pt;"><b>Listing <?php echo $_GET['domain'] ?></b></a>
if ($data[$key]['SUSPENDED'] == 'yes') { </td>
$status = 'suspended'; </tr>
$spnd_action = 'unsuspend' ; </table>
} else { <div style="height:10px; font-size:0;"></div>
$status = 'active'; <table class="data">
$spnd_action = 'suspend' ; <?php
} foreach ($data as $key => $value) {
?> ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') {
<tr class="data-row"> $status = 'suspended';
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> $spnd_action = 'unsuspend' ;
<table class="data-col1"> } else {
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="record[]" value="<?php echo $data[$key]['ID']?>" > <input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr> $status = 'active';
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> $spnd_action = 'suspend' ;
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> }
</table> ?>
</td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <tr class="data-row">
<table width="830px"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<tr> <table class="data-col1">
<td></td> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="record[]" value="<?php echo $data[$key]['ID']?>" > <input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr>
<td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<td class="data-controls do_<?php echo $spnd_action ?>" width="80px"> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
<img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>"> </table>
<a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a> </td>
<input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" /> <td class="data-dotted" width="830px" style="vertical-align:top;">
<div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation"> <table width="830px">
<p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p> <tr>
</div> <td></td>
</td> <td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_<?php echo $spnd_action ?>" width="80px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a>
<input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" /> <input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p> <p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p>
</div> </div>
</td> </td>
</tr> <td class="data-controls do_delete" width="70px">
</table> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<table class="data-col5" width="780px"> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<tr> <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" />
<td class="log" style="padding: 0 0 0 4px;" width="200"><b><?php echo $data[$key]['RECORD'] ?></b></td> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<td class="log-counter-value" width="80"><?php echo $data[$key]['TYPE'] ?></td> <p class="counter-value">Are you sure you want to delete <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p>
<td class="log-counter-value" width="80"><?php echo $data[$key]['PRIORITY'] ?></td> </div>
<td class="log-counter-value" ><?php echo $data[$key]['VALUE'] ?></td> </td>
</tr> </tr>
</table> </table>
</td> <table class="data-col5" width="780px">
</tr> <tr>
<?php <td class="log" style="padding: 0 0 0 4px;" width="200"><b><?php echo $data[$key]['RECORD'] ?></b></td>
} <td class="log-counter-value" width="80"><?php echo $data[$key]['TYPE'] ?></td>
?> <td class="log-counter-value" width="80"><?php echo $data[$key]['PRIORITY'] ?></td>
</table> <td class="log-counter-value" ><?php echo $data[$key]['VALUE'] ?></td>
</form> </tr>
</table>
<table class="data-count"> </td>
<tr> </tr>
<td width="160px"> <?php
<td> }
<?php ?>
if ( $i == 1) { </table>
echo "1 dns record "; </form>
} else {
echo "$i dns records "; <table class="data-count">
} <tr>
?> <td width="160px">
</td> <td>
</tr> <?php
</table> if ( $i == 1) {
</div> echo "1 dns record ";
} else {
echo "$i dns records ";
}
?>
</td>
</tr>
</table>
</div>

View file

@ -1,173 +1,173 @@
<table class="sub-menu" style="background: white;"> <table class="sub-menu" style="background: white;">
<tr> <tr>
<td style="padding: 12px 0 8px 6px"> <td style="padding: 12px 0 8px 6px">
<div style="float:left"> <div style="float:left">
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/'"> Add Mail Domain </button> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/'"> Add Mail Domain </button>
</div> </div>
<div style="text-align: right; float: right;"> <div style="text-align: right; float: right;">
<form action="/search/" method="get" > <form action="/search/" method="get" >
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
</form> </form>
</div> </div>
<div style="float:left; padding-left: 26px;"> <div style="float:left; padding-left: 26px;">
<form action="/bulk/mail/" method="post" id="objects"> <form action="/bulk/mail/" method="post" id="objects">
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<select style="margin:0 2px 0 0px;" name="action"> <select style="margin:0 2px 0 0px;" name="action">
<option>apply to selected</option> <option>apply to selected</option>
<option>suspend</option> <option>suspend</option>
<option>unsuspend</option> <option>unsuspend</option>
<option>delete</option> <option>delete</option>
</select> </select>
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<div id="vstobjects"> <div id="vstobjects">
<table class="data"> <table class="data">
<?php <?php
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]); list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]);
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
++$i; ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') { if ($data[$key]['SUSPENDED'] == 'yes') {
$status = 'suspended'; $status = 'suspended';
$spnd_action = 'unsuspend' ; $spnd_action = 'unsuspend' ;
} else { } else {
$status = 'active'; $status = 'active';
$spnd_action = 'suspend' ; $spnd_action = 'suspend' ;
} }
if (empty($data[$key]['CATCHALL'])) { if (empty($data[$key]['CATCHALL'])) {
$data[$key]['CATCHALL'] = '/dev/null'; $data[$key]['CATCHALL'] = '/dev/null';
} }
?> ?>
<tr class="data-row"> <tr class="data-row">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<table class="data-col1"> <table class="data-col1">
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
</table> </table>
</td> </td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"> <table width="830px">
<tr> <tr>
<td></td> <td></td>
<td class="data-controls" width="100px"><a href="?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list accounts</a></td> <td class="data-controls" width="112px"><a href="?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list <?php echo $data[$key]['ACCOUNTS'] ?> accounts</a></td>
<td class="data-controls" width="98px"><a href="/add/mail/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add account</a></td> <td class="data-controls" width="98px"><a href="/add/mail/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add account</a></td>
<td class="data-controls" width="104px"><a href="<?php echo "http://".$http_host."/webmail/"; ?>" target="_blank"><img src="/images/new_window.png" width="8px" height="8px"> open webmail</a></td> <td class="data-controls" width="104px"><a href="<?php echo "http://".$http_host."/webmail/"; ?>" target="_blank"><img src="/images/new_window.png" width="8px" height="8px"> open webmail</a></td>
<td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_<?php echo $spnd_action ?>" width="80px"> <td class="data-controls do_<?php echo $spnd_action ?>" width="80px">
<img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>"> <img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>">
<a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a> <a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a>
<input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/mail/?domain=<?php echo $key ?>" /> <input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/mail/?domain=<?php echo $key ?>" />
<div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation"> <div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_delete" width="70px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $key ?>" /> <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $key ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2" width="830px"> <table class="data-col2" width="830px">
<tr> <tr>
<td colspan=3 class="domain" style="padding: 0 0 0 4px;"> <td colspan=3 class="domain" style="padding: 0 0 0 4px;">
<b><?php echo $key ?></b> <b><?php echo $key ?></b>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align:top;" > <td style="vertical-align:top;" >
<table> <table>
<tr> <tr>
<td class="counter-name" style="padding: 2px 0 2px 0"> <td class="counter-name" style="padding: 2px 0 2px 0">
catchall > <?php echo $data[$key]['CATCHALL'] ?> catchall > <?php echo $data[$key]['CATCHALL'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="chart1"> <td class="chart1">
Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?> Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?>
<div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;"> <div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;">
<div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$panel[$user]['DISK_QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div> <div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$panel[$user]['DISK_QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td style="vertical-align:top;" width="250"> <td style="vertical-align:top;" width="250">
<table> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Antivirus: Antivirus:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ANTIVIRUS'] ?> <?php echo $data[$key]['ANTIVIRUS'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Antispam: Antispam:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ANTISPAM'] ?> <?php echo $data[$key]['ANTISPAM'] ?>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td rowspan=4 style="vertical-align:top;" width="300"> <td rowspan=4 style="vertical-align:top;" width="300">
<table> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
DKIM: DKIM:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['DKIM'] ?> <?php echo $data[$key]['DKIM'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Accounts: Accounts:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ACCOUNTS'] ?> <?php echo $data[$key]['ACCOUNTS'] ?>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</table> </table>
</form> </form>
<table class="data-count"> <table class="data-count">
<tr> <tr>
<td width="160px"></td> <td width="160px"></td>
<td> <td>
<?php <?php
if ( $i == 1) { if ( $i == 1) {
echo "1 mail domain "; echo "1 mail domain ";
} else { } else {
echo "$i mail domains "; echo "$i mail domains ";
} }
?> ?>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>

View file

@ -1,155 +1,162 @@
<table class="sub-menu" style="background: white;">
<table class="sub-menu" style="background: white;"> <tr>
<tr> <td style="padding: 12px 0 8px 6px">
<td style="padding: 12px 0 8px 6px"> <div style="float:left">
<div style="float:left"> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/?domain=<?php echo $_GET['domain'] ?>'"> Add Mail Account </button>
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/?domain=<?php echo $_GET['domain'] ?>'"> Add Mail Account </button> </div>
</div> <div style="text-align: right; float: right;">
<div style="text-align: right; float: right;"> <form action="/search/" method="get">
<form action="/search/" method="get"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> </form>
</form> </div>
</div> <div style="float:left; padding-left: 26px;">
<div style="float:left; padding-left: 26px;"> <form action="/bulk/mail/" method="post" id="objects">
<form action="/bulk/mail/" method="post" id="objects"> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <select style="margin:0 2px 0 0px;" name="action">
<select style="margin:0 2px 0 0px;" name="action"> <option>apply to selected</option>
<option>apply to selected</option> <option>suspend</option>
<option>suspend</option> <option>unsuspend</option>
<option>unsuspend</option> <option>delete</option>
<option>delete</option> </select>
</select> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> </div>
</div> </td>
</td> </tr>
</tr> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>
<div id="vstobjects">
<div id="vstobjects"> <div style="height:10px; font-size:0;"></div>
<table class="data"> <table class="data" style="background: #ebe9dc;">
<?php <tr>
foreach ($data as $key => $value) { <td style="padding: 8px 2px 8px 0;">
++$i; <a class="name" style="color: #555; font-size: 10pt;"><b>Listing <?php echo $_GET['domain'] ?></b></a>
if ($data[$key]['SUSPENDED'] == 'yes') { </td>
$status = 'suspended'; </tr>
$spnd_action = 'unsuspend' ; </table>
} else { <div style="height:10px; font-size:0;"></div>
$status = 'active'; <table class="data">
$spnd_action = 'suspend'; <?php
} foreach ($data as $key => $value) {
?> ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') {
<tr class="data-row"> $status = 'suspended';
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> $spnd_action = 'unsuspend' ;
<table class="data-col1"> } else {
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="account[]" value="<?php echo $key?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr> $status = 'active';
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> $spnd_action = 'suspend';
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> }
</table> ?>
</td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <tr class="data-row">
<table width="830px"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<tr> <table class="data-col1">
<td></td> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="account[]" value="<?php echo $key?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr>
<td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<td class="data-controls do_<?php echo $spnd_action ?>" width="80px"> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
<img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>"> </table>
<a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a> </td>
<input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" /> <td class="data-dotted" width="830px" style="vertical-align:top;">
<div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation"> <table width="830px">
<p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo $key ?></b> account?</p> <tr>
</div> <td></td>
</td> <td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_<?php echo $spnd_action ?>" width="80px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/suspend.png" width="7px" height="8px" class="do_<?php echo $spnd_action ?>">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="<?php echo $spnd_action ?>_link_<?php echo $i ?>" class="do_<?php echo $spnd_action ?>"> <?php echo $spnd_action ?></a>
<input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" /> <input type="hidden" name="<?php echo $spnd_action ?>_url" value="/<?php echo $spnd_action ?>/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="<?php echo $spnd_action ?>_dialog_<?php echo $i ?>" class="confirmation-text-suspention hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <b><?php echo $key ?></b> account?</p> <p class="counter-value">Are you sure you want to <?php echo $spnd_action ?> <b><?php echo $key ?></b> account?</p>
</div> </div>
</td> </td>
</tr> <td class="data-controls do_delete" width="70px">
</table> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<table class="data-col2" width="830px"> <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" />
<tr><td colspan=3 class="domain" style="padding: 0 0 0 4px;"><b><?php echo $key."@".$_GET['domain'] ?></b> <a class="aliases" style="padding: 0 20px 0 4px"><?php echo str_replace(',', ', ', $data[$key]['ALIAS']) ?></a></td></tr> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<tr> <p class="counter-value">Are you sure you want to delete <b><?php echo $key ?></b> account?</p>
<td style="vertical-align:top;" > </div>
<table> </td>
<tr> </tr>
<td class="counter-name" style="padding: 4px 0 0 0;"> </table>
<?php echo $data[$key]['IP'] ?>
</td> <table class="data-col2" width="830px">
<tr> <tr><td colspan=3 class="domain" style="padding: 0 0 0 4px;"><b><?php echo $key."@".$_GET['domain'] ?></b> <a class="aliases" style="padding: 0 20px 0 4px"><?php echo str_replace(',', ', ', $data[$key]['ALIAS']) ?></a></td></tr>
<td class="chart1" style="padding: 0 0 2px 0"> <tr>
Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?> <td style="vertical-align:top;" >
<div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;"> <table>
<div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$data[$key]['QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div> <tr>
</div> <td class="counter-name" style="padding: 4px 0 0 0;">
</td> <?php echo $data[$key]['IP'] ?>
</tr> </td>
</table> <tr>
</td> <td class="chart1" style="padding: 0 0 2px 0">
<td style="vertical-align:top;" width="200"> Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?>
<table> <div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;">
<tr> <div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$data[$key]['QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div>
<td class="counter-name"> </div>
Quota: </td>
</td> </tr>
<td class="counter-value"> </table>
<?php echo $data[$key]['QUOTA'] ?> </td>
</td> <td style="vertical-align:top;" width="200">
</tr> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Autoreply: Quota:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['AUTOREPLY'] ?> <?php echo $data[$key]['QUOTA'] ?>
</td> </td>
</tr> </tr>
</table> <tr>
</td> <td class="counter-name">
<td rowspan=4 style="vertical-align:top;" width="350"> Autoreply:
<table width="350"> </td>
<tr> <td class="counter-value">
<td class="counter-name"> <?php echo $data[$key]['AUTOREPLY'] ?>
Forward: </td>
</td> </tr>
<td class="counter-value" style="padding: 0 0 0 8px;" > </table>
<?php echo str_replace(',', ', ', $data[$key]['FWD']) ?> </td>
</td> <td rowspan=4 style="vertical-align:top;" width="350">
</tr> <table width="350">
</table> <tr>
</td> <td class="counter-name">
</tr> Forward:
</table> </td>
</td> <td class="counter-value" style="padding: 0 0 0 8px;" >
</tr> <?php echo str_replace(',', ', ', $data[$key]['FWD']) ?>
</td>
<?php </tr>
} </table>
?> </td>
</table> </tr>
</form> </table>
</td>
<table class="data-count"> </tr>
<tr>
<td width="160px"></td> <?php
<td> }
<?php ?>
if ( $i == 1) { </table>
echo "1 mail account "; </form>
} else {
echo "$i mail accounts "; <table class="data-count">
} <tr>
?> <td width="160px"></td>
</td> <td>
</tr> <?php
</table> if ( $i == 1) {
</div> echo "1 mail account ";
} else {
echo "$i mail accounts ";
}
?>
</td>
</tr>
</table>
</div>

File diff suppressed because it is too large Load diff

View file

@ -1,137 +1,136 @@
<table class="sub-menu" style="background: white;"> <table class="sub-menu" style="background: white;">
<tr> <tr>
<td style="padding: 12px 0 8px 6px"> <td style="padding: 12px 0 8px 6px">
<div style="float:left"> <div style="float:left">
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/'"> Add DNS Domain </button> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/'"> Add DNS Domain </button>
</div> </div>
<div style="text-align: right; float: right;"> <div style="text-align: right; float: right;">
<form action="/search/" method="get" > <form action="/search/" method="get" >
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
</form> </form>
</div> </div>
<div style="float:left; padding-left: 26px;"> <div style="float:left; padding-left: 26px;">
<form action="/bulk/dns/" method="post" id="objects"> <form action="/bulk/dns/" method="post" id="objects">
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<select style="margin:0 2px 0 0px;" name="action"> <select style="margin:0 2px 0 0px;" name="action">
<option>apply to selected</option> <option>apply to selected</option>
<option>delete</option> <option>delete</option>
</select> </select>
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<div id="vstobjects"> <div id="vstobjects">
<table class="data"> <table class="data">
<?php <?php
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
++$i; ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') { if ($data[$key]['SUSPENDED'] == 'yes') {
$status = 'suspended'; $status = 'suspended';
$spnd_action = 'unsuspend' ; $spnd_action = 'unsuspend' ;
} else { } else {
$status = 'active'; $status = 'active';
$spnd_action = 'suspend' ; $spnd_action = 'suspend' ;
} }
?> ?>
<tr class="data-row"> <tr class="data-row">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<table class="data-col1"> <table class="data-col1">
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
</table> </table>
</td> </td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"> <table width="830px">
<tr> <tr>
<td></td> <td></td>
<td class="data-controls" width="96px"><a href="/list/dns/?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list records</a></td> <td class="data-controls" width="108px"><a href="/list/dns/?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list <?php echo $data[$key]['RECORDS'] ?> records</a></td>
<td class="data-controls" width="92px"><a href="/add/dns/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add record</a></td> <td class="data-controls" width="92px"><a href="/add/dns/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add record</a></td>
<td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_delete" width="70px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $key ?>" /> <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $key ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2" width="830px"> <table class="data-col2" width="830px">
<tr> <tr>
<td colspan=3 class="domain" style="padding: 0 0 0 4px;"> <td colspan=3 class="domain" style="padding: 0 0 0 4px;">
<b><?php echo $key ?></b> <b><?php echo $key ?></b>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align:top;" > <td style="vertical-align:top;" >
<table> <table>
<tr> <tr>
<td class="counter-name" style="padding: 2px 0 0 2px;"> <td class="counter-name" style="padding: 2px 0 0 2px;">
<?php echo $data[$key]['IP'] ?> <?php echo $data[$key]['IP'] ?>
</td> </td>
<tr> <tr>
<td class="counter-name" style="padding: 0 0 20px 2px"> <td class="counter-name" style="padding: 0 0 20px 2px">
[<?php echo $data[$key]['TPL'] ?>] template [<?php echo $data[$key]['TPL'] ?>] template
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td style="vertical-align:top;" width="250"> <td style="vertical-align:top;" width="250">
<table> <table>
<tr> <tr>
<td class="counter-name">SOA:</td> <td class="counter-name">SOA:</td>
<td class="counter-value"><?php echo $data[$key]['SOA'] ?></td> <td class="counter-value"><?php echo $data[$key]['SOA'] ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">TTL:</td> <td class="counter-name">TTL:</td>
<td class="counter-value"><?php echo $data[$key]['TTL'] ?></td> <td class="counter-value"><?php echo $data[$key]['TTL'] ?></td>
</tr> </tr>
</table> </table>
</td> </td>
<td rowspan=4 style="vertical-align:top;" width="300"> <td rowspan=4 style="vertical-align:top;" width="300">
<table> <table>
<tr> <tr>
<td class="counter-name">Expire:</td> <td class="counter-name">Expire:</td>
<td class="counter-value"><?php echo date("Y M d", strtotime($data[$key]['EXP'])) ?></td> <td class="counter-value"><?php echo date("Y M d", strtotime($data[$key]['EXP'])) ?></td>
</tr> </tr>
<tr> <tr>
<td class="counter-name">Records:</td> <td class="counter-name">Records:</td>
<td class="counter-value"><?php echo $data[$key]['RECORDS'] ?></td> <td class="counter-value"><?php echo $data[$key]['RECORDS'] ?></td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</table> </table>
</form> </form>
<table class="data-count"> <table class="data-count">
<tr> <tr>
<td width="160px"></td> <td width="160px"></td>
<td> <td>
<?php <?php
if ( $i == 1) { if ( $i == 1) {
echo "1 user dns domain "; echo "1 user dns domain ";
} else { } else {
echo "$i dns domains "; echo "$i dns domains ";
} }
?> ?>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>

View file

@ -1,98 +1,105 @@
<table class="sub-menu" style="background: white;">
<table class="sub-menu" style="background: white;"> <tr>
<tr> <td style="padding: 12px 0 8px 6px">
<td style="padding: 12px 0 8px 6px"> <div style="float:left">
<div style="float:left"> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/?domain=<?php echo $_GET['domain'] ?>'"> Add DNS Record </button>
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/dns/?domain=<?php echo $_GET['domain'] ?>'"> Add DNS Record </button> </div>
</div> <div style="text-align: right; float: right;">
<div style="text-align: right; float: right;"> <form action="/search/" method="get">
<form action="/search/" method="get"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> </form>
</form> </div>
</div> <div style="float:left; padding-left: 26px;">
<div style="float:left; padding-left: 26px;"> <form action="/bulk/dns/" method="post" id="objects">
<form action="/bulk/dns/" method="post" id="objects"> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <select style="margin:0 2px 0 0px;" name="action">
<select style="margin:0 2px 0 0px;" name="action"> <option>apply to selected</option>
<option>apply to selected</option> <option>delete</option>
<option>delete</option> </select>
</select> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> </div>
</div> </td>
</td> </tr>
</tr> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>
<div id="vstobjects">
<div id="vstobjects"> <div style="height:10px; font-size:0;"></div>
<table class="data"> <table class="data" style="background: #ebe9dc;">
<?php <tr>
foreach ($data as $key => $value) { <td style="padding: 8px 2px 8px 0;">
++$i; <a class="name" style="color: #555; font-size: 10pt;"><b>Listing <?php echo $_GET['domain'] ?></b></a>
if ($data[$key]['SUSPENDED'] == 'yes') { </td>
$status = 'suspended'; </tr>
$spnd_action = 'unsuspend' ; </table>
} else { <div style="height:10px; font-size:0;"></div>
$status = 'active'; <table class="data">
$spnd_action = 'suspend' ; <?php
} foreach ($data as $key => $value) {
?> ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') {
<tr class="data-row"> $status = 'suspended';
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> $spnd_action = 'unsuspend' ;
<table class="data-col1"> } else {
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="record[]" value="<?php echo $data[$key]['ID']?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr> $status = 'active';
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> $spnd_action = 'suspend' ;
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> }
</table> ?>
</td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <tr class="data-row">
<table width="830px"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<tr> <table class="data-col1">
<td></td> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="record[]" value="<?php echo $data[$key]['ID']?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr>
<td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<td class="data-controls do_delete" width="70px"> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> </table>
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> </td>
<input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" /> <td class="data-dotted" width="830px" style="vertical-align:top;">
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <table width="830px">
<p class="counter-value">Are you sure you want to delete <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p> <tr>
</div> <td></td>
</td> <td class="data-controls" width="50px"><a href="/edit/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
</tr> <td class="data-controls do_delete" width="70px">
</table> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<table class="data-col5" width="780px"> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<tr> <input type="hidden" name="delete_url" value="/delete/dns/?domain=<?php echo $_GET['domain'] ?>&record_id=<?php echo $data[$key]['ID'] ?>" />
<td class="log" style="padding: 0 0 0 4px;" width="200"><b><?php echo $data[$key]['RECORD'] ?></b></td> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<td class="log-counter-value" width="80"><?php echo $data[$key]['TYPE'] ?></td> <p class="counter-value">Are you sure you want to delete <span style="color: #34536A;"><b><?php echo $data[$key]['RECORD'] ?></b></span> record?</p>
<td class="log-counter-value" width="80"><?php echo $data[$key]['PRIORITY'] ?></td> </div>
<td class="log-counter-value" ><?php echo $data[$key]['VALUE'] ?></td> </td>
</tr> </tr>
</table> </table>
</td> <table class="data-col5" width="780px">
</tr> <tr>
<?php <td class="log" style="padding: 0 0 0 4px;" width="200"><b><?php echo $data[$key]['RECORD'] ?></b></td>
} <td class="log-counter-value" width="80"><?php echo $data[$key]['TYPE'] ?></td>
?> <td class="log-counter-value" width="80"><?php echo $data[$key]['PRIORITY'] ?></td>
</table> <td class="log-counter-value" ><?php echo $data[$key]['VALUE'] ?></td>
</form> </tr>
</table>
<table class="data-count"> </td>
<tr> </tr>
<td width="160px"> <?php
<td> }
<?php ?>
if ( $i == 1) { </table>
echo "1 dns record "; </form>
} else {
echo "$i dns records "; <table class="data-count">
} <tr>
?> <td width="160px">
</td> <td>
</tr> <?php
</table> if ( $i == 1) {
</div> echo "1 dns record ";
} else {
echo "$i dns records ";
}
?>
</td>
</tr>
</table>
</div>

View file

@ -1,164 +1,163 @@
<table class="sub-menu" style="background: white;"> <table class="sub-menu" style="background: white;">
<tr> <tr>
<td style="padding: 12px 0 8px 6px"> <td style="padding: 12px 0 8px 6px">
<div style="float:left"> <div style="float:left">
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/'"> Add Mail Domain </button> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/'"> Add Mail Domain </button>
</div> </div>
<div style="text-align: right; float: right;"> <div style="text-align: right; float: right;">
<form action="/search/" method="get" > <form action="/search/" method="get" >
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
</form> </form>
</div> </div>
<div style="float:left; padding-left: 26px;"> <div style="float:left; padding-left: 26px;">
<form action="/bulk/mail/" method="post" id="objects"> <form action="/bulk/mail/" method="post" id="objects">
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<select style="margin:0 2px 0 0px;" name="action"> <select style="margin:0 2px 0 0px;" name="action">
<option>apply to selected</option> <option>apply to selected</option>
<option>delete</option> <option>delete</option>
</select> </select>
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
<div id="vstobjects"> <div id="vstobjects">
<table class="data"> <table class="data">
<?php <?php
list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]); list($http_host, $port) = explode(':', $_SERVER["HTTP_HOST"]);
foreach ($data as $key => $value) { foreach ($data as $key => $value) {
++$i; ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') { if ($data[$key]['SUSPENDED'] == 'yes') {
$status = 'suspended'; $status = 'suspended';
$spnd_action = 'unsuspend' ; $spnd_action = 'unsuspend' ;
} else { } else {
$status = 'active'; $status = 'active';
$spnd_action = 'suspend' ; $spnd_action = 'suspend' ;
} }
if (empty($data[$key]['CATCHALL'])) { if (empty($data[$key]['CATCHALL'])) {
$data[$key]['CATCHALL'] = '/dev/null'; $data[$key]['CATCHALL'] = '/dev/null';
} }
?> ?>
<tr class="data-row"> <tr class="data-row">
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<table class="data-col1"> <table class="data-col1">
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="domain[]" value="<?php echo "$key" ?>" ></td></tr>
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
</table> </table>
</td> </td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <td class="data-dotted" width="830px" style="vertical-align:top;">
<table width="830px"> <table width="830px">
<tr> <tr>
<td></td> <td></td>
<td class="data-controls" width="100px"><a href="?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list accounts</a></td> <td class="data-controls" width="112px"><a href="?domain=<?php echo $key ?>"><img src="/images/more.png" width="8px" height="8px"> list <?php echo $data[$key]['ACCOUNTS'] ?> accounts</a></td>
<td class="data-controls" width="98px"><a href="/add/mail/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add account</a></td> <td class="data-controls" width="98px"><a href="/add/mail/?domain=<?php echo $key ?>"><img src="/images/add.png" width="8px" height="8px"> add account</a></td>
<td class="data-controls" width="104px"><a href="<?php echo "http://".$http_host."/webmail/"; ?>" target="_blank"><img src="/images/new_window.png" width="8px" height="8px"> open webmail</a></td> <td class="data-controls" width="104px"><a href="<?php echo "http://".$http_host."/webmail/"; ?>" target="_blank"><img src="/images/new_window.png" width="8px" height="8px"> open webmail</a></td>
<td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
<td class="data-controls do_delete" width="70px"> <td class="data-controls do_delete" width="70px">
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> <a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $key ?>" /> <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $key ?>" />
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p> <p class="counter-value">Are you sure you want to delete <b><?php echo "$key" ?></b> domain?</p>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
<table class="data-col2" width="830px"> <table class="data-col2" width="830px">
<tr> <tr>
<td colspan=3 class="domain" style="padding: 0 0 0 4px;"> <td colspan=3 class="domain" style="padding: 0 0 0 4px;">
<b><?php echo $key ?></b> <b><?php echo $key ?></b>
</td> </td>
</tr> </tr>
<tr> <tr>
<td style="vertical-align:top;" > <td style="vertical-align:top;" >
<table> <table>
<tr> <tr>
<td class="counter-name" style="padding: 2px 0 2px 0"> <td class="counter-name" style="padding: 2px 0 2px 0">
catchall > <?php echo $data[$key]['CATCHALL'] ?> catchall > <?php echo $data[$key]['CATCHALL'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="chart1"> <td class="chart1">
Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?> Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?>
<div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;"> <div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;">
<div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$panel[$user]['DISK_QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div> <div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$panel[$user]['DISK_QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div>
</div> </div>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td style="vertical-align:top;" width="250"> <td style="vertical-align:top;" width="250">
<table> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Antivirus: Antivirus:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ANTIVIRUS'] ?> <?php echo $data[$key]['ANTIVIRUS'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Antispam: Antispam:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ANTISPAM'] ?> <?php echo $data[$key]['ANTISPAM'] ?>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
<td rowspan=4 style="vertical-align:top;" width="300"> <td rowspan=4 style="vertical-align:top;" width="300">
<table> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
DKIM: DKIM:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['DKIM'] ?> <?php echo $data[$key]['DKIM'] ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Accounts: Accounts:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['ACCOUNTS'] ?> <?php echo $data[$key]['ACCOUNTS'] ?>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
</table> </table>
</td> </td>
</tr> </tr>
<?php <?php
} }
?> ?>
</table> </table>
</form> </form>
<table class="data-count"> <table class="data-count">
<tr> <tr>
<td width="160px"></td> <td width="160px"></td>
<td> <td>
<?php <?php
if ( $i == 1) { if ( $i == 1) {
echo "1 mail domain "; echo "1 mail domain ";
} else { } else {
echo "$i mail domains "; echo "$i mail domains ";
} }
?> ?>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>

View file

@ -1,145 +1,152 @@
<table class="sub-menu" style="background: white;">
<table class="sub-menu" style="background: white;"> <tr>
<tr> <td style="padding: 12px 0 8px 6px">
<td style="padding: 12px 0 8px 6px"> <div style="float:left">
<div style="float:left"> <button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/?domain=<?php echo $_GET['domain'] ?>'"> Add Mail Account </button>
<button style="width:120px; padding: 2px 0px;" onclick="location.href='/add/mail/?domain=<?php echo $_GET['domain'] ?>'"> Add Mail Account </button> </div>
</div> <div style="text-align: right; float: right;">
<div style="text-align: right; float: right;"> <form action="/search/" method="get">
<form action="/search/" method="get"> <input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30">
<input type="text" name="q" style="margin: 2px 2px 0px 0px; width: 250px; padding: 3px;" size="30"> <input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;">
<input type="submit" value="Search" class="button" style="font-size: 12px; height: 24px;"> </form>
</form> </div>
</div> <div style="float:left; padding-left: 26px;">
<div style="float:left; padding-left: 26px;"> <form action="/bulk/mail/" method="post" id="objects">
<form action="/bulk/mail/" method="post" id="objects"> <a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a>
<a style="padding: 0 4px 0 12px" class="select-controls" href='javascript:checkedAll("objects");'> toggle all </a> <select style="margin:0 2px 0 0px;" name="action">
<select style="margin:0 2px 0 0px;" name="action"> <option>apply to selected</option>
<option>apply to selected</option> <option>delete</option>
<option>delete</option> </select>
</select> <input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;">
<input type="submit" name="ok" value="" class="button" style="width: 37px; font-size: 12px; height: 24px;"> </div>
</div> </td>
</td> </tr>
</tr> </table>
</table> </td>
</td> </tr>
</tr> </table>
</table>
<div id="vstobjects">
<div id="vstobjects"> <div style="height:10px; font-size:0;"></div>
<table class="data"> <table class="data" style="background: #ebe9dc;">
<?php <tr>
foreach ($data as $key => $value) { <td style="padding: 8px 2px 8px 0;">
++$i; <a class="name" style="color: #555; font-size: 10pt;"><b>Listing <?php echo $_GET['domain'] ?></b></a>
if ($data[$key]['SUSPENDED'] == 'yes') { </td>
$status = 'suspended'; </tr>
$spnd_action = 'unsuspend' ; </table>
} else { <div style="height:10px; font-size:0;"></div>
$status = 'active'; <table class="data">
$spnd_action = 'suspend'; <?php
} foreach ($data as $key => $value) {
?> ++$i;
if ($data[$key]['SUSPENDED'] == 'yes') {
<tr class="data-row"> $status = 'suspended';
<td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150"> $spnd_action = 'unsuspend' ;
<table class="data-col1"> } else {
<tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="account[]" value="<?php echo $key?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr> $status = 'active';
<tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr> $spnd_action = 'suspend';
<tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr> }
</table> ?>
</td>
<td class="data-dotted" width="830px" style="vertical-align:top;"> <tr class="data-row">
<table width="830px"> <td class="data-dotted" style="padding: 0px 10px 0px 0px" width="150">
<tr> <table class="data-col1">
<td></td> <tr><td style="padding: 18 0 4 18;"><input type="checkbox" name="account[]" value="<?php echo $key?>" ><input type="hidden" name="domain" value="<?php echo $_GET['domain'] ?>" ></td></tr>
<td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td> <tr><td><a class="data-date" title="<?php echo $data[$key]['DATE']." ".$data[$key]['TIME'] ?>"><?php echo date("d M Y", strtotime($data[$key]['DATE'])) ?></td></tr>
<td class="data-controls do_delete" width="70px"> <tr><td class="data-<?php echo $status ?>"><b><?php echo $status ?></b></td></tr>
<img src="/images/delete.png" width="7px" height="7px" class="do_delete"> </table>
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a> </td>
<input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" /> <td class="data-dotted" width="830px" style="vertical-align:top;">
<div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation"> <table width="830px">
<p class="counter-value">Are you sure you want to delete <b><?php echo $key ?></b> account?</p> <tr>
</div> <td></td>
</td> <td class="data-controls" width="50px"><a href="/edit/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>"><img src="/images/edit.png" width="8px" height="8px"> edit</a></td>
</tr> <td class="data-controls do_delete" width="70px">
</table> <img src="/images/delete.png" width="7px" height="7px" class="do_delete">
<a id="delete_link_<?php echo $i ?>" class="do_delete"> delete</a>
<table class="data-col2" width="830px"> <input type="hidden" name="delete_url" value="/delete/mail/?domain=<?php echo $_GET['domain'] ?>&account=<?php echo $key ?>" />
<tr><td colspan=3 class="domain" style="padding: 0 0 0 4px;"><b><?php echo $key."@".$_GET['domain'] ?></b> <a class="aliases" style="padding: 0 20px 0 4px"><?php echo str_replace(',', ', ', $data[$key]['ALIAS']) ?></a></td></tr> <div id="delete_dialog_<?php echo $i ?>" class="confirmation-text-delete hidden" title="Confirmation">
<tr> <p class="counter-value">Are you sure you want to delete <b><?php echo $key ?></b> account?</p>
<td style="vertical-align:top;" > </div>
<table> </td>
<tr> </tr>
<td class="counter-name" style="padding: 4px 0 0 0;"> </table>
<?php echo $data[$key]['IP'] ?>
</td> <table class="data-col2" width="830px">
<tr> <tr><td colspan=3 class="domain" style="padding: 0 0 0 4px;"><b><?php echo $key."@".$_GET['domain'] ?></b> <a class="aliases" style="padding: 0 20px 0 4px"><?php echo str_replace(',', ', ', $data[$key]['ALIAS']) ?></a></td></tr>
<td class="chart1" style="padding: 0 0 2px 0"> <tr>
Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?> <td style="vertical-align:top;" >
<div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;"> <table>
<div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$data[$key]['QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div> <tr>
</div> <td class="counter-name" style="padding: 4px 0 0 0;">
</td> <?php echo $data[$key]['IP'] ?>
</tr> </td>
</table> <tr>
</td> <td class="chart1" style="padding: 0 0 2px 0">
<td style="vertical-align:top;" width="200"> Disk: <?php echo humanize_usage($data[$key]['U_DISK']) ?>
<table> <div style="width:160px; height:6px; font-size:0;background-color:#c7d5b3;">
<tr> <div style="width:<?php echo get_percentage($data[$key]['U_DISK'],$data[$key]['QUOTA']) ?>%; height:6px; background-color:#9bbb62; border-right:1px #9bbb62 solid;"></div>
<td class="counter-name"> </div>
Quota: </td>
</td> </tr>
<td class="counter-value"> </table>
<?php echo $data[$key]['QUOTA'] ?> </td>
</td> <td style="vertical-align:top;" width="200">
</tr> <table>
<tr> <tr>
<td class="counter-name"> <td class="counter-name">
Autoreply: Quota:
</td> </td>
<td class="counter-value"> <td class="counter-value">
<?php echo $data[$key]['AUTOREPLY'] ?> <?php echo $data[$key]['QUOTA'] ?>
</td> </td>
</tr> </tr>
</table> <tr>
</td> <td class="counter-name">
<td rowspan=4 style="vertical-align:top;" width="350"> Autoreply:
<table width="350"> </td>
<tr> <td class="counter-value">
<td class="counter-name"> <?php echo $data[$key]['AUTOREPLY'] ?>
Forward: </td>
</td> </tr>
<td class="counter-value" style="padding: 0 0 0 8px;" > </table>
<?php echo str_replace(',', ', ', $data[$key]['FWD']) ?> </td>
</td> <td rowspan=4 style="vertical-align:top;" width="350">
</tr> <table width="350">
</table> <tr>
</td> <td class="counter-name">
</tr> Forward:
</table> </td>
</td> <td class="counter-value" style="padding: 0 0 0 8px;" >
</tr> <?php echo str_replace(',', ', ', $data[$key]['FWD']) ?>
</td>
<?php </tr>
} </table>
?> </td>
</table> </tr>
</form> </table>
</td>
<table class="data-count"> </tr>
<tr>
<td width="160px"></td> <?php
<td> }
<?php ?>
if ( $i == 1) { </table>
echo "1 mail account "; </form>
} else {
echo "$i mail accounts "; <table class="data-count">
} <tr>
?> <td width="160px"></td>
</td> <td>
</tr> <?php
</table> if ( $i == 1) {
</div> echo "1 mail account ";
} else {
echo "$i mail accounts ";
}
?>
</td>
</tr>
</table>
</div>