Sort output by Shared Drive name

This commit is contained in:
Ross Scroggs
2025-06-16 08:47:14 -07:00
parent 74924c9c0e
commit f1713ec685
3 changed files with 20 additions and 15 deletions

View File

@@ -5031,18 +5031,18 @@ gam <UserTypeEntity> delete permissions <SharedDriveEntityAdmin> <DriveFilePermi
In these commands, the Google administrator named in oauth2.txt is used. In these commands, the Google administrator named in oauth2.txt is used.
gam copy teamdriveacls <SharedDriveEntity> to <SharedDriveEntity> gam copy shareddriveacls <SharedDriveEntity> to <SharedDriveEntity>
[adminaccess|asadmin] [adminaccess|asadmin]
[showpermissionsmessages [<Boolean>]] [showpermissionsmessages [<Boolean>]]
[excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>] [excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>]
(mappermissionsdomain <DomainName> <DomainName>)* (mappermissionsdomain <DomainName> <DomainName>)*
gam sync teamdriveacls <SharedDriveEntity> with <SharedDriveEntity> gam sync shareddriveacls <SharedDriveEntity> with <SharedDriveEntity>
[adminaccess|asadmin] [adminaccess|asadmin]
[showpermissionsmessages [<Boolean>]] [showpermissionsmessages [<Boolean>]]
[excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>] [excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>]
(mappermissionsdomain <DomainName> <DomainName>)* (mappermissionsdomain <DomainName> <DomainName>)*
gam print teamdriveacls [todrive <ToDriveAttribute>*] gam print shareddriveacls [todrive <ToDriveAttribute>*]
[teamdriveadminquery|query <QueryTeamDrive>] [teamdriveadminquery|query <QueryTeamDrive>]
[matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>] [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
[user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)* [user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)*
@@ -5050,7 +5050,7 @@ gam print teamdriveacls [todrive <ToDriveAttribute>*]
[oneitemperrow] [<DrivePermissionsFieldName>*|(fields <DrivePermissionsFieldNameList>)] [oneitemperrow] [<DrivePermissionsFieldName>*|(fields <DrivePermissionsFieldNameList>)]
(addcsvdata <FieldName> <String>)* (addcsvdata <FieldName> <String>)*
[formatjson [quotechar <Character>]] [formatjson [quotechar <Character>]]
gam show teamdriveacls gam show shareddriveacls
[teamdriveadminquery|query <QueryTeamDrive>] [teamdriveadminquery|query <QueryTeamDrive>]
[matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>] [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
[user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)* [user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)*
@@ -5060,18 +5060,18 @@ gam show teamdriveacls
In these commands, you specify an administrator and then indicate that you want domain administrator access with the adminaccess option. In these commands, you specify an administrator and then indicate that you want domain administrator access with the adminaccess option.
gam <UserTypeEntity> copy teamdriveacls <SharedDriveEntity> to <SharedDriveEntity> gam <UserTypeEntity> copy shareddriveacls <SharedDriveEntity> to <SharedDriveEntity>
[adminaccess|asadmin] [adminaccess|asadmin]
[showpermissionsmessages [<Boolean>]] [showpermissionsmessages [<Boolean>]]
[excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>] [excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>]
(mappermissionsdomain <DomainName> <DomainName>)* (mappermissionsdomain <DomainName> <DomainName>)*
gam <UserTypeEntity> sync teamdriveacls <SharedDriveEntity> with <SharedDriveEntity> gam <UserTypeEntity> sync shareddriveacls <SharedDriveEntity> with <SharedDriveEntity>
[adminaccess|asadmin] [adminaccess|asadmin]
[showpermissionsmessages [<Boolean>]] [showpermissionsmessages [<Boolean>]]
[excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>] [excludepermissionsfromdomains|includepermissionsfromdomains <DomainNameList>]
(mappermissionsdomain <DomainName> <DomainName>)* (mappermissionsdomain <DomainName> <DomainName>)*
gam <UserTypeEntity> print teamdriveacls [todrive <ToDriveAttribute>*] gam <UserTypeEntity> print shareddriveacls [todrive <ToDriveAttribute>*]
[adminaccess|asadmin] [teamdriveadminquery|query <QueryTeamDrive>] [adminaccess|asadmin] [teamdriveadminquery|query <QueryTeamDrive>]
[matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>] [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
[user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)* [user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)*
@@ -5080,7 +5080,7 @@ gam <UserTypeEntity> print teamdriveacls [todrive <ToDriveAttribute>*]
[shownopermissionsdrives false|true|only] [shownopermissionsdrives false|true|only]
(addcsvdata <FieldName> <String>)* (addcsvdata <FieldName> <String>)*
[formatjson [quotechar <Character>]] [formatjson [quotechar <Character>]]
gam <UserTypeEntity> show teamdriveacls gam <UserTypeEntity> show shareddriveacls
[adminaccess|asadmin] [teamdriveadminquery|query <QueryTeamDrive>] [adminaccess|asadmin] [teamdriveadminquery|query <QueryTeamDrive>]
[matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>] [matchname <REMatchPattern>] [orgunit|org|ou <OrgUnitPath>]
[user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)* [user|group <EmailAddress> [checkgroups]] (role|roles <SharedDriveACLRoleList>)*

View File

@@ -1,3 +1,8 @@
7.09.06
Upddated `gam print|show shareddrives', `gam print|show shareddriveacls', `gam print shareddriveorganizers`
to display the Shared Drives in ascending name order; the API returns them in an unidentifiable order.
7.09.05 7.09.05
Improved output of `gam info|show chromeschemas [std]` to more accurately display the schemas. Improved output of `gam info|show chromeschemas [std]` to more accurately display the schemas.

View File

@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
""" """
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>' __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
__version__ = '7.09.05' __version__ = '7.09.06'
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
#pylint: disable=wrong-import-position #pylint: disable=wrong-import-position
@@ -65775,13 +65775,13 @@ def printShowSharedDrives(users, useDomainAdminAccess=False):
entityPerformActionNumItems([Ent.USER, user], jcount, Ent.SHAREDDRIVE, i, count) entityPerformActionNumItems([Ent.USER, user], jcount, Ent.SHAREDDRIVE, i, count)
Ind.Increment() Ind.Increment()
j = 0 j = 0
for shareddrive in matchedFeed: for shareddrive in sorted(matchedFeed, key=lambda k: k['name']):
j += 1 j += 1
shareddrive = stripNonShowFields(shareddrive) shareddrive = stripNonShowFields(shareddrive)
_showSharedDrive(user, shareddrive, j, jcount, FJQC) _showSharedDrive(user, shareddrive, j, jcount, FJQC)
Ind.Decrement() Ind.Decrement()
else: else:
for shareddrive in matchedFeed: for shareddrive in sorted(matchedFeed, key=lambda k: k['name']):
shareddrive = stripNonShowFields(shareddrive) shareddrive = stripNonShowFields(shareddrive)
if FJQC.formatJSON: if FJQC.formatJSON:
row = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name']} row = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name']}
@@ -66156,7 +66156,7 @@ def printShowSharedDriveACLs(users, useDomainAdminAccess=False):
entityPerformActionNumItems([Ent.USER, user], jcount, Ent.SHAREDDRIVE, i, count) entityPerformActionNumItems([Ent.USER, user], jcount, Ent.SHAREDDRIVE, i, count)
Ind.Increment() Ind.Increment()
j = 0 j = 0
for shareddrive in matchFeed: for shareddrive in sorted(matchFeed, key=lambda k: k['name']):
j += 1 j += 1
if not FJQC.formatJSON: if not FJQC.formatJSON:
_showDriveFilePermissions(Ent.SHAREDDRIVE, f'{shareddrive["name"]} ({shareddrive["id"]}) - {shareddrive["createdTime"]}', _showDriveFilePermissions(Ent.SHAREDDRIVE, f'{shareddrive["name"]} ({shareddrive["id"]}) - {shareddrive["createdTime"]}',
@@ -66170,7 +66170,7 @@ def printShowSharedDriveACLs(users, useDomainAdminAccess=False):
Ind.Decrement() Ind.Decrement()
elif matchFeed: elif matchFeed:
if oneItemPerRow: if oneItemPerRow:
for shareddrive in matchFeed: for shareddrive in sorted(matchFeed, key=lambda k: k['name']):
baserow = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name'], 'createdTime': shareddrive['createdTime']} baserow = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name'], 'createdTime': shareddrive['createdTime']}
if addCSVData: if addCSVData:
baserow.update(addCSVData) baserow.update(addCSVData)
@@ -66191,7 +66191,7 @@ def printShowSharedDriveACLs(users, useDomainAdminAccess=False):
baserow['JSON'] = json.dumps({}) baserow['JSON'] = json.dumps({})
csvPF.WriteRowNoFilter(baserow) csvPF.WriteRowNoFilter(baserow)
else: else:
for shareddrive in matchFeed: for shareddrive in sorted(matchFeed, key=lambda k: k['name']):
baserow = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name'], 'createdTime': shareddrive['createdTime']} baserow = {'User': user, 'id': shareddrive['id'], 'name': shareddrive['name'], 'createdTime': shareddrive['createdTime']}
if addCSVData: if addCSVData:
baserow.update(addCSVData) baserow.update(addCSVData)
@@ -66392,7 +66392,7 @@ def printSharedDriveOrganizers(users, useDomainAdminAccess=False):
pass pass
if len(matchFeed) == 0: if len(matchFeed) == 0:
setSysExitRC(NO_ENTITIES_FOUND_RC) setSysExitRC(NO_ENTITIES_FOUND_RC)
for shareddrive in matchFeed: for shareddrive in sorted(matchFeed, key=lambda k: k['name']):
row = {'id': shareddrive['id'], 'name': shareddrive['name'], row = {'id': shareddrive['id'], 'name': shareddrive['name'],
'organizers': delimiter.join(shareddrive['organizers']), 'organizers': delimiter.join(shareddrive['organizers']),
'createdTime': shareddrive['createdTime']} 'createdTime': shareddrive['createdTime']}