mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-09 06:03:35 +00:00
gam group <GroupName> should only return users except when updating groups (#406)
This commit is contained in:
17
src/gam.py
17
src/gam.py
@ -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,7 +9084,8 @@ 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:
|
||||||
users.append(member.get(u'email', member[u'id']))
|
if (not groupUserMembersOnly) or (member[u'type'] == u'USER'):
|
||||||
|
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
|
||||||
ou = entity
|
ou = entity
|
||||||
|
Reference in New Issue
Block a user