gam7 7.23.6__py3-none-any.whl → 7.23.7__py3-none-any.whl

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.

gam/__init__.py CHANGED
@@ -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.23.06'
28
+ __version__ = '7.23.07'
29
29
  __license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
30
30
 
31
31
  #pylint: disable=wrong-import-position
@@ -16998,22 +16998,11 @@ ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP = {
16998
16998
  }
16999
16999
  ALL_ASSIGNEE_TYPES = ['user', 'group', 'serviceaccount']
17000
17000
 
17001
- PRINT_ADMIN_FIELDS = ['roleAssignmentId', 'roleId', 'assignedTo', 'scopeType', 'orgUnitId', 'assigneeType']
17001
+ PRINT_ADMIN_FIELDS = ['roleAssignmentId', 'roleId', 'assignedTo', 'scopeType', 'orgUnitId']
17002
17002
  PRINT_ADMIN_TITLES = ['roleAssignmentId', 'roleId', 'role',
17003
17003
  'assignedTo', 'assignedToUser', 'assignedToGroup', 'assignedToServiceAccount', 'assignedToUnknown',
17004
17004
  'scopeType', 'orgUnitId', 'orgUnit']
17005
17005
 
17006
- def getAssigneeTypes(myarg, typesSet):
17007
- if myarg in {'type', 'types'}:
17008
- for gtype in getString(Cmd.OB_ADMIN_ASSIGNEE_TYPE_LIST).lower().replace(',', ' ').split():
17009
- if gtype in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP:
17010
- typesSet.add(ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[gtype])
17011
- else:
17012
- invalidChoiceExit(gtype, ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, True)
17013
- else:
17014
- return False
17015
- return True
17016
-
17017
17006
  # gam print admins [todrive <ToDriveAttribute>*]
17018
17007
  # [user|group <EmailAddress>|<UniqueID>] [role <RoleItem>]
17019
17008
  # [types <AdminAssigneeTypeList>]
@@ -17023,6 +17012,17 @@ def getAssigneeTypes(myarg, typesSet):
17023
17012
  # [types <AdminAssigneeTypeList>]
17024
17013
  # [recursive] [condition] [privileges]
17025
17014
  def doPrintShowAdmins():
17015
+ def _getAssigneeTypes(myarg):
17016
+ if myarg in {'type', 'types'}:
17017
+ for gtype in getString(Cmd.OB_ADMIN_ASSIGNEE_TYPE_LIST).lower().replace(',', ' ').split():
17018
+ if gtype in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP:
17019
+ typesSet.add(ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[gtype])
17020
+ else:
17021
+ invalidChoiceExit(gtype, ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP, True)
17022
+ else:
17023
+ return False
17024
+ return True
17025
+
17026
17026
  def _getPrivileges(admin):
17027
17027
  if showPrivileges:
17028
17028
  roleId = admin['roleId']
@@ -17048,9 +17048,10 @@ def doPrintShowAdmins():
17048
17048
  def _setNamesFromIds(admin, privileges):
17049
17049
  admin['role'] = role_from_roleid(admin['roleId'])
17050
17050
  assignedTo = admin['assignedTo']
17051
+ admin['assignedToUnknown'] = False
17051
17052
  if assignedTo not in assignedToIdEmailMap:
17052
- assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal,
17053
- emailTypes=ALL_ASSIGNEE_TYPES if admin.get('assigneeType') != 'group' else ['group'])
17053
+ emailTypes = ALL_ASSIGNEE_TYPES if admin.get('assigneeType', '') != 'group' else ['group']
17054
+ assigneeEmail, assigneeType = convertUIDtoEmailAddressWithType(f'uid:{assignedTo}', cd, sal, emailTypes=emailTypes)
17054
17055
  if assigneeType in ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP:
17055
17056
  assignedToField = ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP[assigneeType]
17056
17057
  else:
@@ -17069,17 +17070,21 @@ def doPrintShowAdmins():
17069
17070
  admin['condition'] = 'securitygroup'
17070
17071
  elif admin['condition'] == NONSECURITY_GROUP_CONDITION:
17071
17072
  admin['condition'] = 'nonsecuritygroup'
17073
+ if debug:
17074
+ print('******', admin['assignedTo'], admin.get('assigneeType', 'no type'),
17075
+ admin['assignedToField'], not typesSet or admin['assignedToField'] in typesSet)
17076
+ return not typesSet or admin['assignedToField'] in typesSet
17072
17077
 
17073
17078
  cd = buildGAPIObject(API.DIRECTORY)
17074
17079
  sal = buildGAPIObject(API.SERVICEACCOUNTLOOKUP)
17075
17080
  csvPF = CSVPrintFile(PRINT_ADMIN_TITLES) if Act.csvFormat() else None
17076
17081
  roleId = None
17077
17082
  userKey = None
17078
- oneItemPerRow = recursive = showPrivileges = False
17083
+ debug = oneItemPerRow = recursive = showPrivileges = False
17079
17084
  typesSet = set()
17080
17085
  kwargs = {}
17081
17086
  rolePrivileges = {}
17082
- fieldsList = PRINT_ADMIN_FIELDS
17087
+ fieldsList = PRINT_ADMIN_FIELDS+['assigneeType']
17083
17088
  assignedToIdEmailMap = {}
17084
17089
  while Cmd.ArgumentsRemaining():
17085
17090
  myarg = getArgument()
@@ -17089,7 +17094,7 @@ def doPrintShowAdmins():
17089
17094
  userKey = kwargs['userKey'] = getEmailAddress()
17090
17095
  elif myarg == 'role':
17091
17096
  _, roleId = getRoleId()
17092
- elif getAssigneeTypes(myarg, typesSet):
17097
+ elif _getAssigneeTypes(myarg):
17093
17098
  pass
17094
17099
  elif myarg == 'recursive':
17095
17100
  recursive = True
@@ -17108,13 +17113,13 @@ def doPrintShowAdmins():
17108
17113
  showPrivileges = True
17109
17114
  elif myarg == 'oneitemperrow':
17110
17115
  oneItemPerRow = True
17116
+ elif myarg == 'debug':
17117
+ debug = True
17111
17118
  else:
17112
17119
  unknownArgumentExit()
17113
17120
  if roleId and not kwargs:
17114
17121
  kwargs['roleId'] = roleId
17115
17122
  roleId = None
17116
- if not typesSet:
17117
- typesSet = set(ADMIN_ASSIGNEE_TYPE_TO_ASSIGNEDTO_FIELD_MAP.values())
17118
17123
  fields = getItemFieldsFromFieldsList('items', fieldsList)
17119
17124
  printGettingAllAccountEntities(Ent.ADMIN_ROLE_ASSIGNMENT)
17120
17125
  try:
@@ -17147,8 +17152,7 @@ def doPrintShowAdmins():
17147
17152
  continue
17148
17153
  assignedTo = admin['assignedTo']
17149
17154
  if admin['assigneeType'] != 'group' or not recursive:
17150
- _setNamesFromIds(admin, _getPrivileges(admin))
17151
- if admin['assignedToField'] in typesSet:
17155
+ if _setNamesFromIds(admin, _getPrivileges(admin)):
17152
17156
  expandedAdmins.append(admin)
17153
17157
  continue
17154
17158
  if assignedTo not in groupMembers:
@@ -17158,8 +17162,7 @@ def doPrintShowAdmins():
17158
17162
  getGroupMembers(cd, assignedTo, allGroupRoles, membersList, membersSet, i, count,
17159
17163
  memberOptions, memberDisplayOptions, level, {Ent.TYPE_USER})
17160
17164
  groupMembers[assignedTo] = membersList[:]
17161
- _setNamesFromIds(admin, _getPrivileges(admin))
17162
- if admin[assignedToIdEmailMap[assignedTo]['assignedToField']] not in typesSet:
17165
+ if not _setNamesFromIds(admin, _getPrivileges(admin)):
17163
17166
  continue
17164
17167
  expandedAdmins.append(admin)
17165
17168
  if not groupMembers[assignedTo]:
@@ -17184,7 +17187,7 @@ def doPrintShowAdmins():
17184
17187
  Ind.Increment()
17185
17188
  for field in PRINT_ADMIN_TITLES:
17186
17189
  if field in admin:
17187
- if field == 'roleAssignmentId':
17190
+ if (field == 'roleAssignmentId') or (field == 'assignedToUnknown' and not admin[field]):
17188
17191
  continue
17189
17192
  printKeyValueList([field, admin[field]])
17190
17193
  if showPrivileges:
@@ -17199,6 +17202,7 @@ def doPrintShowAdmins():
17199
17202
  Ind.Decrement()
17200
17203
  else:
17201
17204
  for admin in expandedAdmins:
17205
+ admin.pop('assigneeType', None)
17202
17206
  admin.pop('assignedToField')
17203
17207
  if not oneItemPerRow or 'rolePrivileges' not in admin:
17204
17208
  csvPF.WriteRowTitles(flattenJSON(admin))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gam7
3
- Version: 7.23.6
3
+ Version: 7.23.7
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
@@ -1,4 +1,4 @@
1
- gam/__init__.py,sha256=hT_6mB1-IGqw6dWjKeo0W3EQF73Ve2_NjiX_xB7INIc,3623383
1
+ gam/__init__.py,sha256=4YrLoMJgKhbcDviaShnbuPe-BAk8K_GZF8H-TtlObxM,3623580
2
2
  gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
3
3
  gam/cacerts.pem,sha256=DUsVo2XlFYwfkhe3gnxa-Km4Z4noz74hSApXwTT-nQE,44344
4
4
  gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
@@ -47,8 +47,8 @@ gam/gdata/apps/audit/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrK
47
47
  gam/gdata/apps/audit/service.py,sha256=Z1eueThcNeVUMWP1DRWc_DGHrJCiJI8W_xj6L-cqu-Q,9658
48
48
  gam/gdata/apps/contacts/__init__.py,sha256=Um6zgIkiahZns7yAEuC3pxHSMD8iciZ_EoynSLoYPfU,30463
49
49
  gam/gdata/apps/contacts/service.py,sha256=5lNb-Ii1Gyek6ePFji3kyoYtCBc8CuJTwagx2BL2o14,15684
50
- gam7-7.23.6.dist-info/METADATA,sha256=BEAOLvBw21I1PEiIFYzkqJhHRdWQeu1_BzMSM6LDzrU,3092
51
- gam7-7.23.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
- gam7-7.23.6.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
- gam7-7.23.6.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
- gam7-7.23.6.dist-info/RECORD,,
50
+ gam7-7.23.7.dist-info/METADATA,sha256=2BHtjvFhi6hIfTYI-IaSHB8pv4Omsqb3l1zJ0C9qBK8,3092
51
+ gam7-7.23.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
52
+ gam7-7.23.7.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
53
+ gam7-7.23.7.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
54
+ gam7-7.23.7.dist-info/RECORD,,
File without changes