v_list_user 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. # Argument defenition
  10. user=$1
  11. USER="$user"
  12. format=${2-shell}
  13. # Importing variables
  14. source $VESTA/conf/vars.conf
  15. source $V_FUNC/shared.func
  16. # Json function
  17. json_list_user() {
  18. i=1
  19. fileds_count=$(echo "$fields" | wc -w)
  20. source $V_USERS/$USER/user.conf
  21. # Print top bracket
  22. echo '{'
  23. # Starting output loop
  24. for field in $fields; do
  25. # Parsing key=value
  26. eval value=$field
  27. # Checking first field
  28. if [ "$i" -eq 1 ]; then
  29. echo -e "\t\"$value\": {"
  30. else
  31. if [ "$fileds_count" -eq "$i" ]; then
  32. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
  33. else
  34. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
  35. fi
  36. fi
  37. # Updating iterator
  38. (( ++i))
  39. done
  40. # If there was any output
  41. if [ -n "$value" ]; then
  42. echo -e ' }'
  43. fi
  44. # Printing bottom json bracket
  45. echo -e "}"
  46. }
  47. # Shell function
  48. shell_list_user() {
  49. source $V_USERS/$USER/user.conf
  50. for field in $fields; do
  51. eval key="$field"
  52. echo "${field//$/}: $key "
  53. done
  54. }
  55. #----------------------------------------------------------#
  56. # Verifications #
  57. #----------------------------------------------------------#
  58. # Checking args
  59. check_args '1' "$#" 'user [format]'
  60. # Checking argument format
  61. format_validation 'user'
  62. # Checking user
  63. is_user_valid
  64. #----------------------------------------------------------#
  65. # Action #
  66. #----------------------------------------------------------#
  67. # Defining config
  68. conf=$V_USERS/$user/user.conf
  69. # Defining fileds to select
  70. fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_ALIASES $WEB_TPL
  71. $DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES
  72. $CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS
  73. $RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS
  74. $SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED $U_USERS
  75. $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
  76. $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
  77. $U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $DATE'
  78. # Listing user
  79. case $format in
  80. json) json_list_user ;;
  81. plain) nohead=1; shell_list_user ;;
  82. shell) shell_list_user | column -t ;;
  83. *) check_args '1' '0' 'user [format]' ;;
  84. esac
  85. #----------------------------------------------------------#
  86. # Vesta #
  87. #----------------------------------------------------------#
  88. exit