From 2323e130b1895c960cfd1077270a95b72ef61458 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Mon, 14 Oct 2024 14:46:29 -0700 Subject: [PATCH] Two minor fixes --- docs/Context-Aware-Access-Levels.md | 22 ++++++++++++++++++++++ docs/GamUpdates.md | 10 ++++++++++ docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md | 4 ++-- docs/Shared-Drives.md | 9 +++++++++ docs/Users.md | 2 +- docs/Version-and-Help.md | 12 ++++++------ src/GamUpdate.txt | 10 ++++++++++ src/gam/__init__.py | 12 +++++++----- 8 files changed, 67 insertions(+), 14 deletions(-) diff --git a/docs/Context-Aware-Access-Levels.md b/docs/Context-Aware-Access-Levels.md index 8fce793a..efdc7301 100644 --- a/docs/Context-Aware-Access-Levels.md +++ b/docs/Context-Aware-Access-Levels.md @@ -8,6 +8,7 @@ - [Parameters for Basic Levels](#parameters-for-basic-levels) - [Create an Access Level](#create-an-access-level) - [Update an Access Level](#update-an-access-level) +- [Update Access Levels with JSON](#update-access-levels-with-json) - [Delete an Access Level](#delete-an-access-level) - [Display all Access Levels](#display-all-access-levels) - [CAA Region Codes](#caa-region-codes) @@ -177,6 +178,27 @@ This example adds UK to the allowed regions for CORP_COUNTRIES gam update caalevel CORP_COUNTRIES basic condition regions US,CA,UK endcondition ``` +## Update Access Levels with JSON +Update existing CAA levels via their JSON data; create a CSV file of CAA levels. +``` +gam redirect csv ./CAAlevels.csv print caalevels formatjson quotechar "'" +``` +Edit the JSON column for the desired CAA level(s) in CAAlevels.csv. +Update the desired CAA level by selecting the row by it's title; repeat for each title to update. +``` +gam config csv_input_row_filter "title:text='Example Title'" csv CAAlevels.csv quotechar "'" gam update caalevel "~name" json "~JSON" +``` + +## Example +Edit CAAlevels.csv and add UK to the allowed regions for CORP_COUNTRIES +``` +{"regions": ["US", "CA", "UK"]} +``` +Do the update. +``` +gam config csv_input_row_filter "title:text='CORP_COUNTRIES'" csv CAAlevels.csv quotechar "'" gam update caalevel "~name" json "~JSON" +``` + ## Delete an Access Level Deletes the specified access level. ``` diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index bfa2d571..c262d140 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -10,6 +10,16 @@ Add the `-s` option to the end of the above commands to suppress creating the `g See [Downloads-Installs-GAM7](https://github.com/GAM-team/GAM/wiki/Downloads-Installs) for Windows or other options, including manual installation +### 7.00.19 + +Updated `gam update shareddrive ou ` to handle the following error +that occurs when an invalid `` is specified. +``` +ERROR: 400: invalidArgument - Invalid org membership name 0AJ3b2FTPakToUk9PVAxx.~ +``` + +Updated `gam print browsers` to properly format the time field `deviceIdentifiersHistory.records.0.firstRecordTime`. + ### 7.00.18 Updated `gam create project` to use a default project name of `gam-project-a1b2c` (`a1b2c` is a random string of 5 characters) diff --git a/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md b/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md index 9a685449..7f3315d7 100644 --- a/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md +++ b/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md @@ -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$ gam version WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found -GAM 7.00.18 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.19 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.0 64-bit final 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:\>gam version WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found -GAM7 7.00.18 - https://github.com/GAM-team/GAM - pythonsource +GAM7 7.00.19 - https://github.com/GAM-team/GAM - pythonsource GAM Team Python 3.13.0 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/docs/Shared-Drives.md b/docs/Shared-Drives.md index c6a09324..80b01915 100644 --- a/docs/Shared-Drives.md +++ b/docs/Shared-Drives.md @@ -427,6 +427,15 @@ gam info ou nousers gam show teamdrives query "orgUnitId='03ph8a2z21rexy'" fields id,name,orgunit,createdtime gam print teamdrives query "orgUnitId='03ph8a2z21rexy'" fields id,name,orgunit,createdtime ``` +Alternative method; `` defaults to `/`. +``` +gam show oushareddrives + [ou|org|orgunit ] + [formatjson] +gam print oushareddrives [todrive *] + [ou|org|orgunit ] + [formatjson [quotechar ]] +``` ## Manage Shared Drive access These commands are used to manage the ACLs on Shared Drives themselves, not the files/folders on the Shared Drives. diff --git a/docs/Users.md b/docs/Users.md index 1b86b06f..a6f0d27f 100644 --- a/docs/Users.md +++ b/docs/Users.md @@ -37,7 +37,7 @@ - [Print user domain counts](#print-user-domain-counts) - [Print domain counts for users in a specific domain and/or selected by a query](#print-domain-counts-for-users-in-a-specific-domain-and-or-selected-by-a-query) - [Print domain counts for users specified by ``](#print-domain-counts-for-users-specified-by-usertypeentity) -- [Print user counts by OrgUnit](print-user-counts-by-orgunit) +- [Print user counts by OrgUnit](#print-user-counts-by-orgunit) - [Print user list](#print-user-list) - [Display user counts](#display-user-counts) - [Verify domain membership]($verify-domain-membership) diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index 5b764d75..fa4381cb 100644 --- a/docs/Version-and-Help.md +++ b/docs/Version-and-Help.md @@ -3,7 +3,7 @@ Print the current version of Gam with details ``` gam version -GAM 7.00.18 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.19 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.0 64-bit final 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 ``` gam version timeoffset -GAM 7.00.18 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.19 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.0 64-bit final 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 ``` gam version extended -GAM 7.00.18 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.19 - https://github.com/GAM-team/GAM - pyinstaller GAM Team Python 3.13.0 64-bit final MacOS Sonoma 14.5 x86_64 @@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gam7 Version Check: Current: 5.35.08 - Latest: 7.00.18 + Latest: 7.00.19 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -7.00.18 +7.00.19 ``` In Linux/MacOS you can do: ``` @@ -82,7 +82,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 7.00.18 - https://github.com/GAM-team/GAM +GAM 7.00.19 - https://github.com/GAM-team/GAM GAM Team Python 3.13.0 64-bit final MacOS Sonoma 14.5 x86_64 diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 269d8e4a..b93dd5ec 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,13 @@ +7.00.19 + +Updated `gam update shareddrive ou ` to handle the following error +that occurs when an invalid `` is specified. +``` +ERROR: 400: invalidArgument - Invalid org membership name 0AJ3b2FTPakToUk9PVAxx.~ +``` + +Updated `gam print browsers` to properly format the time field `deviceIdentifiersHistory.records.0.firstRecordTime`. + 7.00.18 Updated `gam create project` to use a default project name of `gam-project-a1b2c` (`a1b2c` is a random string of 5 characters) diff --git a/src/gam/__init__.py b/src/gam/__init__.py index d2811a43..9ff01904 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki """ __author__ = 'GAM Team ' -__version__ = '7.00.18' +__version__ = '7.00.19' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -24993,7 +24993,7 @@ def doDeleteBrowsers(): except (GAPI.badRequest, GAPI.resourceNotFound, GAPI.forbidden): checkEntityAFDNEorAccessErrorExit(None, Ent.CHROME_BROWSER, deviceId) -BROWSER_TIME_OBJECTS = {'lastActivityTime', 'lastPolicyFetchTime', 'lastRegistrationTime', 'lastStatusReportTime', 'safeBrowsingWarningsResetTime'} +BROWSER_TIME_OBJECTS = {'firstRecordTime', 'lastActivityTime', 'lastPolicyFetchTime', 'lastRegistrationTime', 'lastStatusReportTime', 'safeBrowsingWarningsResetTime'} def _showBrowser(browser, FJQC, i=0, count=0): if FJQC.formatJSON: @@ -64285,13 +64285,15 @@ def _moveSharedDriveToOU(orgUnit, orgUnitId, driveId, user, i, count, ci, return 'destinationOrgUnit': f'orgUnits/{orgUnitId[3:]}'} try: callGAPI(ci.orgUnits().memberships(), 'move', - throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, GAPI.ABORTED], + throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.NOT_FOUND, GAPI.FORBIDDEN, + GAPI.INVALID_ARGUMENT, GAPI.ABORTED], name=name, body=cibody) if not returnIdOnly: Act.Set(Act.MOVE) - entityModifierNewValueActionPerformed([Ent.SHAREDDRIVE, driveId], Act.MODIFIER_TO, f'{Ent.Singular(Ent.ORGANIZATIONAL_UNIT)}: {orgUnit}', i, count) + entityModifierNewValueActionPerformed([Ent.USER, user, Ent.SHAREDDRIVE, driveId], Act.MODIFIER_TO, + f'{Ent.Singular(Ent.ORGANIZATIONAL_UNIT)}: {orgUnit}', i, count) except (GAPI.notFound, GAPI.forbidden, GAPI.aborted, GAPI.badRequest, GAPI.internalError, - GAPI.noManageTeamDriveAdministratorPrivilege) as e: + GAPI.noManageTeamDriveAdministratorPrivilege, GAPI.invalidArgument) as e: entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, driveId], str(e), i, count) except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e: userSvcNotApplicableOrDriveDisabled(user, str(e), i, count)