mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-04 04:41:35 +00:00
Clean up Cloud Identity groups/Fix get drivefile csvsheet (#1228)
* Clean up Cloud Identity groups * Fix issue in get drivefile Updated code in downloadDriveFile to handle unexpected data in spreadsheetUrl after /edit ``` https://docs.google.com/spreadsheets/d/%3Cdocidhere%3E/edit?ouid=1234567890123456&urlBuilderDomain=mydomain.edu ```
This commit is contained in:
@@ -3890,7 +3890,7 @@ def downloadDriveFile(users):
|
|||||||
if sheet['properties']['title'].lower(
|
if sheet['properties']['title'].lower(
|
||||||
) == csvSheetTitleLower:
|
) == csvSheetTitleLower:
|
||||||
spreadsheetUrl = '{0}?format=csv&id={1}&gid={2}'.format(
|
spreadsheetUrl = '{0}?format=csv&id={1}&gid={2}'.format(
|
||||||
re.sub('/edit$', '/export',
|
re.sub('/edit.*$', '/export',
|
||||||
spreadsheet['spreadsheetUrl']),
|
spreadsheet['spreadsheetUrl']),
|
||||||
fileId, sheet['properties']['sheetId'])
|
fileId, sheet['properties']['sheetId'])
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -17,9 +17,7 @@ def create():
|
|||||||
initialGroupConfig = 'EMPTY'
|
initialGroupConfig = 'EMPTY'
|
||||||
gapi_directory_customer.setTrueCustomerId()
|
gapi_directory_customer.setTrueCustomerId()
|
||||||
parent = f'customers/{GC_Values[GC_CUSTOMER_ID]}'
|
parent = f'customers/{GC_Values[GC_CUSTOMER_ID]}'
|
||||||
body = {'groupKey': {
|
body = {'groupKey': {'id': gam.normalizeEmailAddressOrUID(sys.argv[3], noUid=True)},
|
||||||
'id': gam.normalizeEmailAddressOrUID(sys.argv[3], noUid=True)
|
|
||||||
},
|
|
||||||
'parent': parent,
|
'parent': parent,
|
||||||
'labels': {'cloudidentity.googleapis.com/groups.discussion_forum': ''},
|
'labels': {'cloudidentity.googleapis.com/groups.discussion_forum': ''},
|
||||||
}
|
}
|
||||||
@@ -148,7 +146,6 @@ def print_():
|
|||||||
members = membersCountOnly = managers = managersCountOnly = owners = ownersCountOnly = False
|
members = membersCountOnly = managers = managersCountOnly = owners = ownersCountOnly = False
|
||||||
gapi_directory_customer.setTrueCustomerId()
|
gapi_directory_customer.setTrueCustomerId()
|
||||||
parent = f'customers/{GC_Values[GC_CUSTOMER_ID]}'
|
parent = f'customers/{GC_Values[GC_CUSTOMER_ID]}'
|
||||||
aliasDelimiter = ' '
|
|
||||||
memberDelimiter = '\n'
|
memberDelimiter = '\n'
|
||||||
todrive = False
|
todrive = False
|
||||||
titles = []
|
titles = []
|
||||||
@@ -161,7 +158,7 @@ def print_():
|
|||||||
todrive = True
|
todrive = True
|
||||||
i += 1
|
i += 1
|
||||||
elif myarg == 'delimiter':
|
elif myarg == 'delimiter':
|
||||||
aliasDelimiter = memberDelimiter = sys.argv[i + 1]
|
memberDelimiter = sys.argv[i + 1]
|
||||||
i += 2
|
i += 2
|
||||||
elif myarg == 'sortheaders':
|
elif myarg == 'sortheaders':
|
||||||
sortHeaders = True
|
sortHeaders = True
|
||||||
@@ -235,7 +232,7 @@ def print_():
|
|||||||
sys.stderr.write(
|
sys.stderr.write(
|
||||||
f' Getting {roles} for {groupEmail}{gam.currentCountNL(i, count)}')
|
f' Getting {roles} for {groupEmail}{gam.currentCountNL(i, count)}')
|
||||||
page_message = gapi.got_total_items_first_last_msg('Members')
|
page_message = gapi.got_total_items_first_last_msg('Members')
|
||||||
validRoles, listRoles, listFields = gam._getRoleVerification(
|
validRoles, _, _ = gam._getRoleVerification(
|
||||||
roles, 'nextPageToken,members(email,id,role)')
|
roles, 'nextPageToken,members(email,id,role)')
|
||||||
groupMembers = gapi.get_all_pages(ci.groups().memberships(),
|
groupMembers = gapi.get_all_pages(ci.groups().memberships(),
|
||||||
'list',
|
'list',
|
||||||
@@ -555,7 +552,6 @@ def update():
|
|||||||
name = membership_email_to_id(ci, parent, users_email[0])
|
name = membership_email_to_id(ci, parent, users_email[0])
|
||||||
addRoles = []
|
addRoles = []
|
||||||
removeRoles = []
|
removeRoles = []
|
||||||
new_role = {'role': role}
|
|
||||||
current_roles = gapi.call(ci.groups().memberships(), 'get', name=name,
|
current_roles = gapi.call(ci.groups().memberships(), 'get', name=name,
|
||||||
fields='roles').get('roles', [])
|
fields='roles').get('roles', [])
|
||||||
current_roles = [role['name'] for role in current_roles]
|
current_roles = [role['name'] for role in current_roles]
|
||||||
@@ -670,7 +666,7 @@ def group_email_to_id(ci, group, i=0, count=0):
|
|||||||
gapi_errors.GapiDomainNotFoundError,
|
gapi_errors.GapiDomainNotFoundError,
|
||||||
gapi_errors.GapiDomainCannotUseApisError,
|
gapi_errors.GapiDomainCannotUseApisError,
|
||||||
gapi_errors.GapiForbiddenError, gapi_errors.GapiBadRequestError):
|
gapi_errors.GapiForbiddenError, gapi_errors.GapiBadRequestError):
|
||||||
entityUnknownWarning('Group', group, i, count)
|
gam.entityUnknownWarning('Group', group, i, count)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def membership_email_to_id(ci, parent, membership, i=0, count=0):
|
def membership_email_to_id(ci, parent, membership, i=0, count=0):
|
||||||
@@ -687,7 +683,7 @@ def membership_email_to_id(ci, parent, membership, i=0, count=0):
|
|||||||
gapi_errors.GapiDomainNotFoundError,
|
gapi_errors.GapiDomainNotFoundError,
|
||||||
gapi_errors.GapiDomainCannotUseApisError,
|
gapi_errors.GapiDomainCannotUseApisError,
|
||||||
gapi_errors.GapiForbiddenError, gapi_errors.GapiBadRequestError):
|
gapi_errors.GapiForbiddenError, gapi_errors.GapiBadRequestError):
|
||||||
entityUnknownWarning('Membership', member_email, i, count)
|
gam.entityUnknownWarning('Membership', membership, i, count)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@@ -695,7 +691,7 @@ def get_single_role(roles):
|
|||||||
''' returns the highest role of member '''
|
''' returns the highest role of member '''
|
||||||
roles = [role.get('name') for role in roles]
|
roles = [role.get('name') for role in roles]
|
||||||
if not roles:
|
if not roles:
|
||||||
return
|
return ROLE_MEMBER
|
||||||
for a_role in [ROLE_OWNER, ROLE_MANAGER, ROLE_MEMBER]:
|
for a_role in [ROLE_OWNER, ROLE_MANAGER, ROLE_MEMBER]:
|
||||||
if a_role in roles:
|
if a_role in roles:
|
||||||
return a_role
|
return a_role
|
||||||
@@ -706,6 +702,5 @@ def filter_members_to_roles(members, roles):
|
|||||||
for member in members:
|
for member in members:
|
||||||
role = get_single_role(member.get('roles', []))
|
role = get_single_role(member.get('roles', []))
|
||||||
if role in roles:
|
if role in roles:
|
||||||
filtered_members.include(member)
|
filtered_members.append(member)
|
||||||
return filtered_members
|
return filtered_members
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user