v-change-user-language 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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. echo "adding LANG"
  36. sed -i "s/^TIME/LANGUAGE='$language'\nTIME/g" $USER_DATA/user.conf
  37. else
  38. update_user_value "$user" '$LANGUAGE' "$language"
  39. echo "changinx LANG"
  40. fi
  41. exit
  42. # Changing user contact email
  43. old_email=$(get_user_value '$CONTACT')
  44. update_user_value "$user" '$CONTACT' "$email"
  45. pw_str=$(grep -n "^$user:" /etc/passwd)
  46. str=$(echo "$pw_str" | cut -f 1 -d :)
  47. sed -i "$str s/$old_email/$email/g" /etc/passwd
  48. #----------------------------------------------------------#
  49. # Vesta #
  50. #----------------------------------------------------------#
  51. # Logging
  52. log_history "changed contact email to $email"
  53. log_event "$OK" "$EVENT"
  54. exit