gam group <GroupName> should only return users except when updating groups (#406)

This commit is contained in:
Ross Scroggs
2017-01-26 12:18:34 -08:00
committed by Jay Lee
parent 7acfa4a2ac
commit 31871f192c

View File

@ -6575,7 +6575,7 @@ def doUpdateGroup():
checkNotSuspended = True checkNotSuspended = True
i += 1 i += 1
if sys.argv[i].lower() in usergroup_types: if sys.argv[i].lower() in usergroup_types:
users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], checkNotSuspended=checkNotSuspended) users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], checkNotSuspended=checkNotSuspended, groupUserMembersOnly=False)
else: else:
users_email = [sys.argv[i],] users_email = [sys.argv[i],]
for user_email in users_email: for user_email in users_email:
@ -6596,9 +6596,9 @@ def doUpdateGroup():
if sys.argv[i] == u'notsuspended': if sys.argv[i] == u'notsuspended':
checkNotSuspended = True checkNotSuspended = True
i += 1 i += 1
users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], checkNotSuspended=checkNotSuspended) users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], checkNotSuspended=checkNotSuspended, groupUserMembersOnly=False)
users_email = [x.lower() for x in users_email] users_email = [x.lower() for x in users_email]
current_emails = getUsersToModify(entity_type=u'group', entity=group, member_type=role) current_emails = getUsersToModify(entity_type=u'group', entity=group, member_type=role, groupUserMembersOnly=False)
current_emails = [x.lower() for x in current_emails] current_emails = [x.lower() for x in current_emails]
to_add = list(set(users_email) - set(current_emails)) to_add = list(set(users_email) - set(current_emails))
to_remove = list(set(current_emails) - set(users_email)) to_remove = list(set(current_emails) - set(users_email))
@ -6614,7 +6614,7 @@ def doUpdateGroup():
if sys.argv[i].lower() in [u'member', u'manager', u'owner']: if sys.argv[i].lower() in [u'member', u'manager', u'owner']:
i += 1 i += 1
if sys.argv[i].lower() in usergroup_types: if sys.argv[i].lower() in usergroup_types:
user_emails = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1]) user_emails = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], groupUserMembersOnly=False)
else: else:
user_emails = [sys.argv[i],] user_emails = [sys.argv[i],]
for user_email in user_emails: for user_email in user_emails:
@ -6631,7 +6631,7 @@ def doUpdateGroup():
role = sys.argv[i].upper() role = sys.argv[i].upper()
i += 1 i += 1
if sys.argv[i].lower() in usergroup_types: if sys.argv[i].lower() in usergroup_types:
users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1]) users_email = getUsersToModify(entity_type=sys.argv[i], entity=sys.argv[i+1], groupUserMembersOnly=False)
else: else:
users_email = [sys.argv[i],] users_email = [sys.argv[i],]
body = {u'role': role} body = {u'role': role}
@ -6658,7 +6658,7 @@ def doUpdateGroup():
roles = u','.join(sorted(set(roles))) roles = u','.join(sorted(set(roles)))
else: else:
roles = ROLE_MEMBER roles = ROLE_MEMBER
user_emails = getUsersToModify(entity_type=u'group', entity=group, member_type=roles) user_emails = getUsersToModify(entity_type=u'group', entity=group, member_type=roles, groupUserMembersOnly=False)
for user_email in user_emails: for user_email in user_emails:
sys.stderr.write(u' removing %s\n' % user_email) sys.stderr.write(u' removing %s\n' % user_email)
callGAPI(cd.members(), u'delete', soft_errors=True, groupKey=group, memberKey=user_email) callGAPI(cd.members(), u'delete', soft_errors=True, groupKey=group, memberKey=user_email)
@ -9056,7 +9056,7 @@ def doPrintResourceCalendars():
csvRows.append(resUnit) csvRows.append(resUnit)
writeCSVfile(csvRows, titles, u'Resources', todrive) writeCSVfile(csvRows, titles, u'Resources', todrive)
def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=None, checkNotSuspended=False): def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=None, checkNotSuspended=False, groupUserMembersOnly=True):
got_uids = False got_uids = False
if entity_type is None: if entity_type is None:
entity_type = sys.argv[1].lower() entity_type = sys.argv[1].lower()
@ -9084,6 +9084,7 @@ def getUsersToModify(entity_type=None, entity=None, silent=False, member_type=No
groupKey=group, roles=member_type, fields=u'nextPageToken,members(email,id,type)') groupKey=group, roles=member_type, fields=u'nextPageToken,members(email,id,type)')
users = [] users = []
for member in members: for member in members:
if (not groupUserMembersOnly) or (member[u'type'] == u'USER'):
users.append(member.get(u'email', member[u'id'])) users.append(member.get(u'email', member[u'id']))
elif entity_type in [u'ou', u'org']: elif entity_type in [u'ou', u'org']:
got_uids = True got_uids = True