mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
Handle Gmail sharing settings permission errors
This commit is contained in:
@@ -11,6 +11,24 @@ 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
|
See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation
|
||||||
|
|
||||||
|
### 6.67.05
|
||||||
|
|
||||||
|
Updated the following commands:
|
||||||
|
```
|
||||||
|
gam <UserTypeEntity> create|delete|update delegate
|
||||||
|
gam <UserTypeEntity> forward
|
||||||
|
gam <UserTypeEntity> create|delete forwardingaddresses
|
||||||
|
gam <UserTypeEntity> create|delete sendas
|
||||||
|
```
|
||||||
|
to handle this error:
|
||||||
|
```
|
||||||
|
ERROR: 403: permissionDenied - Insufficient Permission
|
||||||
|
```
|
||||||
|
when the following serice account scope is not enabled:
|
||||||
|
```
|
||||||
|
[ ] 28) Gmail API - Sharing Settings (Delegates, Forwarding, SendAs) - write
|
||||||
|
```
|
||||||
|
|
||||||
### 6.67.04
|
### 6.67.04
|
||||||
|
|
||||||
Updated user attribute `replace <Tag> <UserReplacement>` to allow `field:photourl` which allows
|
Updated user attribute `replace <Tag> <UserReplacement>` to allow `field:photourl` which allows
|
||||||
|
|||||||
@@ -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$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||||
admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version
|
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
|
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.04 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.67.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.10.8 64-bit final
|
Python 3.10.8 64-bit final
|
||||||
MacOS High Sierra 10.13.6 x86_64
|
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>del C:\GAMConfig\oauth2.txt
|
||||||
C:\GAMADV-XTD3>gam version
|
C:\GAMADV-XTD3>gam version
|
||||||
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found
|
||||||
GAMADV-XTD3 6.67.04 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.67.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.0 64-bit final
|
Python 3.12.0 64-bit final
|
||||||
Windows-10-10.0.17134 AMD64
|
Windows-10-10.0.17134 AMD64
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
Print the current version of Gam with details
|
Print the current version of Gam with details
|
||||||
```
|
```
|
||||||
gam version
|
gam version
|
||||||
GAMADV-XTD3 6.67.04 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.67.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.0 64-bit final
|
Python 3.12.0 64-bit final
|
||||||
MacOS Monterey 12.7 x86_64
|
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
|
Print the current version of Gam with details and time offset information
|
||||||
```
|
```
|
||||||
gam version timeoffset
|
gam version timeoffset
|
||||||
GAMADV-XTD3 6.67.04 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.67.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.0 64-bit final
|
Python 3.12.0 64-bit final
|
||||||
MacOS Monterey 12.7 x86_64
|
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
|
Print the current version of Gam with extended details and SSL information
|
||||||
```
|
```
|
||||||
gam version extended
|
gam version extended
|
||||||
GAMADV-XTD3 6.67.04 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
GAMADV-XTD3 6.67.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.0 64-bit final
|
Python 3.12.0 64-bit final
|
||||||
MacOS Monterey 12.7 x86_64
|
MacOS Monterey 12.7 x86_64
|
||||||
@@ -65,7 +65,7 @@ MacOS High Sierra 10.13.6 x86_64
|
|||||||
Path: /Users/Admin/bin/gamadv-xtd3
|
Path: /Users/Admin/bin/gamadv-xtd3
|
||||||
Version Check:
|
Version Check:
|
||||||
Current: 5.35.08
|
Current: 5.35.08
|
||||||
Latest: 6.67.04
|
Latest: 6.67.05
|
||||||
echo $?
|
echo $?
|
||||||
1
|
1
|
||||||
```
|
```
|
||||||
@@ -73,7 +73,7 @@ echo $?
|
|||||||
Print the current version number without details
|
Print the current version number without details
|
||||||
```
|
```
|
||||||
gam version simple
|
gam version simple
|
||||||
6.67.04
|
6.67.05
|
||||||
```
|
```
|
||||||
In Linux/MacOS you can do:
|
In Linux/MacOS you can do:
|
||||||
```
|
```
|
||||||
@@ -83,7 +83,7 @@ echo $VER
|
|||||||
Print the current version of Gam and address of this Wiki
|
Print the current version of Gam and address of this Wiki
|
||||||
```
|
```
|
||||||
gam help
|
gam help
|
||||||
GAM 6.67.04 - https://github.com/taers232c/GAMADV-XTD3
|
GAM 6.67.05 - https://github.com/taers232c/GAMADV-XTD3
|
||||||
Ross Scroggs <ross.scroggs@gmail.com>
|
Ross Scroggs <ross.scroggs@gmail.com>
|
||||||
Python 3.12.0 64-bit final
|
Python 3.12.0 64-bit final
|
||||||
MacOS Monterey 12.7 x86_64
|
MacOS Monterey 12.7 x86_64
|
||||||
|
|||||||
@@ -2,6 +2,24 @@
|
|||||||
|
|
||||||
Merged GAM-Team version
|
Merged GAM-Team version
|
||||||
|
|
||||||
|
6.67.05
|
||||||
|
|
||||||
|
Updated the following commands:
|
||||||
|
```
|
||||||
|
gam <UserTypeEntity> create|delete|update delegate
|
||||||
|
gam <UserTypeEntity> forward
|
||||||
|
gam <UserTypeEntity> create|delete forwardingaddresses
|
||||||
|
gam <UserTypeEntity> create|delete sendas
|
||||||
|
```
|
||||||
|
to handle this error:
|
||||||
|
```
|
||||||
|
ERROR: 403: permissionDenied - Insufficient Permission
|
||||||
|
```
|
||||||
|
when the following serice account scope is not enabled:
|
||||||
|
```
|
||||||
|
[ ] 28) Gmail API - Sharing Settings (Delegates, Forwarding, SendAs) - write
|
||||||
|
```
|
||||||
|
|
||||||
6.67.04
|
6.67.04
|
||||||
|
|
||||||
Updated user attribute `replace <Tag> <UserReplacement>` to allow `field:photourl` which allows
|
Updated user attribute `replace <Tag> <UserReplacement>` to allow `field:photourl` which allows
|
||||||
|
|||||||
@@ -68130,10 +68130,10 @@ def setForward(users):
|
|||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
result = callGAPI(gmail.users().settings(), 'updateAutoForwarding',
|
result = callGAPI(gmail.users().settings(), 'updateAutoForwarding',
|
||||||
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.FAILED_PRECONDITION, GAPI.INVALID],
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.INVALID, GAPI.FAILED_PRECONDITION, GAPI.PERMISSION_DENIED],
|
||||||
userId='me', body=body)
|
userId='me', body=body)
|
||||||
_showForward(user, i, count, result)
|
_showForward(user, i, count, result)
|
||||||
except (GAPI.failedPrecondition, GAPI.invalid) as e:
|
except (GAPI.invalid, GAPI.failedPrecondition, GAPI.permissionDenied) as e:
|
||||||
if enable:
|
if enable:
|
||||||
entityActionFailedWarning([Ent.USER, user, Ent.FORWARDING_ADDRESS, body['emailAddress']], str(e), i, count)
|
entityActionFailedWarning([Ent.USER, user, Ent.FORWARDING_ADDRESS, body['emailAddress']], str(e), i, count)
|
||||||
else:
|
else:
|
||||||
@@ -68205,13 +68205,13 @@ def _processForwardingAddress(user, i, count, emailAddress, j, jcount, gmail, fu
|
|||||||
try:
|
try:
|
||||||
result = callGAPI(gmail.users().settings().forwardingAddresses(), function,
|
result = callGAPI(gmail.users().settings().forwardingAddresses(), function,
|
||||||
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.ALREADY_EXISTS, GAPI.DUPLICATE,
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.ALREADY_EXISTS, GAPI.DUPLICATE,
|
||||||
GAPI.INVALID_ARGUMENT, GAPI.FAILED_PRECONDITION],
|
GAPI.INVALID_ARGUMENT, GAPI.FAILED_PRECONDITION, GAPI.PERMISSION_DENIED],
|
||||||
userId='me', **kwargs)
|
userId='me', **kwargs)
|
||||||
if function == 'get':
|
if function == 'get':
|
||||||
_showForwardingAddress(j, count, result)
|
_showForwardingAddress(j, count, result)
|
||||||
else:
|
else:
|
||||||
entityActionPerformed([Ent.USER, user, Ent.FORWARDING_ADDRESS, emailAddress], j, jcount)
|
entityActionPerformed([Ent.USER, user, Ent.FORWARDING_ADDRESS, emailAddress], j, jcount)
|
||||||
except (GAPI.notFound, GAPI.alreadyExists, GAPI.duplicate, GAPI.invalidArgument, GAPI.failedPrecondition) as e:
|
except (GAPI.notFound, GAPI.alreadyExists, GAPI.duplicate, GAPI.invalidArgument, GAPI.failedPrecondition, GAPI.permissionDenied) as e:
|
||||||
entityActionFailedWarning([Ent.USER, user, Ent.FORWARDING_ADDRESS, emailAddress], str(e), j, jcount)
|
entityActionFailedWarning([Ent.USER, user, Ent.FORWARDING_ADDRESS, emailAddress], str(e), j, jcount)
|
||||||
except (GAPI.serviceNotAvailable, GAPI.badRequest):
|
except (GAPI.serviceNotAvailable, GAPI.badRequest):
|
||||||
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
||||||
@@ -68548,14 +68548,14 @@ def _processSendAs(user, i, count, entityType, emailAddress, j, jcount, gmail, f
|
|||||||
result = callGAPI(gmail.users().settings().sendAs(), function,
|
result = callGAPI(gmail.users().settings().sendAs(), function,
|
||||||
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.ALREADY_EXISTS, GAPI.DUPLICATE,
|
throwReasons=GAPI.GMAIL_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.ALREADY_EXISTS, GAPI.DUPLICATE,
|
||||||
GAPI.CANNOT_DELETE_PRIMARY_SENDAS, GAPI.INVALID_ARGUMENT,
|
GAPI.CANNOT_DELETE_PRIMARY_SENDAS, GAPI.INVALID_ARGUMENT,
|
||||||
GAPI.FAILED_PRECONDITION],
|
GAPI.FAILED_PRECONDITION, GAPI.PERMISSION_DENIED],
|
||||||
userId='me', **kwargs)
|
userId='me', **kwargs)
|
||||||
if function == 'get':
|
if function == 'get':
|
||||||
_showSendAs(result, j, jcount, sigReplyFormat, verifyOnly)
|
_showSendAs(result, j, jcount, sigReplyFormat, verifyOnly)
|
||||||
else:
|
else:
|
||||||
entityActionPerformed([Ent.USER, user, entityType, emailAddress], j, jcount)
|
entityActionPerformed([Ent.USER, user, entityType, emailAddress], j, jcount)
|
||||||
except (GAPI.notFound, GAPI.alreadyExists, GAPI.duplicate,
|
except (GAPI.notFound, GAPI.alreadyExists, GAPI.duplicate,
|
||||||
GAPI.cannotDeletePrimarySendAs, GAPI.invalidArgument, GAPI.failedPrecondition) as e:
|
GAPI.cannotDeletePrimarySendAs, GAPI.invalidArgument, GAPI.failedPrecondition, GAPI.permissionDenied) as e:
|
||||||
entityActionFailedWarning([Ent.USER, user, entityType, emailAddress], str(e), j, jcount)
|
entityActionFailedWarning([Ent.USER, user, entityType, emailAddress], str(e), j, jcount)
|
||||||
except (GAPI.serviceNotAvailable, GAPI.badRequest):
|
except (GAPI.serviceNotAvailable, GAPI.badRequest):
|
||||||
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
entityServiceNotApplicableWarning(Ent.USER, user, i, count)
|
||||||
|
|||||||
Reference in New Issue
Block a user