From 98ef879a34a5c82d3c7607f9838e638307eaf6e4 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Sun, 10 Nov 2024 18:57:22 -0800 Subject: [PATCH] Fixed logic flaw in `gam print|show policies` where non-matching policies were displayed. --- docs/GamUpdates.md | 4 ++++ docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md | 4 ++-- docs/Version-and-Help.md | 12 ++++++------ src/GamUpdate.txt | 4 ++++ src/gam/__init__.py | 12 ++++++++---- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index 3da129a9a..5cb7e6ac4 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -10,6 +10,10 @@ 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.38 + +Fixed logic flaw in `gam print|show policies` where non-matching policies were displayed. + ### 7.00.37 Added options `group ` and `ou|org|orgunit ` diff --git a/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md b/docs/How-to-Upgrade-Legacy-GAM-to-GAM7.md index 100b2375e..8ea6eb715 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.37 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.38 - 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.37 - https://github.com/GAM-team/GAM - pythonsource +GAM7 7.00.38 - 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/Version-and-Help.md b/docs/Version-and-Help.md index a7c75b287..d3d04ad25 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.37 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.38 - 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.37 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.38 - 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.37 - https://github.com/GAM-team/GAM - pyinstaller +GAM 7.00.38 - 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.37 + Latest: 7.00.38 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -7.00.37 +7.00.38 ``` 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.37 - https://github.com/GAM-team/GAM +GAM 7.00.38 - 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 954dad5cd..e61925951 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,7 @@ +7.00.38 + +Fixed logic flaw in `gam print|show policies` where non-matching policies were displayed. + 7.00.37 Added options `group ` and `ou|org|orgunit ` diff --git a/src/gam/__init__.py b/src/gam/__init__.py index ab686864c..21d5982af 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -25,7 +25,7 @@ """ __author__ = 'GAM Team ' -__version__ = '7.00.37' +__version__ = '7.00.38' __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)' #pylint: disable=wrong-import-position @@ -35047,13 +35047,17 @@ def _cleanPolicy(policy, add_warnings, no_appnames, policy['warning'] = CIPOLICY_ADDITIONAL_WARNINGS[policy['setting']['type']] if groupId := policy['policyQuery'].get('group'): _, _, policy['policyQuery']['groupEmail'] = convertGroupCloudIDToEmail(groups_ci, groupId) - if groupEmailPattern is not None and not groupEmailPattern.match(policy['policyQuery']['groupEmail']): - return False # all groups are in the root OU so the orgUnit attribute is useless policy['policyQuery'].pop('orgUnit', None) + if groupEmailPattern is not None: + return groupEmailPattern.match(policy['policyQuery']['groupEmail']) + if orgUnitPathPattern is not None: + return False elif orgId := policy['policyQuery'].get('orgUnit'): policy['policyQuery']['orgUnitPath'] = convertOrgUnitIDtoPath(cd, orgId) - if orgUnitPathPattern is not None and not orgUnitPathPattern.match(policy['policyQuery']['orgUnitPath']): + if orgUnitPathPattern is not None: + return orgUnitPathPattern.match(policy['policyQuery']['orgUnitPath']) + if groupEmailPattern is not None: return False return True