mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 12:21:35 +00:00
Updated option showlastmodification to gam <UserTypeEntity> print|show filecounts
This commit is contained in:
@@ -10,6 +10,14 @@ Add the `-s` option to the end of the above commands to suppress creating the `g
|
|||||||
|
|
||||||
See [Downloads-Installs-GAM7](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
See [Downloads-Installs-GAM7](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads-Installs) for Windows or other options, including manual installation
|
||||||
|
|
||||||
|
### 7.00.12
|
||||||
|
|
||||||
|
Updated option `showlastmodification` to `gam <UserTypeEntity> print|show filecounts` to handle
|
||||||
|
the case where all users owning files are suspended. In this case the `lastModifyingUser` column
|
||||||
|
will show the user's display name as the API doesn't return the user's email address.
|
||||||
|
|
||||||
|
Updated support for `Folders with limited access`; this is a work in progress.
|
||||||
|
|
||||||
### 7.00.11
|
### 7.00.11
|
||||||
|
|
||||||
Updated to Python 3.12.7 where possible.
|
Updated to Python 3.12.7 where possible.
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
admin@server:/Users/admin$ rm -f /Users/admin/GAMConfig/oauth2.txt
|
||||||
admin@server:/Users/admin$ gam version
|
admin@server:/Users/admin$ 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
|
||||||
GAM 7.00.11 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.00.12 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.6 64-bit final
|
Python 3.12.6 64-bit final
|
||||||
MacOS Sonoma 14.5 x86_64
|
MacOS Sonoma 14.5 x86_64
|
||||||
@@ -923,7 +923,7 @@ writes the credentials into the file oauth2.txt.
|
|||||||
C:\>del C:\GAMConfig\oauth2.txt
|
C:\>del C:\GAMConfig\oauth2.txt
|
||||||
C:\>gam version
|
C:\>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
|
||||||
GAM7 7.00.11 - https://github.com/taers232c/GAM7 - pythonsource
|
GAM7 7.00.12 - https://github.com/taers232c/GAM7 - pythonsource
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.6 64-bit final
|
Python 3.12.6 64-bit final
|
||||||
Windows-10-10.0.17134 AMD64
|
Windows-10-10.0.17134 AMD64
|
||||||
|
|||||||
@@ -88,65 +88,67 @@
|
|||||||
```
|
```
|
||||||
```
|
```
|
||||||
<DriveCapabilitiesSubfieldName> ::=
|
<DriveCapabilitiesSubfieldName> ::=
|
||||||
canacceptownership|
|
capabilities.canacceptownership|
|
||||||
canaddchildren|
|
capabilities.canaddchildren|
|
||||||
canaddfolderfromanotherdrive|
|
capabilities.canaddfolderfromanotherdrive|
|
||||||
canaddmydriveparent|
|
capabilities.canaddmydriveparent|
|
||||||
canchangecopyrequireswriterpermission|
|
capabilities.canchangecopyrequireswriterpermission|
|
||||||
canchangecopyrequireswriterpermissionrestriction|
|
capabilities.canchangecopyrequireswriterpermissionrestriction|
|
||||||
canchangedomainusersonlyrestriction|
|
capabilities.canchangedomainusersonlyrestriction|
|
||||||
canchangedrivebackground|
|
capabilities.canchangedrivebackground|
|
||||||
canchangedrivemembersonlyrestriction|
|
capabilities.canchangedrivemembersonlyrestriction|
|
||||||
canchangesecurityupdateenabled|
|
capabilities.canchangesecurityupdateenabled|
|
||||||
canchangesharingfoldersrequiresorganizerpermissionrestriction|
|
capabilities.canchangesharingfoldersrequiresorganizerpermissionrestriction|
|
||||||
canchangeviewerscancopycontent|
|
capabilities.canchangeviewerscancopycontent|
|
||||||
cancomment|
|
capabilities.cancomment|
|
||||||
cancopy|
|
capabilities.cancopy|
|
||||||
candelete|
|
capabilities.candelete|
|
||||||
candeletechildren|
|
capabilities.candeletechildren|
|
||||||
candeletedrive|
|
capabilities.candeletedrive|
|
||||||
candownload|
|
capabilities.candisableinheritedpermissions|
|
||||||
canedit|
|
capabilities.candownload|
|
||||||
canlistchildren|
|
capabilities.canedit|
|
||||||
canmanagemembers|
|
capabilities.canenableinheritedpermissions|
|
||||||
canmodifycontent|
|
capabilities.canlistchildren|
|
||||||
canmodifycontentrestriction|
|
capabilities.canmanagemembers|
|
||||||
canmodifyeditorcontentrestriction|
|
capabilities.canmodifycontent|
|
||||||
canmodifylabels|
|
capabilities.canmodifycontentrestriction|
|
||||||
canmodifyownercontentrestriction|
|
capabilities.canmodifyeditorcontentrestriction|
|
||||||
canmovechildrenoutofdrive|
|
capabilities.canmodifylabels|
|
||||||
canmovechildrenoutofteamdrive|
|
capabilities.canmodifyownercontentrestriction|
|
||||||
canmovechildrenwithindrive|
|
capabilities.canmovechildrenoutofdrive|
|
||||||
canmovechildrenwithinteamdrive|
|
capabilities.canmovechildrenoutofteamdrive|
|
||||||
canmoveitemintodrive|
|
capabilities.canmovechildrenwithindrive|
|
||||||
canmoveitemintoteamdrive|
|
capabilities.canmovechildrenwithinteamdrive|
|
||||||
canmoveitemoutofdrive|
|
capabilities.canmoveitemintodrive|
|
||||||
canmoveitemoutofteamdrive|
|
capabilities.canmoveitemintoteamdrive|
|
||||||
canmoveitemwithindrive|
|
capabilities.canmoveitemoutofdrive|
|
||||||
canmoveitemwithinteamdrive|
|
capabilities.canmoveitemoutofteamdrive|
|
||||||
canmoveteamdriveitem|
|
capabilities.canmoveitemwithindrive|
|
||||||
canreaddrive|
|
capabilities.canmoveitemwithinteamdrive|
|
||||||
canreadlabels|
|
capabilities.canmoveteamdriveitem|
|
||||||
canreadrevisions|
|
capabilities.canreaddrive|
|
||||||
canreadteamdrive|
|
capabilities.canreadlabels|
|
||||||
canremovechildren|
|
capabilities.canreadrevisions|
|
||||||
canremovecontentrestriction|
|
capabilities.canreadteamdrive|
|
||||||
canremovemydriveparent|
|
capabilities.canremovechildren|
|
||||||
canrename|
|
capabilities.canremovecontentrestriction|
|
||||||
canrenamedrive|
|
capabilities.canremovemydriveparent|
|
||||||
canresetdriverestrictions|
|
capabilities.canrename|
|
||||||
canshare|
|
capabilities.canrenamedrive|
|
||||||
cantrash|
|
capabilities.canresetdriverestrictions|
|
||||||
cantrashchildren|
|
capabilities.canshare|
|
||||||
canuntrash
|
capabilities.cantrash|
|
||||||
|
capabilities.cantrashchildren|
|
||||||
|
capabilities.canuntrash
|
||||||
|
|
||||||
<DriveContentRestrictionsSubfieldName> ::=
|
<DriveContentRestrictionsSubfieldName> ::=
|
||||||
ownerrestricted|
|
contentrestrictions.ownerrestricted|
|
||||||
readonly|
|
contentrestrictions.readonly|
|
||||||
reason|
|
contentrestrictions.reason|
|
||||||
restrictinguser|
|
contentrestrictions.restrictinguser|
|
||||||
restrictiontime|
|
contentrestrictions.restrictiontime|
|
||||||
type
|
contentrestrictions.type
|
||||||
|
|
||||||
<DriveLabelInfoSubfieldName> ::=
|
<DriveLabelInfoSubfieldName> ::=
|
||||||
labels.id| # modifiedByMe
|
labels.id| # modifiedByMe
|
||||||
@@ -257,6 +259,7 @@
|
|||||||
iconlink|
|
iconlink|
|
||||||
id|
|
id|
|
||||||
imagemediametadata|
|
imagemediametadata|
|
||||||
|
inheritedpermissionsdisabled|
|
||||||
isappauthorized|
|
isappauthorized|
|
||||||
labelinfo|
|
labelinfo|
|
||||||
<DriveLabelInfoSubfieldName>|
|
<DriveLabelInfoSubfieldName>|
|
||||||
@@ -294,6 +297,8 @@
|
|||||||
<DriveSharingUserSubfieldName>|
|
<DriveSharingUserSubfieldName>|
|
||||||
shortcutdetails|
|
shortcutdetails|
|
||||||
<DriveShortcutDetailsSubfieldName>|
|
<DriveShortcutDetailsSubfieldName>|
|
||||||
|
sha1checksum|
|
||||||
|
sha256checksum|
|
||||||
size|
|
size|
|
||||||
spaces|
|
spaces|
|
||||||
starred|
|
starred|
|
||||||
|
|||||||
@@ -117,6 +117,7 @@
|
|||||||
(description <String>)|
|
(description <String>)|
|
||||||
(folderColorRgb <ColorValue>)|
|
(folderColorRgb <ColorValue>)|
|
||||||
(indexabletext <String>)|
|
(indexabletext <String>)|
|
||||||
|
(inheritedpermissionsdisabled [<Boolean>])|
|
||||||
(keeprevisionforever|pinned)|
|
(keeprevisionforever|pinned)|
|
||||||
(lastviewedbyme <Time>)|
|
(lastviewedbyme <Time>)|
|
||||||
(mimetype <MimeType>)|
|
(mimetype <MimeType>)|
|
||||||
@@ -127,10 +128,10 @@
|
|||||||
(property <PropertyKey> <PropertyValue> [private|public])|
|
(property <PropertyKey> <PropertyValue> [private|public])|
|
||||||
(restricted|restrict [<Boolean>])|
|
(restricted|restrict [<Boolean>])|
|
||||||
(securityupdate [<Boolean>])|
|
(securityupdate [<Boolean>])|
|
||||||
|
(shortcut <DriveFileID>)|
|
||||||
(starred|star [<Boolean>])|
|
(starred|star [<Boolean>])|
|
||||||
(trashed|trash [<Boolean>])|
|
(trashed|trash [<Boolean>])|
|
||||||
(viewed|view [<Boolean>])|
|
(viewed|view [<Boolean>])|
|
||||||
(shortcut <DriveFileID>)|
|
|
||||||
(viewerscancopycontent [<Boolean>])|
|
(viewerscancopycontent [<Boolean>])|
|
||||||
(writerscanshare|writerscantshare [<Boolean>])
|
(writerscanshare|writerscantshare [<Boolean>])
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
Print the current version of Gam with details
|
Print the current version of Gam with details
|
||||||
```
|
```
|
||||||
gam version
|
gam version
|
||||||
GAM 7.00.11 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.00.12 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.7 64-bit final
|
Python 3.12.7 64-bit final
|
||||||
MacOS Sonoma 14.5 x86_64
|
MacOS Sonoma 14.5 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
|
||||||
GAM 7.00.11 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.00.12 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.7 64-bit final
|
Python 3.12.7 64-bit final
|
||||||
MacOS Sonoma 14.5 x86_64
|
MacOS Sonoma 14.5 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
|
||||||
GAM 7.00.11 - https://github.com/GAM-team/GAM - pyinstaller
|
GAM 7.00.12 - https://github.com/GAM-team/GAM - pyinstaller
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.7 64-bit final
|
Python 3.12.7 64-bit final
|
||||||
MacOS Sonoma 14.5 x86_64
|
MacOS Sonoma 14.5 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: 7.00.11
|
Latest: 7.00.12
|
||||||
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
|
||||||
7.00.11
|
7.00.12
|
||||||
```
|
```
|
||||||
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 7.00.11 - https://github.com/taers232c/GAMADV-XTD3
|
GAM 7.00.12 - https://github.com/taers232c/GAMADV-XTD3
|
||||||
GAM Team <google-apps-manager@googlegroups.com>
|
GAM Team <google-apps-manager@googlegroups.com>
|
||||||
Python 3.12.7 64-bit final
|
Python 3.12.7 64-bit final
|
||||||
MacOS Sonoma 14.5 x86_64
|
MacOS Sonoma 14.5 x86_64
|
||||||
|
|||||||
@@ -6375,6 +6375,7 @@ gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*]
|
|||||||
(description <String>)|
|
(description <String>)|
|
||||||
(folderColorRgb <ColorValue>)|
|
(folderColorRgb <ColorValue>)|
|
||||||
(indexabletext <String>)|
|
(indexabletext <String>)|
|
||||||
|
(inheritedpermissionsdisabled [<Boolean>])|
|
||||||
(keeprevisionforever|pinned)|
|
(keeprevisionforever|pinned)|
|
||||||
(lastviewedbyme <Time>)|
|
(lastviewedbyme <Time>)|
|
||||||
(mimetype <MimeType>)|
|
(mimetype <MimeType>)|
|
||||||
@@ -6399,9 +6400,6 @@ gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*]
|
|||||||
(teamdriveparentid <DriveFolderID>)|
|
(teamdriveparentid <DriveFolderID>)|
|
||||||
(teamdriveparent <SharedDriveName>)|
|
(teamdriveparent <SharedDriveName>)|
|
||||||
(teamdriveparentid <SharedDriveID> teamdriveparentname <DriveFolderName>)|
|
(teamdriveparentid <SharedDriveID> teamdriveparentname <DriveFolderName>)|
|
||||||
(teamdriveparent <SharedDriveName> teamdriveparentname <DriveFolderName>))|
|
|
||||||
(teamdriveparentid <DriveFolderID>)|(teamdriveparent <SharedDriveName>)|
|
|
||||||
(teamdriveparentid <SharedDriveID> teamdriveparentname <DriveFolderName>)|
|
|
||||||
(teamdriveparent <SharedDriveName> teamdriveparentname <DriveFolderName>)
|
(teamdriveparent <SharedDriveName> teamdriveparentname <DriveFolderName>)
|
||||||
|
|
||||||
<DriveFileCreateAttribute> ::=
|
<DriveFileCreateAttribute> ::=
|
||||||
@@ -6793,65 +6791,67 @@ gam <UserTypeEntity> collect orphans
|
|||||||
[preview [todrive <ToDriveAttribute>*]]
|
[preview [todrive <ToDriveAttribute>*]]
|
||||||
|
|
||||||
<DriveCapabilitiesSubfieldName> ::=
|
<DriveCapabilitiesSubfieldName> ::=
|
||||||
canacceptownership|
|
capabilities.canacceptownership|
|
||||||
canaddchildren|
|
capabilities.canaddchildren|
|
||||||
canaddfolderfromanotherdrive|
|
capabilities.canaddfolderfromanotherdrive|
|
||||||
canaddmydriveparent|
|
capabilities.canaddmydriveparent|
|
||||||
canchangecopyrequireswriterpermission|
|
capabilities.canchangecopyrequireswriterpermission|
|
||||||
canchangecopyrequireswriterpermissionrestriction|
|
capabilities.canchangecopyrequireswriterpermissionrestriction|
|
||||||
canchangedomainusersonlyrestriction|
|
capabilities.canchangedomainusersonlyrestriction|
|
||||||
canchangedrivebackground|
|
capabilities.canchangedrivebackground|
|
||||||
canchangedrivemembersonlyrestriction|
|
capabilities.canchangedrivemembersonlyrestriction|
|
||||||
canchangesecurityupdateenabled|
|
capabilities.canchangesecurityupdateenabled|
|
||||||
canchangesharingfoldersrequiresorganizerpermissionrestriction|
|
capabilities.canchangesharingfoldersrequiresorganizerpermissionrestriction|
|
||||||
canchangeviewerscancopycontent|
|
capabilities.canchangeviewerscancopycontent|
|
||||||
cancomment|
|
capabilities.cancomment|
|
||||||
cancopy|
|
capabilities.cancopy|
|
||||||
candelete|
|
capabilities.candelete|
|
||||||
candeletechildren|
|
capabilities.candeletechildren|
|
||||||
candeletedrive|
|
capabilities.candeletedrive|
|
||||||
candownload|
|
capabilities.candisableinheritedpermissions|
|
||||||
canedit|
|
capabilities.candownload|
|
||||||
canlistchildren|
|
capabilities.canedit|
|
||||||
canmanagemembers|
|
capabilities.canenableinheritedpermissions|
|
||||||
canmodifycontent|
|
capabilities.canlistchildren|
|
||||||
canmodifycontentrestriction|
|
capabilities.canmanagemembers|
|
||||||
canmodifyeditorcontentrestriction|
|
capabilities.canmodifycontent|
|
||||||
canmodifylabels|
|
capabilities.canmodifycontentrestriction|
|
||||||
canmodifyownercontentrestriction|
|
capabilities.canmodifyeditorcontentrestriction|
|
||||||
canmovechildrenoutofdrive|
|
capabilities.canmodifylabels|
|
||||||
canmovechildrenoutofteamdrive|
|
capabilities.canmodifyownercontentrestriction|
|
||||||
canmovechildrenwithindrive|
|
capabilities.canmovechildrenoutofdrive|
|
||||||
canmovechildrenwithinteamdrive|
|
capabilities.canmovechildrenoutofteamdrive|
|
||||||
canmoveitemintodrive|
|
capabilities.canmovechildrenwithindrive|
|
||||||
canmoveitemintoteamdrive|
|
capabilities.canmovechildrenwithinteamdrive|
|
||||||
canmoveitemoutofdrive|
|
capabilities.canmoveitemintodrive|
|
||||||
canmoveitemoutofteamdrive|
|
capabilities.canmoveitemintoteamdrive|
|
||||||
canmoveitemwithindrive|
|
capabilities.canmoveitemoutofdrive|
|
||||||
canmoveitemwithinteamdrive|
|
capabilities.canmoveitemoutofteamdrive|
|
||||||
canmoveteamdriveitem|
|
capabilities.canmoveitemwithindrive|
|
||||||
canreaddrive|
|
capabilities.canmoveitemwithinteamdrive|
|
||||||
canreadlabels|
|
capabilities.canmoveteamdriveitem|
|
||||||
canreadrevisions|
|
capabilities.canreaddrive|
|
||||||
canreadteamdrive|
|
capabilities.canreadlabels|
|
||||||
canremovechildren|
|
capabilities.canreadrevisions|
|
||||||
canremovecontentrestriction|
|
capabilities.canreadteamdrive|
|
||||||
canremovemydriveparent|
|
capabilities.canremovechildren|
|
||||||
canrename|
|
capabilities.canremovecontentrestriction|
|
||||||
canrenamedrive|
|
capabilities.canremovemydriveparent|
|
||||||
canresetdriverestrictions|
|
capabilities.canrename|
|
||||||
canshare|
|
capabilities.canrenamedrive|
|
||||||
cantrash|
|
capabilities.canresetdriverestrictions|
|
||||||
cantrashchildren|
|
capabilities.canshare|
|
||||||
canuntrash
|
capabilities.cantrash|
|
||||||
|
capabilities.cantrashchildren|
|
||||||
|
capabilities.canuntrash
|
||||||
|
|
||||||
<DriveContentRestrictionsSubfieldName> ::=
|
<DriveContentRestrictionsSubfieldName> ::=
|
||||||
ownerrestricted|
|
contentrestrictions.ownerrestricted|
|
||||||
readonly|
|
contentrestrictions.readonly|
|
||||||
reason|
|
contentrestrictions.reason|
|
||||||
restrictinguser|
|
contentrestrictions.restrictinguser|
|
||||||
restrictiontime|
|
contentrestrictions.restrictiontime|
|
||||||
type
|
contentrestrictions.type
|
||||||
|
|
||||||
<DriveLabelInfoSubfieldName> ::=
|
<DriveLabelInfoSubfieldName> ::=
|
||||||
labels.id| # modifiedByMe
|
labels.id| # modifiedByMe
|
||||||
@@ -6961,6 +6961,7 @@ gam <UserTypeEntity> collect orphans
|
|||||||
iconlink|
|
iconlink|
|
||||||
id|
|
id|
|
||||||
imagemediametadata|
|
imagemediametadata|
|
||||||
|
inheritedpermissionsdisabled|
|
||||||
isappauthorized|
|
isappauthorized|
|
||||||
labelinfo|
|
labelinfo|
|
||||||
<DriveLabelInfoSubfieldName>|
|
<DriveLabelInfoSubfieldName>|
|
||||||
@@ -6998,8 +6999,8 @@ gam <UserTypeEntity> collect orphans
|
|||||||
<DriveSharingUserSubfieldName>|
|
<DriveSharingUserSubfieldName>|
|
||||||
shortcutdetails|
|
shortcutdetails|
|
||||||
<DriveShortcutDetailsSubfieldName>|
|
<DriveShortcutDetailsSubfieldName>|
|
||||||
sha1Checksum|
|
sha1checksum|
|
||||||
sha256Checksum|
|
sha256checksum|
|
||||||
size|
|
size|
|
||||||
spaces|
|
spaces|
|
||||||
starred|
|
starred|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
7.00.12
|
||||||
|
|
||||||
|
Updated option `showlastmodification` to `gam <UserTypeEntity> print|show filecounts` to handle
|
||||||
|
the case where all users owning files are suspended. In this case the `lastModifyingUser` column
|
||||||
|
will show the user's display name as the API doesn't return the user's email address.
|
||||||
|
|
||||||
|
Updated support for `Folders with limited access`; this is a work in progress.
|
||||||
|
|
||||||
7.00.11
|
7.00.11
|
||||||
|
|
||||||
Updated to Python 3.12.7 where possible.
|
Updated to Python 3.12.7 where possible.
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,6 @@ datas += [('admin-directory_v1.1beta1.json', '.')]
|
|||||||
datas += [('cbcm-v1.1beta1.json', '.')]
|
datas += [('cbcm-v1.1beta1.json', '.')]
|
||||||
datas += [('contactdelegation-v1.json', '.')]
|
datas += [('contactdelegation-v1.json', '.')]
|
||||||
datas += [('datastudio-v1.json', '.')]
|
datas += [('datastudio-v1.json', '.')]
|
||||||
datas += [('drive-v3beta.json', '.')]
|
|
||||||
datas += [('serviceaccountlookup-v1.json', '.')]
|
datas += [('serviceaccountlookup-v1.json', '.')]
|
||||||
datas += [('cacerts.pem', '.')]
|
datas += [('cacerts.pem', '.')]
|
||||||
hiddenimports = [
|
hiddenimports = [
|
||||||
|
|||||||
@@ -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.00.11'
|
__version__ = '7.00.12'
|
||||||
__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
|
||||||
@@ -4670,8 +4670,7 @@ def getAPIService(api, httpObj):
|
|||||||
|
|
||||||
def getService(api, httpObj):
|
def getService(api, httpObj):
|
||||||
### Drive v3beta
|
### Drive v3beta
|
||||||
if api == API.DRIVE3 and GC.Values[GC.DRIVE_V3_BETA]:
|
mapDriveURL = api == API.DRIVE3 and GC.Values[GC.DRIVE_V3_BETA]
|
||||||
api = API.DRIVE3B
|
|
||||||
hasLocalJSON = API.hasLocalJSON(api)
|
hasLocalJSON = API.hasLocalJSON(api)
|
||||||
api, version, v2discovery = API.getVersion(api)
|
api, version, v2discovery = API.getVersion(api)
|
||||||
if api in GM.Globals[GM.CURRENT_API_SERVICES] and version in GM.Globals[GM.CURRENT_API_SERVICES][api]:
|
if api in GM.Globals[GM.CURRENT_API_SERVICES] and version in GM.Globals[GM.CURRENT_API_SERVICES][api]:
|
||||||
@@ -4687,6 +4686,9 @@ def getService(api, httpObj):
|
|||||||
discoveryServiceUrl=DISCOVERY_URIS[v2discovery], static_discovery=False)
|
discoveryServiceUrl=DISCOVERY_URIS[v2discovery], static_discovery=False)
|
||||||
GM.Globals[GM.CURRENT_API_SERVICES].setdefault(api, {})
|
GM.Globals[GM.CURRENT_API_SERVICES].setdefault(api, {})
|
||||||
GM.Globals[GM.CURRENT_API_SERVICES][api][version] = service._rootDesc.copy()
|
GM.Globals[GM.CURRENT_API_SERVICES][api][version] = service._rootDesc.copy()
|
||||||
|
### Drive v3beta
|
||||||
|
if mapDriveURL:
|
||||||
|
setattr(service, '_baseUrl', getattr(service, '_baseUrl').replace('/v3/', '/v3beta/'))
|
||||||
if GM.Globals[GM.CACHE_DISCOVERY_ONLY]:
|
if GM.Globals[GM.CACHE_DISCOVERY_ONLY]:
|
||||||
clearServiceCache(service)
|
clearServiceCache(service)
|
||||||
return service
|
return service
|
||||||
@@ -4732,8 +4734,6 @@ def defaultSvcAcctScopes():
|
|||||||
saScopes[API.DRIVE2] = saScopes[API.DRIVE3]
|
saScopes[API.DRIVE2] = saScopes[API.DRIVE3]
|
||||||
saScopes[API.DRIVETD] = saScopes[API.DRIVE3]
|
saScopes[API.DRIVETD] = saScopes[API.DRIVE3]
|
||||||
saScopes[API.SHEETSTD] = saScopes[API.SHEETS]
|
saScopes[API.SHEETSTD] = saScopes[API.SHEETS]
|
||||||
### Drive v3beta
|
|
||||||
saScopes[API.DRIVE3B] = saScopes[API.DRIVE3]
|
|
||||||
return saScopes
|
return saScopes
|
||||||
|
|
||||||
def _getSvcAcctData():
|
def _getSvcAcctData():
|
||||||
@@ -53774,12 +53774,12 @@ def showFileInfo(users):
|
|||||||
j += 1
|
j += 1
|
||||||
try:
|
try:
|
||||||
result = callGAPI(drive.files(), 'get',
|
result = callGAPI(drive.files(), 'get',
|
||||||
throwReasons=GAPI.DRIVE_GET_THROW_REASONS,
|
throwReasons=GAPI.DRIVE_GET_THROW_REASONS+[GAPI.INVALID],
|
||||||
fileId=fileId, includeLabels=includeLabels, fields=fields, supportsAllDrives=True)
|
fileId=fileId, includeLabels=includeLabels, fields=fields, supportsAllDrives=True)
|
||||||
if followShortcuts and result['mimeType'] == MIMETYPE_GA_SHORTCUT:
|
if followShortcuts and result['mimeType'] == MIMETYPE_GA_SHORTCUT:
|
||||||
fileId = result['shortcutDetails']['targetId']
|
fileId = result['shortcutDetails']['targetId']
|
||||||
result = callGAPI(drive.files(), 'get',
|
result = callGAPI(drive.files(), 'get',
|
||||||
throwReasons=GAPI.DRIVE_GET_THROW_REASONS,
|
throwReasons=GAPI.DRIVE_GET_THROW_REASONS+[GAPI.INVALID],
|
||||||
fileId=fileId, includeLabels=includeLabels, fields=fields, supportsAllDrives=True)
|
fileId=fileId, includeLabels=includeLabels, fields=fields, supportsAllDrives=True)
|
||||||
if stripCRsFromName:
|
if stripCRsFromName:
|
||||||
result['name'] = _stripControlCharsFromName(result['name'])
|
result['name'] = _stripControlCharsFromName(result['name'])
|
||||||
@@ -55649,7 +55649,11 @@ def printFileList(users):
|
|||||||
continue
|
continue
|
||||||
extendFileTreeParents(drive, fileTree, fields)
|
extendFileTreeParents(drive, fileTree, fields)
|
||||||
DLP.GetLocationFileIdsFromTree(fileTree, fileIdEntity)
|
DLP.GetLocationFileIdsFromTree(fileTree, fileIdEntity)
|
||||||
except (GAPI.invalidQuery, GAPI.invalid, GAPI.badRequest):
|
except (GAPI.invalidQuery, GAPI.invalid, GAPI.badRequest) as e:
|
||||||
|
errMsg = str(e)
|
||||||
|
if 'Invalid field selection' in errMsg:
|
||||||
|
entityActionFailedWarning([Ent.USER, user, Ent.DRIVE_FILE_OR_FOLDER, None], errMsg, i, count)
|
||||||
|
break
|
||||||
entityActionFailedWarning([Ent.USER, user, Ent.DRIVE_FILE_OR_FOLDER, None], invalidQuery(DLP.fileIdEntity['query']), i, count)
|
entityActionFailedWarning([Ent.USER, user, Ent.DRIVE_FILE_OR_FOLDER, None], invalidQuery(DLP.fileIdEntity['query']), i, count)
|
||||||
if not continueOnInvalidQuery:
|
if not continueOnInvalidQuery:
|
||||||
break
|
break
|
||||||
@@ -56227,7 +56231,7 @@ def printShowFileCounts(users):
|
|||||||
if showSize or (DLP.minimumFileSize is not None) or (DLP.maximumFileSize is not None):
|
if showSize or (DLP.minimumFileSize is not None) or (DLP.maximumFileSize is not None):
|
||||||
fieldsList.append(sizeField)
|
fieldsList.append(sizeField)
|
||||||
if showLastModification:
|
if showLastModification:
|
||||||
fieldsList.extend(['id,name,modifiedTime,lastModifyingUser(emailAddress)'])
|
fieldsList.extend(['id,name,modifiedTime,lastModifyingUser(me, displayName, emailAddress)'])
|
||||||
if DLP.filenameMatchPattern:
|
if DLP.filenameMatchPattern:
|
||||||
fieldsList.append('name')
|
fieldsList.append('name')
|
||||||
if DLP.excludeTrashed:
|
if DLP.excludeTrashed:
|
||||||
@@ -56422,7 +56426,8 @@ def printShowFileCounts(users):
|
|||||||
userLastModification['lastModifiedFileId'] = f_file['id']
|
userLastModification['lastModifiedFileId'] = f_file['id']
|
||||||
userLastModification['lastModifiedFileName'] = _stripControlCharsFromName(f_file['name'])
|
userLastModification['lastModifiedFileName'] = _stripControlCharsFromName(f_file['name'])
|
||||||
userLastModification['lastModifiedTime'] = f_file['modifiedTime']
|
userLastModification['lastModifiedTime'] = f_file['modifiedTime']
|
||||||
userLastModification['lastModifyingUser'] = f_file['lastModifyingUser'].get('emailAddress', UNKNOWN)
|
userLastModification['lastModifyingUser'] = f_file['lastModifyingUser'].get('emailAddress',
|
||||||
|
f_file['lastModifyingUser'].get('displayName', UNKNOWN))
|
||||||
showMimeTypeInfo(user, mimeTypeInfo, sharedDriveId, sharedDriveName, userLastModification, i, count)
|
showMimeTypeInfo(user, mimeTypeInfo, sharedDriveId, sharedDriveName, userLastModification, i, count)
|
||||||
if showLastModification and userLastModification['lastModifiedTime'] > summaryLastModification['lastModifiedTime']:
|
if showLastModification and userLastModification['lastModifiedTime'] > summaryLastModification['lastModifiedTime']:
|
||||||
summaryLastModification = userLastModification.copy()
|
summaryLastModification = userLastModification.copy()
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -58,7 +58,6 @@ DIRECTORY_BETA = 'directory_beta'
|
|||||||
DOCS = 'docs'
|
DOCS = 'docs'
|
||||||
DRIVE2 = 'drive2'
|
DRIVE2 = 'drive2'
|
||||||
DRIVE3 = 'drive3'
|
DRIVE3 = 'drive3'
|
||||||
DRIVE3B = 'drive3b'
|
|
||||||
DRIVETD = 'drivetd'
|
DRIVETD = 'drivetd'
|
||||||
DRIVEACTIVITY = 'driveactivity'
|
DRIVEACTIVITY = 'driveactivity'
|
||||||
DRIVELABELS = 'drivelabels'
|
DRIVELABELS = 'drivelabels'
|
||||||
@@ -238,7 +237,6 @@ _INFO = {
|
|||||||
DOCS: {'name': 'Docs API', 'version': 'v1', 'v2discovery': True},
|
DOCS: {'name': 'Docs API', 'version': 'v1', 'v2discovery': True},
|
||||||
DRIVE2: {'name': 'Drive API v2', 'version': 'v2', 'v2discovery': False, 'mappedAPI': 'drive'},
|
DRIVE2: {'name': 'Drive API v2', 'version': 'v2', 'v2discovery': False, 'mappedAPI': 'drive'},
|
||||||
DRIVE3: {'name': 'Drive API v3', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
DRIVE3: {'name': 'Drive API v3', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
||||||
DRIVE3B: {'name': 'Drive API v3beta', 'version': 'v3beta', 'v2discovery': False, 'mappedAPI': 'drive', 'localjson': True},
|
|
||||||
DRIVETD: {'name': 'Drive API v3 - todrive', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
DRIVETD: {'name': 'Drive API v3 - todrive', 'version': 'v3', 'v2discovery': False, 'mappedAPI': 'drive'},
|
||||||
DRIVEACTIVITY: {'name': 'Drive Activity API v2', 'version': 'v2', 'v2discovery': True},
|
DRIVEACTIVITY: {'name': 'Drive Activity API v2', 'version': 'v2', 'v2discovery': True},
|
||||||
DRIVELABELS_ADMIN: {'name': 'Drive Labels API v2beta - Admin', 'version': 'v2beta', 'v2discovery': True, 'mappedAPI': DRIVELABELS},
|
DRIVELABELS_ADMIN: {'name': 'Drive Labels API v2beta - Admin', 'version': 'v2beta', 'v2discovery': True, 'mappedAPI': DRIVELABELS},
|
||||||
|
|||||||
Reference in New Issue
Block a user