v-add-user-favourites 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #!/bin/bash
  2. # info: adding user favourites
  3. # options: USER SYSTEM OBJECT
  4. #
  5. # The function adds object to users favourites
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. system=$(echo "$2" |tr '[:lower:]' '[:upper:]')
  12. object=$3
  13. email=$3
  14. id=$3
  15. # Includes
  16. source $VESTA/func/main.sh
  17. source $VESTA/conf/vesta.conf
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. check_args '3' "$#" 'USER SYSTEM OBJECT'
  22. is_format_valid 'user' 'system'
  23. case $system in
  24. MAIL_ACC) is_format_valid 'email' ;;
  25. CRON) is_format_valid 'id' ;;
  26. DNS_REC) is_format_valid 'id' ;;
  27. *) is_format_valid 'object'
  28. esac
  29. is_object_valid 'user' 'USER' "$user"
  30. is_object_unsuspended 'user' 'USER' "$user"
  31. # Checking system
  32. case $system in
  33. USER) check='ok' ;;
  34. WEB) check='ok' ;;
  35. DNS) check='ok' ;;
  36. DNS_REC) check='ok' ;;
  37. MAIL) check='ok' ;;
  38. MAIL_ACC) check='ok' ;;
  39. DB) check='ok' ;;
  40. CRON) check='ok' ;;
  41. BACKUP) check='ok' ;;
  42. IP) check='ok' ;;
  43. PACKAGE) check='ok' ;;
  44. FIREWALL) check='ok' ;;
  45. *) check_args '2' '0' 'USER SYSTEM OBJECT'
  46. esac
  47. #----------------------------------------------------------#
  48. # Action #
  49. #----------------------------------------------------------#
  50. # Flushing vars
  51. USER=''
  52. WEB=''
  53. DNS=''
  54. DNS_REC=''
  55. MAIL=''
  56. MAIL_ACC=''
  57. DB=''
  58. CRON=''
  59. BACKUP=''
  60. IP=''
  61. PACKAGE=''
  62. FIREWALL=''
  63. # Creating config just in case
  64. touch $USER_DATA/favourites.conf
  65. # Reading current values
  66. source $USER_DATA/favourites.conf
  67. # Assigning current system value
  68. eval value=\$$system
  69. # Checking if object is new
  70. check_fav=$(echo "$value" |tr ',' '\n'| grep "^$object$")
  71. if [ ! -z "$check_fav" ]; then
  72. exit 0
  73. fi
  74. # Adding object to favorites
  75. if [ -z "$value" ]; then
  76. value="$object"
  77. else
  78. value="$value,$object"
  79. fi
  80. # Updating sytem
  81. eval $system=$value
  82. # Updating user favorites
  83. echo "USER='$USER'
  84. WEB='$WEB'
  85. DNS='$DNS'
  86. DNS_REC='$DNS_REC'
  87. MAIL='$MAIL'
  88. MAIL_ACC='$MAIL_ACC'
  89. DB='$DB'
  90. CRON='$CRON'
  91. BACKUP='$BACKUP'
  92. IP='$IP'
  93. PACKAGE='$PACKAGE'
  94. FIREWALL='$FIREWALL'" > $USER_DATA/favourites.conf
  95. # Changing file permission
  96. chmod 640 $USER_DATA/favourites.conf
  97. #----------------------------------------------------------#
  98. # Vesta #
  99. #----------------------------------------------------------#
  100. # Logging
  101. log_history "added starred $object in $system listing"
  102. log_event "$OK" "$ARGUMENTS"
  103. exit