From 0d46c1d13a598425678e8b72dcb265c50aaa6ebf Mon Sep 17 00:00:00 2001 From: Jay Lee Date: Thu, 9 Dec 2021 15:03:22 -0500 Subject: [PATCH] Set user preferred language --- .github/workflows/build.yml | 2 +- src/gam/__init__.py | 32 +++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b5ef5ec..21539280 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -262,7 +262,7 @@ jobs: for i in {01..10}; do echo "${newbase}-bulkuser-$i" >> sample.csv; done - $gam create user $newuser firstname GHA lastname $JID password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com gha.jid $JID + $gam create user $newuser firstname GHA lastname $JID password random recoveryphone 12125121110 recoveryemail jay0lee@gmail.com gha.jid $JID languages en+,en-GB- $gam user $gam_user sendemail recipient $newuser subject "test message $newbase" message "GHA test message" $gam user $gam_user sendemail recipient exchange@pdl.jaylee.us subject "test ${tstamp}" message "test message" $gam create group $newgroup name "GHA $JID group" description "This is a description" isarchived true diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 9edc808f..eee4626a 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -6693,13 +6693,18 @@ def getUserAttributes(i, cd, updateCmd): i += 1 continue for language in sys.argv[i].replace(',', ' ').split(): + lang_item = {} + if language[-1] == '+': + language = language[:-1] + lang_item['preference'] = 'preferred' + elif language[-1] == '-': + language = language[:-1] + lang_item['preference'] = 'not_preferred' if language.lower() in LANGUAGE_CODES_MAP: - appendItemToBodyList( - body, 'languages', - {'languageCode': LANGUAGE_CODES_MAP[language.lower()]}) + lang_item['languageCode'] = LANGUAGE_CODES_MAP[language.lower()] else: - appendItemToBodyList(body, 'languages', - {'customLanguage': language}) + lang_item['customLanguage'] = language + appendItemToBodyList(body, 'languages', lang_item) i += 1 elif myarg == 'gender': i += 1 @@ -8839,12 +8844,17 @@ def doGetUserInfo(user_email=None): if 'name' in user and 'familyName' in user['name']: print(f'Last Name: {user["name"]["familyName"]}') if 'languages' in user: - up = 'languageCode' - languages = [row[up] for row in user['languages'] if up in row] - if languages: - print(f'Languages: {",".join(languages)}') - up = 'customLanguage' - languages = [row[up] for row in user['languages'] if up in row] + languages = [] + for language in user['languages']: + if 'languageCode' in language: + lang = language['languageCode'] + if language.get('preference') == 'preferred': + lang += '+' + elif language.get('preference') == 'not_preferred': + lang += '-' + else: + lang = language.get('customLanguage') + languages.append(lang) if languages: print(f'Custom Languages: {",".join(languages)}') if 'isAdmin' in user: