v_list_sys_user 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #!/bin/bash
  2. # info: listing system user
  3. #----------------------------------------------------------#
  4. # Variable&Function #
  5. #----------------------------------------------------------#
  6. # Argument defenition
  7. user=$1
  8. USER="$user"
  9. format=${2-shell}
  10. # Importing variables
  11. source $VESTA/conf/vars.conf
  12. source $V_FUNC/shared_func.sh
  13. # Json function
  14. json_list_user() {
  15. i=1
  16. fileds_count=$(echo "$fields" | wc -w)
  17. line=$(cat $V_USERS/$USER/user.conf)
  18. # Print top bracket
  19. echo '{'
  20. # Assing key=value
  21. for key in $line; do
  22. eval ${key%%=*}=${key#*=}
  23. done
  24. # Starting output loop
  25. for field in $fields; do
  26. # Parsing key=value
  27. eval value=$field
  28. # Checking first field
  29. if [ "$i" -eq 1 ]; then
  30. echo -e "\t\"$value\": {"
  31. else
  32. if [ "$fileds_count" -eq "$i" ]; then
  33. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
  34. else
  35. echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
  36. fi
  37. fi
  38. # Updating iterator
  39. (( ++i))
  40. done
  41. # If there was any output
  42. if [ -n "$value" ]; then
  43. echo -e ' }'
  44. fi
  45. # Printing bottom json bracket
  46. echo -e "}"
  47. }
  48. # Shell function
  49. shell_list_user() {
  50. line=$(cat $V_USERS/$USER/user.conf)
  51. # Parsing key=value
  52. for key in $line; do
  53. eval ${key%%=*}=${key#*=}
  54. done
  55. # Print result line
  56. for field in $fields; do
  57. eval key="$field"
  58. echo "${field//$/}: $key "
  59. done
  60. }
  61. #----------------------------------------------------------#
  62. # Verifications #
  63. #----------------------------------------------------------#
  64. # Checking args
  65. check_args '1' "$#" 'user [format]'
  66. # Checking argument format
  67. format_validation 'user'
  68. # Checking user
  69. is_user_valid
  70. #----------------------------------------------------------#
  71. # Action #
  72. #----------------------------------------------------------#
  73. # Defining config
  74. conf=$V_USERS/$user/user.conf
  75. # Defining fileds to select
  76. fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_SSL $WEB_ALIASES
  77. $DATABASES $MAIL_DOMAINS $MAIL_BOXES $MAIL_FORWARDERS $DNS_DOMAINS
  78. $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $WEB_TPL $SUSPENDED $IP_OWNED
  79. $U_DISK $U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_DNS_DOMAINS $U_DATABASES
  80. $U_MAIL_DOMAINS $CONTACT $DATE'
  81. # Listing user
  82. case $format in
  83. json) json_list_user ;;
  84. plain) nohead=1; shell_list_user ;;
  85. shell) shell_list_user | column -t ;;
  86. *) check_args '1' '0' 'user [format]' ;;
  87. esac
  88. #----------------------------------------------------------#
  89. # Vesta #
  90. #----------------------------------------------------------#
  91. # Logging
  92. log_event 'system' "$V_EVENT"
  93. exit