v_list_user 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. # info: list system user
  3. # options: user [format]
  4. #
  5. # The function for obtainig the list of all user's parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Includes
  10. source $VESTA/func/main.sh
  11. # Argument defenition
  12. user=$1
  13. USER="$user"
  14. format=${2-shell}
  15. # Json function
  16. json_list_user() {
  17. i=1
  18. fileds_count=$(echo "$fields" | wc -w)
  19. source $VESTA/data/users/$user/user.conf
  20. echo '{'
  21. for field in $fields; do
  22. eval value=$field
  23. if [ "$i" -eq 1 ]; then
  24. echo -e "\t\"$value\": {"
  25. else
  26. if [ "$fileds_count" -eq "$i" ]; then
  27. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
  28. else
  29. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
  30. fi
  31. fi
  32. (( ++i))
  33. done
  34. if [ -n "$value" ]; then
  35. echo -e ' }'
  36. fi
  37. echo -e "}"
  38. }
  39. # Shell function
  40. shell_list_user() {
  41. source $VESTA/data/users/$user/user.conf
  42. for field in $fields; do
  43. eval key="$field"
  44. if [ -z "$key" ]; then
  45. key='NULL'
  46. fi
  47. echo "${field//$/}: $key "
  48. done
  49. }
  50. #----------------------------------------------------------#
  51. # Verifications #
  52. #----------------------------------------------------------#
  53. check_args '1' "$#" 'user [format]'
  54. validate_format 'user'
  55. is_object_valid 'user' 'USER' "$user"
  56. #----------------------------------------------------------#
  57. # Action #
  58. #----------------------------------------------------------#
  59. # Defining config
  60. conf=$USER_DATA/user.conf
  61. # Defining fileds to select
  62. fields='$USER $FNAME $LNAME $PACKAGE $TEMPLATE $WEB_DOMAINS $WEB_ALIASES
  63. $DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES
  64. $CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT
  65. $CRON_REPORTS $RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB
  66. $SUSPENDED_DNS $SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL
  67. $IP_OWNED $U_USERS $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB
  68. $U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS
  69. $U_DNS_RECORDS $U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES
  70. $U_CRON_JOBS $U_BACKUPS $TIME $DATE'
  71. # Listing user
  72. case $format in
  73. json) json_list_user ;;
  74. plain) nohead=1; shell_list_user ;;
  75. shell) shell_list_user | column -t ;;
  76. esac
  77. #----------------------------------------------------------#
  78. # Vesta #
  79. #----------------------------------------------------------#
  80. exit