mirror of
https://github.com/myvesta/vesta
synced 2025-07-05 20:41:53 -07:00
137 lines
3.4 KiB
Bash
Executable file
137 lines
3.4 KiB
Bash
Executable file
#!/bin/bash
|
|
# info: change user package
|
|
# options: user package
|
|
#
|
|
# The function changes user's hosting package.
|
|
|
|
|
|
#----------------------------------------------------------#
|
|
# Variable&Function #
|
|
#----------------------------------------------------------#
|
|
|
|
# Argument defenition
|
|
user=$1
|
|
package=$2
|
|
|
|
# Includes
|
|
source $VESTA/conf/vesta.conf
|
|
source $VESTA/func/shared.sh
|
|
|
|
is_package_avalable() {
|
|
# Parsing user data
|
|
usr_data=$(cat $USER_DATA/user.conf)
|
|
IFS=$'\n'
|
|
for key in $usr_data; do
|
|
eval ${key%%=*}=${key#*=}
|
|
done
|
|
|
|
WEB_DOMAINS='0'
|
|
DATABASES='0'
|
|
MAIL_DOMAINS='0'
|
|
DNS_DOMAINS='0'
|
|
DISK_QUOTA='0'
|
|
BANDWIDTH='0'
|
|
|
|
pkg_data=$(cat $VESTA/data/packages/$package.pkg)
|
|
eval $pkg_data
|
|
|
|
# Comparing user data with package
|
|
if [[ "$WEB_DOMAINS" -lt "$U_WEB_DOMAINS" ]] ||\
|
|
[[ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ]] ||\
|
|
[[ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ]] ||\
|
|
[[ "$DATABASES" -lt "$U_DATABASES" ]] ||\
|
|
[[ "$CRON_JOBS" -lt "$U_CRON_JOBS" ]] ||\
|
|
[[ "$DISK_QUOTA" -lt "$U_DISK" ]] ||\
|
|
[[ "$BANDWIDTH" -lt "$U_BANDWIDTH" ]]; then
|
|
echo "Error: Upgrade package"
|
|
log_event "$E_LIMIT" "$EVENT"
|
|
exit $E_LIMIT
|
|
fi
|
|
}
|
|
|
|
change_user_package() {
|
|
usr_data=$(cat $USER_DATA/user.conf)
|
|
eval $usr_data
|
|
|
|
pkg_data=$(cat $VESTA/data/packages/$package.pkg)
|
|
eval $pkg_data
|
|
|
|
echo "FNAME='$FNAME'
|
|
LNAME='$LNAME'
|
|
PACKAGE='$package'
|
|
WEB_DOMAINS='$WEB_DOMAINS'
|
|
WEB_ALIASES='$WEB_ALIASES'
|
|
WEB_TPL='$WEB_TPL'
|
|
DNS_DOMAINS='$DNS_DOMAINS'
|
|
DNS_RECORDS='$DNS_RECORDS'
|
|
MAIL_DOMAINS='$MAIL_DOMAINS'
|
|
MAIL_ACCOUNTS='$MAIL_ACCOUNTS'
|
|
DATABASES='$DATABASES'
|
|
CRON_JOBS='$CRON_JOBS'
|
|
DISK_QUOTA='$DISK_QUOTA'
|
|
BANDWIDTH='$BANDWIDTH'
|
|
NS='$NS'
|
|
SHELL='$SHELL'
|
|
BACKUPS='$BACKUPS'
|
|
CONTACT='$CONTACT'
|
|
CRON_REPORTS='$CRON_REPORTS'
|
|
MD5='$MD5'
|
|
RKEY='$RKEY'
|
|
SUSPENDED='$SUSPENDED'
|
|
SUSPENDED_USERS='$SUSPENDED_USERS'
|
|
SUSPENDED_WEB='$SUSPENDED_WEB'
|
|
SUSPENDED_DNS='$SUSPENDED_DNS'
|
|
SUSPENDED_MAIL='$SUSPENDED_MAIL'
|
|
SUSPENDED_DB='$SUSPENDED_DB'
|
|
SUSPENDED_CRON='$SUSPENDED_CRON'
|
|
IP_AVAIL='$IP_AVAIL'
|
|
IP_OWNED='$IP_OWNED'
|
|
U_USERS='$U_USERS'
|
|
U_DISK='$U_DISK'
|
|
U_DISK_DIRS='$U_DISK_DIRS'
|
|
U_DISK_WEB='$U_DISK_WEB'
|
|
U_DISK_MAIL='$U_DISK_MAIL'
|
|
U_DISK_DB='$U_DISK_DB'
|
|
U_BANDWIDTH='$U_BANDWIDTH'
|
|
U_WEB_DOMAINS='$U_WEB_DOMAINS'
|
|
U_WEB_SSL='$U_WEB_SSL'
|
|
U_WEB_ALIASES='$U_WEB_ALIASES'
|
|
U_DNS_DOMAINS='$U_DNS_DOMAINS'
|
|
U_DNS_RECORDS='$U_DNS_RECORDS'
|
|
U_MAIL_DOMAINS='$U_MAIL_DOMAINS'
|
|
U_MAIL_DKIM='$U_MAIL_DKIM'
|
|
U_MAIL_ACCOUNTS='$U_MAIL_ACCOUNTS'
|
|
U_DATABASES='$U_DATABASES'
|
|
U_CRON_JOBS='$U_CRON_JOBS'
|
|
U_BACKUPS='$U_BACKUPS'
|
|
DATE='$DATE'" > $USER_DATA/user.conf
|
|
}
|
|
|
|
|
|
#----------------------------------------------------------#
|
|
# Verifications #
|
|
#----------------------------------------------------------#
|
|
|
|
check_args '2' "$#" 'user package'
|
|
validate_format 'user' 'package'
|
|
is_object_valid 'user' 'USER' "$user"
|
|
is_package_valid
|
|
is_package_avalable
|
|
|
|
|
|
#----------------------------------------------------------#
|
|
# Action #
|
|
#----------------------------------------------------------#
|
|
|
|
# Changing user package
|
|
change_user_package
|
|
|
|
|
|
#----------------------------------------------------------#
|
|
# Vesta #
|
|
#----------------------------------------------------------#
|
|
|
|
# Logging
|
|
log_event "$OK" "$EVENT"
|
|
|
|
exit
|