| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #!/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)
- for key in $usr_data; do
- eval ${key%%=*}=${key#*=}
- done
- # Clearing vars
- WEB_DOMAINS='0'
- WEB_SSL='0'
- DATABASES='0'
- MAIL_DOMAINS='0'
- MAIL_BOXES='0'
- MAIL_FORWARDERS='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" ] ||\
- [ "$WEB_SSL" -lt "$U_WEB_SSL" ] ||\
- [ "$DATABASES" -lt "$U_DATABASES" ] ||\
- [ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ] ||\
- [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ] ||\
- [ "$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)
- for key in $usr_data; do
- eval ${key%%=*}=${key#*=}
- done
- # Parsing package
- pkg_data=$(cat $V_PKG/$package.pkg)
- for key in $pkg_data; do
- eval ${key%%=*}=${key#*=}
- done
- echo "FNAME='$FNAME'
- LNAME='$LNAME'
- PACKAGE='$package'
- WEB_DOMAINS='$WEB_DOMAINS'
- WEB_SSL='$WEB_SSL'
- WEB_ALIASES='$WEB_ALIASES'
- DATABASES='$DATABASES'
- MAIL_DOMAINS='$MAIL_DOMAINS'
- MAIL_BOXES='$MAIL_BOXES'
- MAIL_FORWARDERS='$MAIL_FORWARDERS'
- DNS_DOMAINS='$DNS_DOMAINS'
- DISK_QUOTA='$DISK_QUOTA'
- BANDWIDTH='$BANDWIDTH'
- NS='$NS'
- SHELL='$SHELL'
- BACKUPS='$BACKUPS'
- WEB_TPL='$WEB_TPL'
- SUSPENDED='$SUSPENDED'
- CONTACT='$CONTACT'
- RKEY='$RKEY'
- REPORTS='$REPORTS'
- IP_OWNED='$IP_OWNED'
- U_DIR_DISK='$U_DIR_DISK'
- U_DISK='$U_DISK'
- U_BANDWIDTH='$U_BANDWIDTH'
- U_WEB_DOMAINS='$U_WEB_DOMAINS'
- U_WEB_SSL='$U_WEB_SSL'
- U_DNS_DOMAINS='$U_DNS_DOMAINS'
- U_DATABASES='$U_DATABASES'
- U_MAIL_DOMAINS='$U_MAIL_DOMAINS'
- 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 user is active
- is_user_suspended
- # Checking package
- is_package_valid
- # Checking current data
- is_package_avalable
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- # Get old package value
- old_package=$(get_user_value '$PACKAGE')
- # Changing user package
- change_user_package
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- # Logging
- log_event 'system' "$V_EVENT"
- exit
|