v_change_sys_user_package 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #!/bin/bash
  2. # info: changing user package
  3. #----------------------------------------------------------#
  4. # Variable&Function #
  5. #----------------------------------------------------------#
  6. # Argument defenition
  7. user=$1
  8. package=$2
  9. # Importing variables
  10. source $VESTA/conf/vars.conf
  11. source $V_CONF/vesta.conf
  12. source $V_FUNC/shared.func
  13. is_package_avalable() {
  14. # Parsing user data
  15. usr_data=$(cat $V_USERS/$user/user.conf)
  16. for key in $usr_data; do
  17. eval ${key%%=*}=${key#*=}
  18. done
  19. # Clearing vars
  20. WEB_DOMAINS='0'
  21. WEB_SSL='0'
  22. DATABASES='0'
  23. MAIL_DOMAINS='0'
  24. MAIL_BOXES='0'
  25. MAIL_FORWARDERS='0'
  26. DNS_DOMAINS='0'
  27. DISK_QUOTA='0'
  28. BANDWIDTH='0'
  29. # Parsing package
  30. pkg_data=$(cat $V_PKG/$package.pkg)
  31. for key in $pkg_data; do
  32. eval ${key%%=*}=${key#*=}
  33. done
  34. # Comparing user data with package
  35. if [ "$WEB_DOMAINS" -lt "$U_WEB_DOMAINS" ] ||\
  36. [ "$WEB_SSL" -lt "$U_WEB_SSL" ] ||\
  37. [ "$DATABASES" -lt "$U_DATABASES" ] ||\
  38. [ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ] ||\
  39. [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ] ||\
  40. [ "$DISK_QUOTA" -lt "$U_DISK" ] ||\
  41. [ "$BANDWIDTH" -lt "$U_BANDWIDTH" ]; then
  42. echo "Error: Upgrade package"
  43. log_event 'debug' "$E_LIMIT $v_log"
  44. exit $E_LIMIT
  45. fi
  46. }
  47. change_user_package() {
  48. # Parsing user data
  49. usr_data=$(cat $V_USERS/$user/user.conf)
  50. for key in $usr_data; do
  51. eval ${key%%=*}=${key#*=}
  52. done
  53. # Parsing package
  54. pkg_data=$(cat $V_PKG/$package.pkg)
  55. for key in $pkg_data; do
  56. eval ${key%%=*}=${key#*=}
  57. done
  58. echo "FNAME='$FNAME'
  59. LNAME='$LNAME'
  60. PACKAGE='$package'
  61. WEB_DOMAINS='$WEB_DOMAINS'
  62. WEB_SSL='$WEB_SSL'
  63. WEB_ALIASES='$WEB_ALIASES'
  64. DATABASES='$DATABASES'
  65. MAIL_DOMAINS='$MAIL_DOMAINS'
  66. MAIL_BOXES='$MAIL_BOXES'
  67. MAIL_FORWARDERS='$MAIL_FORWARDERS'
  68. DNS_DOMAINS='$DNS_DOMAINS'
  69. DISK_QUOTA='$DISK_QUOTA'
  70. BANDWIDTH='$BANDWIDTH'
  71. NS='$NS'
  72. SHELL='$SHELL'
  73. BACKUPS='$BACKUPS'
  74. WEB_TPL='$WEB_TPL'
  75. SUSPENDED='$SUSPENDED'
  76. CONTACT='$CONTACT'
  77. REPORTS='$REPORTS'
  78. IP_OWNED='$IP_OWNED'
  79. U_DIR_DISK='$U_DIR_DISK'
  80. U_DISK='$U_DISK'
  81. U_BANDWIDTH='$U_BANDWIDTH'
  82. U_WEB_DOMAINS='$U_WEB_DOMAINS'
  83. U_WEB_SSL='$U_WEB_SSL'
  84. U_DNS_DOMAINS='$U_DNS_DOMAINS'
  85. U_DATABASES='$U_DATABASES'
  86. U_MAIL_DOMAINS='$U_MAIL_DOMAINS'
  87. DATE='$DATE'" > $V_USERS/$user/user.conf
  88. }
  89. #----------------------------------------------------------#
  90. # Verifications #
  91. #----------------------------------------------------------#
  92. # Checking arg number
  93. check_args '2' "$#" 'user package'
  94. # Checking argument format
  95. format_validation 'user' 'package'
  96. # Checking user
  97. is_user_valid
  98. # Checking user is active
  99. is_user_suspended
  100. # Checking package
  101. is_package_valid
  102. # Checking current data
  103. is_package_avalable
  104. #----------------------------------------------------------#
  105. # Action #
  106. #----------------------------------------------------------#
  107. # Get old package value
  108. old_package=$(get_user_value '$PACKAGE')
  109. # Changing user package
  110. change_user_package
  111. #----------------------------------------------------------#
  112. # Vesta #
  113. #----------------------------------------------------------#
  114. # Logging
  115. log_event 'system' "$V_EVENT"
  116. exit