diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index fd311d56..f0e737e8 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -11,6 +11,17 @@ Add the `-s` option to the end of the above commands to suppress creating the `g See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation +### 6.68.00 + +Fixed bug introduced in 6.67.35 that caused a command error like the following or would +not properly match `type|nottype ` and `role|notrole `. + +``` +ERROR: permission attribute allowfilediscovery/withlink not allowed with type {'a', 'y', 'e', 'o', 'n'} +``` + +My sincere apologies. + ### 6.67.39 Added option `wait ` to `gam create datatransfer` that causes GAM to wait diff --git a/docs/How-to-Upgrade-from-Standard-GAM.md b/docs/How-to-Upgrade-from-Standard-GAM.md index b33b52dd..df58b69d 100644 --- a/docs/How-to-Upgrade-from-Standard-GAM.md +++ b/docs/How-to-Upgrade-from-Standard-GAM.md @@ -334,7 +334,7 @@ writes the credentials into the file oauth2.txt. admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found -GAMADV-XTD3 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.1 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -1002,7 +1002,7 @@ writes the credentials into the file oauth2.txt. C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt C:\GAMADV-XTD3>gam version WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found -GAMADV-XTD3 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.1 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index 7dc74b48..6d902bbd 100644 --- a/docs/Version-and-Help.md +++ b/docs/Version-and-Help.md @@ -3,7 +3,7 @@ Print the current version of Gam with details ``` gam version -GAMADV-XTD3 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.1 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00 Print the current version of Gam with details and time offset information ``` gam version timeoffset -GAMADV-XTD3 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.1 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second Print the current version of Gam with extended details and SSL information ``` gam version extended -GAMADV-XTD3 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.1 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gamadv-xtd3 Version Check: Current: 5.35.08 - Latest: 6.67.39 + Latest: 6.68.00 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -6.67.39 +6.68.00 ``` In Linux/MacOS you can do: ``` @@ -82,7 +82,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 6.67.39 - https://github.com/taers232c/GAMADV-XTD3 +GAM 6.68.00 - https://github.com/taers232c/GAMADV-XTD3 Ross Scroggs Python 3.12.1 64-bit final MacOS Sonoma 14.2.1 x86_64 diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 14545377..b7e461da 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -2,6 +2,17 @@ Merged GAM-Team version +6.68.00 + +Fixed `` bug introduced in 6.67.35 that caused a command error like the following or would +not properly match `type|nottype ` and `role|notrole `. + +``` +ERROR: permission attribute allowfilediscovery/withlink not allowed with type {'a', 'y', 'e', 'o', 'n'} +``` + +My sincere apologies. + 6.67.39 Added option `wait ` to `gam create datatransfer` that causes GAM to wait diff --git a/src/gam/__init__.py b/src/gam/__init__.py index bb9538d4..755e20f9 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -52520,14 +52520,18 @@ def addFilePathsToInfo(drive, fileTree, fileEntryInfo, filePathInfo, addParentsT fileEntryInfo['paths'].append(path) def _validatePermissionOwnerType(location, body): - if body.get('role', '') == 'owner' and body['type'] != 'user': - Cmd.SetLocation(location) - usageErrorExit(Msg.INVALID_PERMISSION_ATTRIBUTE_TYPE.format(f'role {body["role"]}', body['type'])) + if 'role' in body: + badTypes = body['type']-{'user'} + if 'owner' in body['role'] and badTypes: + Cmd.SetLocation(location) + usageErrorExit(Msg.INVALID_PERMISSION_ATTRIBUTE_TYPE.format('role owner', ','.join(badTypes))) def _validatePermissionAttributes(myarg, location, body, field, validTypes): - if field in body and body['type'] not in validTypes: - Cmd.SetLocation(location-1) - usageErrorExit(Msg.INVALID_PERMISSION_ATTRIBUTE_TYPE.format(myarg, body['type'])) + if field in body: + badTypes = body['type']-validTypes + if badTypes: + Cmd.SetLocation(location-1) + usageErrorExit(Msg.INVALID_PERMISSION_ATTRIBUTE_TYPE.format(myarg, ','.join(badTypes))) DRIVEFILE_ACL_ROLES_MAP = { 'commenter': 'commenter', @@ -59752,13 +59756,13 @@ def claimOwnership(users): try: if entityType not in {Ent.DRIVE_SHORTCUT, Ent.DRIVE_FILE_SHORTCUT, Ent.DRIVE_FOLDER_SHORTCUT}: if changeParents and 'addParents' in fileInfo: - callGAPI(drive.files(), 'update', - throwReasons=GAPI.DRIVE_ACCESS_THROW_REASONS+[GAPI.CANNOT_ADD_PARENT, GAPI.INSUFFICIENT_PARENT_PERMISSIONS], - fileId=xferFileId, addParents=fileInfo['addParents'], fields='', supportsAllDrives=True) - action = Act.Get() - Act.Set(Act.ADD) - entityModifierNewValueItemValueListActionPerformed(kvList, Act.MODIFIER_TO, None, [Ent.DRIVE_FOLDER, fileInfo['addParents']], l, lcount) - Act.Set(action) + callGAPI(drive.files(), 'update', + throwReasons=GAPI.DRIVE_ACCESS_THROW_REASONS+[GAPI.CANNOT_ADD_PARENT, GAPI.INSUFFICIENT_PARENT_PERMISSIONS], + fileId=xferFileId, addParents=fileInfo['addParents'], fields='', supportsAllDrives=True) + action = Act.Get() + Act.Set(Act.ADD) + entityModifierNewValueItemValueListActionPerformed(kvList, Act.MODIFIER_TO, None, [Ent.DRIVE_FOLDER, fileInfo['addParents']], l, lcount) + Act.Set(action) else: if changeParents and 'addParents' in fileInfo and entityType != Ent.DRIVE_SHORTCUT: body = {'name': fileInfo['name'], 'mimeType': MIMETYPE_GA_SHORTCUT, @@ -66890,9 +66894,9 @@ def printShowMessagesThreads(users, entityType): if (not attachmentNamePattern) or attachmentNamePattern.match(attachmentName): charset = '' if part['mimeType'] == 'text/plain': - mg = CHARSET_NAME_PATTERN.match(header['value']) - if mg: - charset = mg.group(1) + mg = CHARSET_NAME_PATTERN.match(header['value']) + if mg: + charset = mg.group(1) if (part['mimeType'] == 'text/plain' and not noshow_text_plain) or save_attachments: try: result = callGAPI(gmail.users().messages().attachments(), 'get', @@ -67050,9 +67054,9 @@ def printShowMessagesThreads(users, entityType): attachmentName = mg.group(1) charset = '' if part['mimeType'] == 'text/plain': - mg = CHARSET_NAME_PATTERN.match(header['value']) - if mg: - charset = mg.group(1) + mg = CHARSET_NAME_PATTERN.match(header['value']) + if mg: + charset = mg.group(1) if (not attachmentNamePattern) or attachmentNamePattern.match(attachmentName): attachments.append((attachmentName, part['mimeType'], part['body']['size'], charset)) break