Updated gam oauth create and gam <UserTypeEntity> update serviceaccount

This commit is contained in:
Ross Scroggs
2024-02-26 10:58:25 -08:00
parent 21ca008a47
commit 76d3ead61b
7 changed files with 41 additions and 23 deletions

View File

@@ -10,6 +10,11 @@ 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.70.07
Updated user instructions in `gam oauth create` and `gam <UserTypeEntity> update serviceaccount`
and changed `s` from selecting all scopes to selecting default scopes.
### 6.70.06 ### 6.70.06
Updated `gam info users <UserTypeEntity>` to not include group tree infornation unless option `grouptree` is specified. Updated `gam info users <UserTypeEntity>` to not include group tree infornation unless option `grouptree` is specified.

View File

@@ -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.70.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.70.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
MacOS Sonoma 14.2.1 x86_64 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>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.70.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.70.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
Windows-10-10.0.17134 AMD64 Windows-10-10.0.17134 AMD64

View File

@@ -327,16 +327,16 @@ gam redirect csv ./allUsersFiles.csv multiprocess all users print filelist field
* Delete ACLs with olddomain.com * Delete ACLs with olddomain.com
``` ```
gam redirect stdout ./DeleteOldDomainACLs.csv multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" delete drivefileacl "~id" "id:~~permission.id~~" gam redirect stdout ./DeleteOldDomainACLs.txt multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" delete drivefileacl "~id" "id:~~permission.id~~"
``` ```
* Add user/group ACLs replacing olddomain.com with newdomain.com * Add user/group ACLs replacing olddomain.com with newdomain.com
``` ```
gam config csv_input_row_filter "permission.type:regex:user|group" redirect stdout ./AddNewDomainACLsUserGroupShares.csv multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" create drivefileacl "~id" "~permission.type" "~permission.emailAddress" role "~permission.role" mappermissionsdomain olddomain.com newdomain.com gam config csv_input_row_filter "permission.type:regex:user|group" redirect stdout ./AddNewDomainACLsUserGroupShares.txt multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" create drivefileacl "~id" "~permission.type" "~permission.emailAddress" role "~permission.role" mappermissionsdomain olddomain.com newdomain.com
``` ```
* Add domain ACLs replacing olddomain.com with newdomain.com * Add domain ACLs replacing olddomain.com with newdomain.com
``` ```
gam config csv_input_row_filter "permission.type:regex:domain" redirect stdout ./AddNewDomainACLsDomainShares.csv multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" create drivefileacl "~id" "~permission.type" "~permission.domain" role "~permission.role" allowfilediscovery "~permission.allowFileDiscovery" mappermissionsdomain olddomain.com newdomain.com gam config csv_input_row_filter "permission.type:regex:domain" redirect stdout ./AddNewDomainACLsDomainShares.txt multiprocess redirect stderr stdout csv ./allUsersFiles.csv gam user "~Owner" create drivefileacl "~id" "~permission.type" "~permission.domain" role "~permission.role" allowfilediscovery "~permission.allowFileDiscovery" mappermissionsdomain olddomain.com newdomain.com
``` ```

View File

@@ -3,7 +3,7 @@
Print the current version of Gam with details Print the current version of Gam with details
``` ```
gam version gam version
GAMADV-XTD3 6.70.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.70.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
MacOS Sonoma 14.2.1 x86_64 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 Print the current version of Gam with details and time offset information
``` ```
gam version timeoffset gam version timeoffset
GAMADV-XTD3 6.70.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.70.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
MacOS Sonoma 14.2.1 x86_64 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 Print the current version of Gam with extended details and SSL information
``` ```
gam version extended gam version extended
GAMADV-XTD3 6.70.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource GAMADV-XTD3 6.70.07 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
MacOS Sonoma 14.2.1 x86_64 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 Path: /Users/Admin/bin/gamadv-xtd3
Version Check: Version Check:
Current: 5.35.08 Current: 5.35.08
Latest: 6.70.06 Latest: 6.70.07
echo $? echo $?
1 1
``` ```
@@ -72,7 +72,7 @@ echo $?
Print the current version number without details Print the current version number without details
``` ```
gam version simple gam version simple
6.70.06 6.70.07
``` ```
In Linux/MacOS you can do: In Linux/MacOS you can do:
``` ```
@@ -82,7 +82,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.70.06 - https://github.com/taers232c/GAMADV-XTD3 GAM 6.70.07 - https://github.com/taers232c/GAMADV-XTD3
Ross Scroggs <ross.scroggs@gmail.com> Ross Scroggs <ross.scroggs@gmail.com>
Python 3.12.2 64-bit final Python 3.12.2 64-bit final
MacOS Sonoma 14.2.1 x86_64 MacOS Sonoma 14.2.1 x86_64

View File

@@ -2,6 +2,11 @@
Merged GAM-Team version Merged GAM-Team version
6.70.07
Updated user instructions in `gam oauth create` and `gam <UserTypeEntity> update serviceaccount`
and changed `s` from selecting all scopes to selecting default scopes.
6.70.06 6.70.06
Updated `gam info users <UserTypeEntity>` to not include group tree infornation unless option `grouptree` is specified. Updated `gam info users <UserTypeEntity>` to not include group tree infornation unless option `grouptree` is specified.

View File

@@ -10303,11 +10303,7 @@ def getOAuthClientIDAndSecret():
def getScopesFromUser(scopesList, clientAccess, currentScopes=None): def getScopesFromUser(scopesList, clientAccess, currentScopes=None):
OAUTH2_CMDS = ['s', 'u', 'e', 'c'] OAUTH2_CMDS = ['s', 'u', 'e', 'c']
oauth2_menu = ''' oauth2_menu = ''
Select the authorized scopes by entering a number.
Append an 'r' to grant read-only access or an 'a' to grant action-only access.
'''
numScopes = len(scopesList) numScopes = len(scopesList)
for a_scope in scopesList: for a_scope in scopesList:
oauth2_menu += f"[%%s] %2d) {a_scope['name']}" oauth2_menu += f"[%%s] %2d) {a_scope['name']}"
@@ -10315,10 +10311,18 @@ Append an 'r' to grant read-only access or an 'a' to grant action-only access.
oauth2_menu += f' (supports {" and ".join(a_scope["subscopes"])})' oauth2_menu += f' (supports {" and ".join(a_scope["subscopes"])})'
oauth2_menu += '\n' oauth2_menu += '\n'
oauth2_menu += ''' oauth2_menu += '''
s) Select all scopes Select an unselected scope [ ] by entering a number; yields [*]
u) Unselect all scopes For scopes that support readonly, enter a number and an 'r' to grant read-only access; yields [R]
e) Exit without changes For scopes that support action, enter a number and an 'a' to grant action-only access; yields [A]
c) Continue to authorization Clear read-only access [R] or action-only access [A] from a scope by entering a number; yields [*]
Unselect a selected scope [*] by entering a number; yields [ ]
Select all default scopes by entering an 's'; yields [*] for default scopes, [ ] for others
Unselect all scopes by entering a 'u'; yields [ ] for all scopes
Exit without changes/authorization by entering an 'e'
Continue to authorization by entering a 'c'
'''
if clientAccess:
oauth2_menu += ''' Note, if all scopes are selected, Google will probably generate an authorization error
''' '''
menu = oauth2_menu % tuple(range(numScopes)) menu = oauth2_menu % tuple(range(numScopes))
selectedScopes = ['*'] * numScopes selectedScopes = ['*'] * numScopes
@@ -10368,7 +10372,7 @@ Append an 'r' to grant read-only access or an 'a' to grant action-only access.
for a_scope in scopesList: for a_scope in scopesList:
selectedScopes[i] = ' ' if a_scope.get('offByDefault', False) else '*' selectedScopes[i] = ' ' if a_scope.get('offByDefault', False) else '*'
i += 1 i += 1
prompt = f'Please enter 0-{numScopes-1}[a|r] or {"|".join(OAUTH2_CMDS)}: ' prompt = f'\nPlease enter 0-{numScopes-1}[a|r] or {"|".join(OAUTH2_CMDS)}: '
while True: while True:
os.system(['clear', 'cls'][sys.platform.startswith('win')]) os.system(['clear', 'cls'][sys.platform.startswith('win')])
sys.stdout.write(menu % tuple(selectedScopes)) sys.stdout.write(menu % tuple(selectedScopes))
@@ -10403,8 +10407,10 @@ Append an 'r' to grant read-only access or an 'a' to grant action-only access.
break break
if isinstance(selection, str) and selection in OAUTH2_CMDS: if isinstance(selection, str) and selection in OAUTH2_CMDS:
if selection == 's': if selection == 's':
for i in range(numScopes): i = 0
selectedScopes[i] = '*' for a_scope in scopesList:
selectedScopes[i] = ' ' if a_scope.get('offByDefault', False) else '*'
i += 1
elif selection == 'u': elif selection == 'u':
for i in range(numScopes): for i in range(numScopes):
selectedScopes[i] = ' ' selectedScopes[i] = ' '

View File

@@ -657,10 +657,12 @@ _SVCACCT_SPECIAL_SCOPES = [
{'name': 'Gmail API - Full Access - read only', {'name': 'Gmail API - Full Access - read only',
'api': GMAIL, 'api': GMAIL,
'subscopes': [], 'subscopes': [],
'offByDefault': True,
'scope': 'https://www.googleapis.com/auth/gmail.readonly'}, 'scope': 'https://www.googleapis.com/auth/gmail.readonly'},
{'name': 'Gmail API - Send Messages - including todrive', {'name': 'Gmail API - Send Messages - including todrive',
'api': GMAIL, 'api': GMAIL,
'subscopes': [], 'subscopes': [],
'offByDefault': True,
'scope': GMAIL_SEND_SCOPE}, 'scope': GMAIL_SEND_SCOPE},
{'name': 'Sheets API - todrive', {'name': 'Sheets API - todrive',
'api': SHEETSTD, 'api': SHEETSTD,