v-list-user 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 $WEB_TEMPLATE $PROXY_TEMPLATE
  63. $DNS_TEMPLATE $WEB_DOMAINS $WEB_ALIASES $DNS_DOMAINS $DNS_RECORDS
  64. $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH
  65. $NS $SHELL $BACKUPS $CONTACT $CRON_REPORTS $RKEY $SUSPENDED
  66. $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS $SUSPENDED_MAIL
  67. $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED $U_USERS $U_DISK
  68. $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
  69. $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
  70. $U_MAIL_DOMAINS $U_MAIL_DKIM $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS
  71. $U_BACKUPS $LANGUAGE $TIME $DATE'
  72. # Listing user
  73. case $format in
  74. json) json_list_user ;;
  75. plain) nohead=1; shell_list_user ;;
  76. shell) shell_list_user | column -t ;;
  77. esac
  78. #----------------------------------------------------------#
  79. # Vesta #
  80. #----------------------------------------------------------#
  81. exit