include includeDerivedMembership option for group sync (#1198)

* include includeDerivedMembership option

in command gam course xxx sync students|teachers group yyyy
I add alternative option group_inde (INclude DErived)

* Avoid interference of new includeDerivedMembership

taers232c suggestion to avoid unexpected interference
This commit is contained in:
Eduardo
2020-05-26 15:30:11 -03:00
committed by GitHub
parent 6e765325c1
commit d2199a5b9c

View File

@ -12118,6 +12118,7 @@ def getUsersToModify(entity_type=None,
checkSuspended=None,
groupUserMembersOnly=True):
got_uids = False
includeDerivedMembership = False
if entity_type is None:
entity_type = sys.argv[1].lower()
if entity is None:
@ -12129,11 +12130,13 @@ def getUsersToModify(entity_type=None,
]
elif entity_type == 'users':
users = entity.replace(',', ' ').split()
elif entity_type in ['group', 'group_ns', 'group_susp']:
elif entity_type in ['group', 'group_ns', 'group_susp','group_inde']:
if entity_type == 'group_ns':
checkSuspended = False
elif entity_type == 'group_susp':
checkSuspended = True
if entity_type == 'group_inde':
includeDerivedMembership = True
got_uids = True
group = entity
if member_type is None:
@ -12156,10 +12159,11 @@ def getUsersToModify(entity_type=None,
page_message=page_message,
groupKey=group,
roles=listRoles,
includeDerivedMembership=includeDerivedMembership,
fields=listFields)
users = []
for member in members:
if ((not groupUserMembersOnly) or
if ((not groupUserMembersOnly and not includeDerivedMembership) or
(member['type'] == 'USER')) and _checkMemberRoleIsSuspended(
member, validRoles, checkSuspended):
users.append(member.get('email', member['id']))