From 3088570449793f47eb4b15cad41d19ed56d0ac00 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Sun, 7 Jan 2024 10:29:15 -0800 Subject: [PATCH] Handle `gam delete message` permission error --- docs/GamUpdates.md | 13 +++++++++++++ docs/How-to-Upgrade-from-Standard-GAM.md | 4 ++-- docs/Users.md | 2 +- docs/Version-and-Help.md | 12 ++++++------ src/GamUpdate.txt | 13 +++++++++++++ src/gam/__init__.py | 5 +++-- 6 files changed, 38 insertions(+), 11 deletions(-) diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index bf4e4eb30..95286b253 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -11,6 +11,19 @@ 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.67.07 + +Updated `gam delete message` to handle this error: +``` +ERROR: 403: permissionDenied - Insufficient Permission +``` +when the following service account scopes are selected: + +``` +[ ] 24) Gmail API - Full Access (Labels, Messages) +[*] 25) Gmail API - Full Access (Labels, Messages) except delete message +``` + ### 6.67.06 Updated commands that create ACLs to handle the following error: diff --git a/docs/How-to-Upgrade-from-Standard-GAM.md b/docs/How-to-Upgrade-from-Standard-GAM.md index 1dc4c6fa7..985414507 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.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.10.8 64-bit final MacOS High Sierra 10.13.6 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.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.0 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/docs/Users.md b/docs/Users.md index 1695f44e8..1a1374ca9 100644 --- a/docs/Users.md +++ b/docs/Users.md @@ -1047,7 +1047,7 @@ By default, Gam displays fields that only an adminstrator can view. By default, Gam displays only the primary email address for each user. * `allfields|basic` - Display all non custom schema fields for each user. -* `full` - Display all non custom schema fields and all custom schema fields for each user. +* `full` - Display all fields including all custom schema fields for each user. * `* [fields ]` - Only display selected fields. * `schemas|custom all` - Get custom schema information for all schemas. * `schemas|custom ` - Get custom schema information for a selected list of schemas. diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index c17ac063f..bbff7dec8 100644 --- a/docs/Version-and-Help.md +++ b/docs/Version-and-Help.md @@ -4,7 +4,7 @@ Print the current version of Gam with details ``` gam version -GAMADV-XTD3 6.67.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.0 64-bit final MacOS Monterey 12.7 x86_64 @@ -16,7 +16,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.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.0 64-bit final MacOS Monterey 12.7 x86_64 @@ -28,7 +28,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.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.0 64-bit final MacOS Monterey 12.7 x86_64 @@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gamadv-xtd3 Version Check: Current: 5.35.08 - Latest: 6.67.06 + Latest: 6.67.07 echo $? 1 ``` @@ -73,7 +73,7 @@ echo $? Print the current version number without details ``` gam version simple -6.67.06 +6.67.07 ``` In Linux/MacOS you can do: ``` @@ -83,7 +83,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 6.67.06 - https://github.com/taers232c/GAMADV-XTD3 +GAM 6.67.07 - https://github.com/taers232c/GAMADV-XTD3 Ross Scroggs Python 3.12.0 64-bit final MacOS Monterey 12.7 x86_64 diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index eee477ab3..01b327697 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -2,6 +2,19 @@ Merged GAM-Team version +6.67.07 + +Updated `gam delete message` to handle this error: +``` +ERROR: 403: permissionDenied - Insufficient Permission +``` +when the following service account scopes are selected: + +``` +[ ] 24) Gmail API - Full Access (Labels, Messages) +[*] 25) Gmail API - Full Access (Labels, Messages) except delete message +``` + 6.67.06 Updated commands that create ACLs to handle the following error: diff --git a/src/gam/__init__.py b/src/gam/__init__.py index e2b72caa4..174e350cf 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -65653,14 +65653,15 @@ def _batchDeleteModifyMessages(gmail, function, user, jcount, messageIds, body): idsList += ',...' try: callGAPI(gmail.users().messages(), function, - throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.INVALID_MESSAGE_ID, GAPI.INVALID, GAPI.FAILED_PRECONDITION], + throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.INVALID_MESSAGE_ID, GAPI.INVALID, + GAPI.FAILED_PRECONDITION, GAPI.PERMISSION_DENIED], userId='me', body=body) for messageId in body['ids']: mcount += 1 entityActionPerformed([Ent.USER, user, entityType, messageId], mcount, jcount) except (GAPI.serviceNotAvailable, GAPI.badRequest): mcount += bcount - except GAPI.invalid as e: + except (GAPI.invalid, GAPI.permissionDenied) as e: entityActionFailedWarning([Ent.USER, user, entityType, idsList], f'{str(e)} ({mcount+1}-{mcount+bcount}/{jcount})') mcount += bcount except GAPI.invalidMessageId: