mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-05 21:31:35 +00:00
Allow identifying resources by id
This commit is contained in:
22
src/gam.py
22
src/gam.py
@@ -1329,13 +1329,15 @@ def buildGAPIObject(api):
|
|||||||
return service
|
return service
|
||||||
|
|
||||||
# Convert UID to email address
|
# Convert UID to email address
|
||||||
def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'):
|
def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_types=['user']):
|
||||||
|
if type(email_types) is str:
|
||||||
|
email_types = email_types.split(',')
|
||||||
normalizedEmailAddressOrUID = normalizeEmailAddressOrUID(emailAddressOrUID)
|
normalizedEmailAddressOrUID = normalizeEmailAddressOrUID(emailAddressOrUID)
|
||||||
if normalizedEmailAddressOrUID.find('@') > 0:
|
if normalizedEmailAddressOrUID.find('@') > 0:
|
||||||
return normalizedEmailAddressOrUID
|
return normalizedEmailAddressOrUID
|
||||||
if not cd:
|
if not cd:
|
||||||
cd = buildGAPIObject('directory')
|
cd = buildGAPIObject('directory')
|
||||||
if email_type == 'user':
|
if 'user' in email_types:
|
||||||
try:
|
try:
|
||||||
result = callGAPI(cd.users(), 'get',
|
result = callGAPI(cd.users(), 'get',
|
||||||
throw_reasons=[GAPI_USER_NOT_FOUND],
|
throw_reasons=[GAPI_USER_NOT_FOUND],
|
||||||
@@ -1344,7 +1346,7 @@ def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'):
|
|||||||
return result['primaryEmail'].lower()
|
return result['primaryEmail'].lower()
|
||||||
except GAPI_userNotFound:
|
except GAPI_userNotFound:
|
||||||
pass
|
pass
|
||||||
else:
|
if 'group' in email_types:
|
||||||
try:
|
try:
|
||||||
result = callGAPI(cd.groups(), 'get',
|
result = callGAPI(cd.groups(), 'get',
|
||||||
throw_reasons=[GAPI_GROUP_NOT_FOUND],
|
throw_reasons=[GAPI_GROUP_NOT_FOUND],
|
||||||
@@ -1353,6 +1355,16 @@ def convertUIDtoEmailAddress(emailAddressOrUID, cd=None, email_type='user'):
|
|||||||
return result['email'].lower()
|
return result['email'].lower()
|
||||||
except GAPI_groupNotFound:
|
except GAPI_groupNotFound:
|
||||||
pass
|
pass
|
||||||
|
if 'resource' in email_types:
|
||||||
|
try:
|
||||||
|
result = callGAPI(cd.resources().calendars(), 'get',
|
||||||
|
throw_reasons=[GAPI_RESOURCE_NOT_FOUND],
|
||||||
|
calendarResourceId=normalizedEmailAddressOrUID,
|
||||||
|
customer=GC_Values[GC_CUSTOMER_ID], fields='resourceEmail')
|
||||||
|
if 'resourceEmail' in result:
|
||||||
|
return result['resourceEmail'].lower()
|
||||||
|
except GAPI_resourceNotFound:
|
||||||
|
pass
|
||||||
return normalizedEmailAddressOrUID
|
return normalizedEmailAddressOrUID
|
||||||
|
|
||||||
# Convert email address to UID
|
# Convert email address to UID
|
||||||
@@ -1415,7 +1427,7 @@ def normalizeCalendarId(calname, checkPrimary=False):
|
|||||||
return calname
|
return calname
|
||||||
if not GC_Values[GC_DOMAIN]:
|
if not GC_Values[GC_DOMAIN]:
|
||||||
GC_Values[GC_DOMAIN] = _getValueFromOAuth('hd')
|
GC_Values[GC_DOMAIN] = _getValueFromOAuth('hd')
|
||||||
return convertUIDtoEmailAddress(calname)
|
return convertUIDtoEmailAddress(calname, email_types=['user', 'resource'])
|
||||||
|
|
||||||
def buildCalendarGAPIObject(calname):
|
def buildCalendarGAPIObject(calname):
|
||||||
calendarId = normalizeCalendarId(calname)
|
calendarId = normalizeCalendarId(calname)
|
||||||
@@ -8330,7 +8342,7 @@ def doGetVaultHoldInfo():
|
|||||||
account_type = 'group' if results['corpus'] == 'GROUPS' else 'user'
|
account_type = 'group' if results['corpus'] == 'GROUPS' else 'user'
|
||||||
for i in range(0, len(results['accounts'])):
|
for i in range(0, len(results['accounts'])):
|
||||||
uid = 'uid:%s' % results['accounts'][i]['accountId']
|
uid = 'uid:%s' % results['accounts'][i]['accountId']
|
||||||
acct_email = convertUIDtoEmailAddress(uid, cd, account_type)
|
acct_email = convertUIDtoEmailAddress(uid, cd, [account_type])
|
||||||
results['accounts'][i]['email'] = acct_email
|
results['accounts'][i]['email'] = acct_email
|
||||||
if 'orgUnit' in results:
|
if 'orgUnit' in results:
|
||||||
results['orgUnit']['orgUnitPath'] = doGetOrgInfo(results['orgUnit']['orgUnitId'], return_attrib='orgUnitPath')
|
results['orgUnit']['orgUnitPath'] = doGetOrgInfo(results['orgUnit']['orgUnitId'], return_attrib='orgUnitPath')
|
||||||
|
|||||||
Reference in New Issue
Block a user