gam7 7.4.3__tar.gz → 7.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gam7 might be problematic. Click here for more details.

Files changed (107) hide show
  1. {gam7-7.4.3 → gam7-7.4.4}/PKG-INFO +1 -1
  2. {gam7-7.4.3 → gam7-7.4.4}/src/GamCommands.txt +3 -2
  3. {gam7-7.4.3 → gam7-7.4.4}/src/GamUpdate.txt +7 -0
  4. {gam7-7.4.3 → gam7-7.4.4}/src/gam/__init__.py +21 -13
  5. {gam7-7.4.3 → gam7-7.4.4}/.github/ISSUE_TEMPLATE/aa-question.md +0 -0
  6. {gam7-7.4.3 → gam7-7.4.4}/.github/ISSUE_TEMPLATE/za-bug-report.md +0 -0
  7. {gam7-7.4.3 → gam7-7.4.4}/.github/ISSUE_TEMPLATE/zz-feature-request.md +0 -0
  8. {gam7-7.4.3 → gam7-7.4.4}/.github/ISSUE_TEMPLATE.txt +0 -0
  9. {gam7-7.4.3 → gam7-7.4.4}/.github/actions/creds.tar.xz.gpg +0 -0
  10. {gam7-7.4.3 → gam7-7.4.4}/.github/actions/decrypt.sh +0 -0
  11. {gam7-7.4.3 → gam7-7.4.4}/.github/actions/entitlements.plist +0 -0
  12. {gam7-7.4.3 → gam7-7.4.4}/.github/actions/package_exclusions.txt +0 -0
  13. {gam7-7.4.3 → gam7-7.4.4}/.github/stale.yml +0 -0
  14. {gam7-7.4.3 → gam7-7.4.4}/.github/workflows/build.yml +0 -0
  15. {gam7-7.4.3 → gam7-7.4.4}/.github/workflows/codeql-analysis.yml +0 -0
  16. {gam7-7.4.3 → gam7-7.4.4}/.github/workflows/get-cacerts.yml +0 -0
  17. {gam7-7.4.3 → gam7-7.4.4}/.github/workflows/pypi.yml +0 -0
  18. {gam7-7.4.3 → gam7-7.4.4}/.pre-commit-config.yaml +0 -0
  19. {gam7-7.4.3 → gam7-7.4.4}/LICENSE +0 -0
  20. {gam7-7.4.3 → gam7-7.4.4}/README.md +0 -0
  21. {gam7-7.4.3 → gam7-7.4.4}/pyproject.toml +0 -0
  22. {gam7-7.4.3 → gam7-7.4.4}/src/.gitignore +0 -0
  23. {gam7-7.4.3 → gam7-7.4.4}/src/LICENSE +0 -0
  24. {gam7-7.4.3 → gam7-7.4.4}/src/cacerts.pem +0 -0
  25. {gam7-7.4.3 → gam7-7.4.4}/src/callgam.py +0 -0
  26. {gam7-7.4.3 → gam7-7.4.4}/src/gam/__main__.py +0 -0
  27. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/__init__.py +0 -0
  28. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/auth.py +0 -0
  29. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/client.py +0 -0
  30. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/core.py +0 -0
  31. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/data.py +0 -0
  32. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/http.py +0 -0
  33. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/http_core.py +0 -0
  34. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/http_interface.py +0 -0
  35. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/mock_http.py +0 -0
  36. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/mock_http_core.py +0 -0
  37. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/mock_service.py +0 -0
  38. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/service.py +0 -0
  39. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/token_store.py +0 -0
  40. {gam7-7.4.3 → gam7-7.4.4}/src/gam/atom/url.py +0 -0
  41. {gam7-7.4.3 → gam7-7.4.4}/src/gam/cacerts.pem +0 -0
  42. {gam7-7.4.3 → gam7-7.4.4}/src/gam/cbcm-v1.1beta1.json +0 -0
  43. {gam7-7.4.3 → gam7-7.4.4}/src/gam/contactdelegation-v1.json +0 -0
  44. {gam7-7.4.3 → gam7-7.4.4}/src/gam/datastudio-v1.json +0 -0
  45. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/__init__.py +0 -0
  46. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glaction.py +0 -0
  47. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glapi.py +0 -0
  48. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glcfg.py +0 -0
  49. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glclargs.py +0 -0
  50. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glentity.py +0 -0
  51. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glgapi.py +0 -0
  52. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glgdata.py +0 -0
  53. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glglobals.py +0 -0
  54. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glindent.py +0 -0
  55. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glmsgs.py +0 -0
  56. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glskus.py +0 -0
  57. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/gluprop.py +0 -0
  58. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/glverlibs.py +0 -0
  59. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gamlib/yubikey.py +0 -0
  60. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/__init__.py +0 -0
  61. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/alt/__init__.py +0 -0
  62. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/alt/app_engine.py +0 -0
  63. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/alt/appengine.py +0 -0
  64. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/__init__.py +0 -0
  65. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/audit/__init__.py +0 -0
  66. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/audit/service.py +0 -0
  67. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/contacts/__init__.py +0 -0
  68. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/contacts/service.py +0 -0
  69. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/apps/service.py +0 -0
  70. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/service.py +0 -0
  71. {gam7-7.4.3 → gam7-7.4.4}/src/gam/gdata/urlfetch.py +0 -0
  72. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/__init__.py +0 -0
  73. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/_auth.py +0 -0
  74. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/_helpers.py +0 -0
  75. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/channel.py +0 -0
  76. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/discovery.py +0 -0
  77. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/discovery_cache/__init__.py +0 -0
  78. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/discovery_cache/appengine_memcache.py +0 -0
  79. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/discovery_cache/base.py +0 -0
  80. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/discovery_cache/file_cache.py +0 -0
  81. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/errors.py +0 -0
  82. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/http.py +0 -0
  83. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/mimeparse.py +0 -0
  84. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/model.py +0 -0
  85. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/schema.py +0 -0
  86. {gam7-7.4.3 → gam7-7.4.4}/src/gam/googleapiclient/version.py +0 -0
  87. {gam7-7.4.3 → gam7-7.4.4}/src/gam/iso8601/__init__.py +0 -0
  88. {gam7-7.4.3 → gam7-7.4.4}/src/gam/iso8601/iso8601.py +0 -0
  89. {gam7-7.4.3 → gam7-7.4.4}/src/gam/serviceaccountlookup-v1.json +0 -0
  90. {gam7-7.4.3 → gam7-7.4.4}/src/gam/six.py +0 -0
  91. {gam7-7.4.3 → gam7-7.4.4}/src/gam-install.sh +0 -0
  92. {gam7-7.4.3 → gam7-7.4.4}/src/gam-setup.bat +0 -0
  93. {gam7-7.4.3 → gam7-7.4.4}/src/gam.exe.manifest +0 -0
  94. {gam7-7.4.3 → gam7-7.4.4}/src/gam.py +0 -0
  95. {gam7-7.4.3 → gam7-7.4.4}/src/gam.spec +0 -0
  96. {gam7-7.4.3 → gam7-7.4.4}/src/gam.wxs +0 -0
  97. {gam7-7.4.3 → gam7-7.4.4}/src/license.rtf +0 -0
  98. {gam7-7.4.3 → gam7-7.4.4}/src/project-apis.txt +0 -0
  99. {gam7-7.4.3 → gam7-7.4.4}/src/requirements-dev.txt +0 -0
  100. {gam7-7.4.3 → gam7-7.4.4}/src/requirements.txt +0 -0
  101. {gam7-7.4.3 → gam7-7.4.4}/src/setup.cfg +0 -0
  102. {gam7-7.4.3 → gam7-7.4.4}/src/setup.py +0 -0
  103. {gam7-7.4.3 → gam7-7.4.4}/src/tools/a_atleast_b.py +0 -0
  104. {gam7-7.4.3 → gam7-7.4.4}/src/tools/gen-wix-xml-filelist.py +0 -0
  105. {gam7-7.4.3 → gam7-7.4.4}/src/tools/mkGamRef.py +0 -0
  106. {gam7-7.4.3 → gam7-7.4.4}/src/tools/openssl.props +0 -0
  107. {gam7-7.4.3 → gam7-7.4.4}/src/version_info.txt.in +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.4.3
3
+ Version: 7.4.4
4
4
  Summary: CLI tool to manage Google Workspace
5
5
  Project-URL: Homepage, https://github.com/GAM-team/GAM
6
6
  Project-URL: Issues, https://github.com/GAM-team/GAM/issues
@@ -3997,13 +3997,14 @@ gam print cigroups [todrive <ToDriveAttribute>*]
3997
3997
 
3998
3998
  <CIGroupMembersFieldName> ::=
3999
3999
  createtime
4000
+ email|useremail|
4000
4001
  expiretime|
4001
4002
  memberkey|
4002
4003
  name|
4003
4004
  role|
4004
4005
  type|
4005
- updatetime|
4006
- useremail
4006
+ updatetime
4007
+
4007
4008
  <CIGroupMembersFieldNameList> ::= "<CIGroupMembersFieldName>(,<CIGroupMembersFieldName>)*"
4008
4009
 
4009
4010
  gam <UserTypeEntity> info cimember <GroupEntity>
@@ -1,3 +1,8 @@
1
+ 7.04.04
2
+
3
+ Updated `gam print group-members|cigroup-members` to include the `email` column
4
+ when `fields <MembersFieldNameList>` did not include `email`.
5
+
1
6
  7.04.03
2
7
 
3
8
  Added option `minimal|basic|full` to `gam print cigroup-members`:
@@ -10,6 +15,8 @@ Added option `minimal|basic|full` to `gam show cigroup-members`:
10
15
  * `basic` - Fields displayed: type, role, email
11
16
  * `full` - Fields displayed: type, role, email, createTime, updateTime; this is the default
12
17
 
18
+ Upgraded `gam print cigroup-members ... recursive` to display sub-group email addresses rather than IDs.
19
+
13
20
  7.04.02
14
21
 
15
22
  Improved output formatting for the following commands:
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
25
25
  """
26
26
 
27
27
  __author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
28
- __version__ = '7.04.03'
28
+ __version__ = '7.04.04'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -7324,12 +7324,6 @@ def _getRawFields(requiredField=None):
7324
7324
  return rawFields
7325
7325
  return f'{requiredField},{rawFields}'
7326
7326
 
7327
- def _addInitialField(fieldsList, initialField):
7328
- if isinstance(initialField, list):
7329
- fieldsList.extend(initialField)
7330
- else:
7331
- fieldsList.append(initialField)
7332
-
7333
7327
  def CheckInputRowFilterHeaders(titlesList, rowFilter, rowDropFilter):
7334
7328
  status = True
7335
7329
  for filterVal in rowFilter:
@@ -7744,6 +7738,12 @@ def RowFilterMatch(row, titlesList, rowFilter, rowFilterModeAll, rowDropFilter,
7744
7738
  # }
7745
7739
  # fieldsList is the list of API fields
7746
7740
  def getFieldsList(myarg, fieldsChoiceMap, fieldsList, initialField=None, fieldsArg='fields', onlyFieldsArg=False):
7741
+ def addInitialField():
7742
+ if isinstance(initialField, list):
7743
+ fieldsList.extend(initialField)
7744
+ else:
7745
+ fieldsList.append(initialField)
7746
+
7747
7747
  def addMappedFields(mappedFields):
7748
7748
  if isinstance(mappedFields, list):
7749
7749
  fieldsList.extend(mappedFields)
@@ -7752,11 +7752,11 @@ def getFieldsList(myarg, fieldsChoiceMap, fieldsList, initialField=None, fieldsA
7752
7752
 
7753
7753
  if not onlyFieldsArg and myarg in fieldsChoiceMap:
7754
7754
  if not fieldsList and initialField is not None:
7755
- _addInitialField(fieldsList, initialField)
7755
+ addInitialField()
7756
7756
  addMappedFields(fieldsChoiceMap[myarg])
7757
7757
  elif myarg == fieldsArg:
7758
7758
  if not fieldsList and initialField is not None:
7759
- _addInitialField(fieldsList, initialField)
7759
+ addInitialField()
7760
7760
  for field in _getFieldsList():
7761
7761
  if field in fieldsChoiceMap:
7762
7762
  addMappedFields(fieldsChoiceMap[field])
@@ -7933,14 +7933,21 @@ class CSVPrintFile():
7933
7933
  fieldsList.append(fields)
7934
7934
  self.AddTitles(fields.replace('.', GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]))
7935
7935
 
7936
+ def addInitialField(self, initialField, fieldsChoiceMap, fieldsList):
7937
+ if isinstance(initialField, list):
7938
+ for field in initialField:
7939
+ self.AddField(field, fieldsChoiceMap, fieldsList)
7940
+ else:
7941
+ self.AddField(initialField, fieldsChoiceMap, fieldsList)
7942
+
7936
7943
  def GetFieldsListTitles(self, fieldName, fieldsChoiceMap, fieldsList, initialField=None):
7937
7944
  if fieldName in fieldsChoiceMap:
7938
7945
  if not fieldsList and initialField is not None:
7939
- _addInitialField(fieldsList, initialField)
7946
+ self.addInitialField(initialField, fieldsChoiceMap, fieldsList)
7940
7947
  self.AddField(fieldName, fieldsChoiceMap, fieldsList)
7941
7948
  elif fieldName == 'fields':
7942
7949
  if not fieldsList and initialField is not None:
7943
- _addInitialField(fieldsList, initialField)
7950
+ self.addInitialField(initialField, fieldsChoiceMap, fieldsList)
7944
7951
  for field in _getFieldsList():
7945
7952
  if field in fieldsChoiceMap:
7946
7953
  self.AddField(field, fieldsChoiceMap, fieldsList)
@@ -34206,7 +34213,7 @@ def doPrintGroupMembers():
34206
34213
  pass
34207
34214
  elif getMemberMatchOptions(myarg, memberOptions):
34208
34215
  pass
34209
- elif csvPF.GetFieldsListTitles(myarg, GROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList):
34216
+ elif csvPF.GetFieldsListTitles(myarg, GROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList, initialField='email'):
34210
34217
  pass
34211
34218
  elif myarg == 'membernames':
34212
34219
  memberOptions[MEMBEROPTION_MEMBERNAMES] = True
@@ -36223,6 +36230,7 @@ CIGROUPMEMBERS_FIELDS_CHOICE_MAP = {
36223
36230
  'createtime': 'createTime',
36224
36231
  'delivery': 'deliverySetting',
36225
36232
  'deliverysettings': 'deliverySetting',
36233
+ 'email': 'preferredMemberKey',
36226
36234
  'expiretime': 'expireTime',
36227
36235
  'id': 'name',
36228
36236
  'memberkey': 'preferredMemberKey',
@@ -36309,7 +36317,7 @@ def doPrintCIGroupMembers():
36309
36317
  pass
36310
36318
  elif getMemberMatchOptions(myarg, memberOptions):
36311
36319
  pass
36312
- elif getFieldsList(myarg, CIGROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList):
36320
+ elif getFieldsList(myarg, CIGROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList, initialField='preferredMemberKey'):
36313
36321
  pass
36314
36322
  elif myarg == 'noduplicates':
36315
36323
  memberOptions[MEMBEROPTION_NODUPLICATES] = True
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes