Skip to content

Commit

Permalink
Updated gam print group-members|cigroup-members to include the `ema…
Browse files Browse the repository at this point in the history
…il` column when `fields <MembersFieldNameList>` did not include `email`.
  • Loading branch information
taers232c committed Feb 16, 2025
1 parent af43db4 commit 0d9e35d
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 15 deletions.
5 changes: 3 additions & 2 deletions src/GamCommands.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3997,13 +3997,14 @@ gam print cigroups [todrive <ToDriveAttribute>*]

<CIGroupMembersFieldName> ::=
createtime
email|useremail|
expiretime|
memberkey|
name|
role|
type|
updatetime|
useremail
updatetime

<CIGroupMembersFieldNameList> ::= "<CIGroupMembersFieldName>(,<CIGroupMembersFieldName>)*"

gam <UserTypeEntity> info cimember <GroupEntity>
Expand Down
7 changes: 7 additions & 0 deletions src/GamUpdate.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
7.04.04

Updated `gam print group-members|cigroup-members` to include the `email` column
when `fields <MembersFieldNameList>` did not include `email`.

7.04.03

Added option `minimal|basic|full` to `gam print cigroup-members`:
Expand All @@ -10,6 +15,8 @@ Added option `minimal|basic|full` to `gam show cigroup-members`:
* `basic` - Fields displayed: type, role, email
* `full` - Fields displayed: type, role, email, createTime, updateTime; this is the default

Upgraded `gam print cigroup-members ... recursive` to display sub-group email addresses rather than IDs.

7.04.02

Improved output formatting for the following commands:
Expand Down
34 changes: 21 additions & 13 deletions src/gam/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"""

__author__ = 'GAM Team <[email protected]>'
__version__ = '7.04.03'
__version__ = '7.04.04'
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'

#pylint: disable=wrong-import-position
Expand Down Expand Up @@ -7324,12 +7324,6 @@ def _getRawFields(requiredField=None):
return rawFields
return f'{requiredField},{rawFields}'

def _addInitialField(fieldsList, initialField):
if isinstance(initialField, list):
fieldsList.extend(initialField)
else:
fieldsList.append(initialField)

def CheckInputRowFilterHeaders(titlesList, rowFilter, rowDropFilter):
status = True
for filterVal in rowFilter:
Expand Down Expand Up @@ -7744,6 +7738,12 @@ def filterMatch(filterVal):
# }
# fieldsList is the list of API fields
def getFieldsList(myarg, fieldsChoiceMap, fieldsList, initialField=None, fieldsArg='fields', onlyFieldsArg=False):
def addInitialField():
if isinstance(initialField, list):
fieldsList.extend(initialField)
else:
fieldsList.append(initialField)

def addMappedFields(mappedFields):
if isinstance(mappedFields, list):
fieldsList.extend(mappedFields)
Expand All @@ -7752,11 +7752,11 @@ def addMappedFields(mappedFields):

if not onlyFieldsArg and myarg in fieldsChoiceMap:
if not fieldsList and initialField is not None:
_addInitialField(fieldsList, initialField)
addInitialField()
addMappedFields(fieldsChoiceMap[myarg])
elif myarg == fieldsArg:
if not fieldsList and initialField is not None:
_addInitialField(fieldsList, initialField)
addInitialField()
for field in _getFieldsList():
if field in fieldsChoiceMap:
addMappedFields(fieldsChoiceMap[field])
Expand Down Expand Up @@ -7933,14 +7933,21 @@ def AddField(self, fieldName, fieldNameMap, fieldsList):
fieldsList.append(fields)
self.AddTitles(fields.replace('.', GC.Values[GC.CSV_OUTPUT_SUBFIELD_DELIMITER]))

def addInitialField(self, initialField, fieldsChoiceMap, fieldsList):
if isinstance(initialField, list):
for field in initialField:
self.AddField(field, fieldsChoiceMap, fieldsList)
else:
self.AddField(initialField, fieldsChoiceMap, fieldsList)

def GetFieldsListTitles(self, fieldName, fieldsChoiceMap, fieldsList, initialField=None):
if fieldName in fieldsChoiceMap:
if not fieldsList and initialField is not None:
_addInitialField(fieldsList, initialField)
self.addInitialField(initialField, fieldsChoiceMap, fieldsList)
self.AddField(fieldName, fieldsChoiceMap, fieldsList)
elif fieldName == 'fields':
if not fieldsList and initialField is not None:
_addInitialField(fieldsList, initialField)
self.addInitialField(initialField, fieldsChoiceMap, fieldsList)
for field in _getFieldsList():
if field in fieldsChoiceMap:
self.AddField(field, fieldsChoiceMap, fieldsList)
Expand Down Expand Up @@ -34206,7 +34213,7 @@ def getNameFromPeople(memberId):
pass
elif getMemberMatchOptions(myarg, memberOptions):
pass
elif csvPF.GetFieldsListTitles(myarg, GROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList):
elif csvPF.GetFieldsListTitles(myarg, GROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList, initialField='email'):
pass
elif myarg == 'membernames':
memberOptions[MEMBEROPTION_MEMBERNAMES] = True
Expand Down Expand Up @@ -36223,6 +36230,7 @@ def getCIGroupMembers(ci, groupName, memberRoles, membersList, membersSet, i, co
'createtime': 'createTime',
'delivery': 'deliverySetting',
'deliverysettings': 'deliverySetting',
'email': 'preferredMemberKey',
'expiretime': 'expireTime',
'id': 'name',
'memberkey': 'preferredMemberKey',
Expand Down Expand Up @@ -36309,7 +36317,7 @@ def doPrintCIGroupMembers():
pass
elif getMemberMatchOptions(myarg, memberOptions):
pass
elif getFieldsList(myarg, CIGROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList):
elif getFieldsList(myarg, CIGROUPMEMBERS_FIELDS_CHOICE_MAP, fieldsList, initialField='preferredMemberKey'):
pass
elif myarg == 'noduplicates':
memberOptions[MEMBEROPTION_NODUPLICATES] = True
Expand Down

0 comments on commit 0d9e35d

Please sign in to comment.