mirror of
https://github.com/serghey-rodin/vesta.git
synced 2026-07-15 14:02:34 +02:00
143 lines
3.3 KiB
Bash
Executable File
143 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# info: changing user 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_PKG_UPGRADE $v_log"
|
|
exit $E_PKG_UPGRADE
|
|
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'
|
|
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'
|
|
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
|