v-change-user-language 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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 defenition
  10. user=$1
  11. language=$2
  12. # Includes
  13. source $VESTA/conf/vesta.conf
  14. source $VESTA/func/main.sh
  15. is_language_valid() {
  16. if [ ! -e "$VESTA/web/inc/i18n/$language.php" ]; then
  17. echo "Error: language $language not exist"
  18. log_event "$E_NOTEXIST $EVENT"
  19. exit $E_NOTEXIST
  20. fi
  21. }
  22. #----------------------------------------------------------#
  23. # Verifications #
  24. #----------------------------------------------------------#
  25. check_args '2' "$#" 'USER LANGUAGE'
  26. validate_format 'user' 'language'
  27. is_object_valid 'user' 'USER' "$user"
  28. is_object_unsuspended 'user' 'USER' "$user"
  29. is_language_valid $language
  30. #----------------------------------------------------------#
  31. # Action #
  32. #----------------------------------------------------------#
  33. # Change language
  34. if [ -z "$(grep LANGUAGE $USER_DATA/user.conf)" ]; then
  35. sed -i "s/^TIME/LANGUAGE='$language'\nTIME/g" $USER_DATA/user.conf
  36. else
  37. update_user_value "$user" '$LANGUAGE' "$language"
  38. fi
  39. exit
  40. # Changing user contact email
  41. old_email=$(get_user_value '$CONTACT')
  42. update_user_value "$user" '$CONTACT' "$email"
  43. pw_str=$(grep -n "^$user:" /etc/passwd)
  44. str=$(echo "$pw_str" | cut -f 1 -d :)
  45. sed -i "$str s/$old_email/$email/g" /etc/passwd
  46. #----------------------------------------------------------#
  47. # Vesta #
  48. #----------------------------------------------------------#
  49. # Logging
  50. log_history "changed contact email to $email"
  51. log_event "$OK" "$EVENT"
  52. exit