v-change-user-language 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. # info: change user language
  3. # options: USER LANGUAGE
  4. #
  5. # The function for changing language.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. user=$1
  11. language=$2
  12. # Includes
  13. source $VESTA/func/main.sh
  14. source $VESTA/conf/vesta.conf
  15. is_language_valid() {
  16. if ! [[ "$1" =~ ^[[:alnum:]_-]+$ ]]; then
  17. echo "Error: language $1 is not valid"
  18. log_event "$E_INVALID" "$ARGUMENTS"
  19. exit $E_INVALID
  20. fi
  21. if [ ! -e "$VESTA/web/inc/i18n/$1.php" ]; then
  22. echo "Error: language $1 doesn't exist"
  23. log_event "$E_NOTEXIST" "$ARGUMENTS"
  24. exit $E_NOTEXIST
  25. fi
  26. }
  27. #----------------------------------------------------------#
  28. # Verifications #
  29. #----------------------------------------------------------#
  30. check_args '2' "$#" 'USER LANGUAGE'
  31. is_format_valid 'user' 'language'
  32. is_object_valid 'user' 'USER' "$user"
  33. is_object_unsuspended 'user' 'USER' "$user"
  34. is_language_valid $language
  35. #----------------------------------------------------------#
  36. # Action #
  37. #----------------------------------------------------------#
  38. # Change language
  39. if [ -z "$(grep LANGUAGE $USER_DATA/user.conf)" ]; then
  40. sed -i "s/^TIME/LANGUAGE='$language'\nTIME/g" $USER_DATA/user.conf
  41. else
  42. update_user_value "$user" '$LANGUAGE' "$language"
  43. fi
  44. #----------------------------------------------------------#
  45. # Vesta #
  46. #----------------------------------------------------------#
  47. # Logging
  48. log_history "changed language to $language"
  49. log_event "$OK" "$ARGUMENTS"
  50. exit