#!/bin/bash # info: change user package # options: user package # # The function changes user's hosting package. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 package=$2 # Importing variables source $VESTA/conf/vars.conf source $V_CONF/vesta.conf source $V_FUNC/shared.func is_package_avalable() { # Parsing user data usr_data=$(cat $V_USERS/$user/user.conf) IFS=$'\n' for key in $usr_data; do eval ${key%%=*}=${key#*=} done # Clearing vars WEB_DOMAINS='0' DATABASES='0' MAIL_DOMAINS='0' DNS_DOMAINS='0' DISK_QUOTA='0' BANDWIDTH='0' # Parsing package pkg_data=$(cat $V_PKG/$package.pkg) for key in $pkg_data; do eval ${key%%=*}=${key#*=} done # 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 'debug' "$E_LIMIT $v_log" exit $E_LIMIT fi } change_user_package() { # Parsing user data usr_data=$(cat $V_USERS/$user/user.conf) eval $usr_data # Parsing package pkg_data=$(cat $V_PKG/$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' REPORTS='$REPORTS' 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_ACCOUNTS='$U_MAIL_ACCOUNTS' U_DATABASES='$U_DATABASES' U_CRON_JOBS='$U_CRON_JOBS' DATE='$DATE'" > $V_USERS/$user/user.conf } #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# # Checking arg number check_args '2' "$#" 'user package' # Checking argument format format_validation 'user' 'package' # Checking user is_user_valid # Checking package is_package_valid # Checking current data is_package_avalable #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Changing user package change_user_package #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Logging log_event 'system' "$V_EVENT" exit