prevent bad contact delegations

This commit is contained in:
Jay Lee
2020-12-14 14:26:22 +00:00
parent bfa039a612
commit 2e3195c5ee
2 changed files with 18 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ import os.path
import sys
import gam
from gam.gapi.directory import users as gapi_directory_users
from gam import controlflow
from gam import display
from gam import gapi
@@ -17,7 +18,11 @@ def build():
def create(users):
condel = build()
delegate = gam.normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
delegate = gapi_directory_users.get_primary(delegate)
body = {'email': delegate}
if not delegate:
controlflow.system_error_exit(5,
f'{sys.argv[5]} is not the primary address of a user.')
i = 0
count = len(users)
for user in users:
@@ -25,7 +30,6 @@ def create(users):
print(
f'Granting {delegate} contact delegate access to {user}{gam.currentCount(i, count)}'
)
body
gapi.call(condel.delegates(),
'create',
soft_errors=True,

View File

@@ -2,6 +2,19 @@ import gam
from gam import gapi
from gam.gapi import directory as gapi_directory
def get_primary(email):
'''returns primary email of user or empty if email is not a user primary or
alias address.'''
cd = gapi_directory.build()
result = gapi.call(cd.users(), 'get', userKey=email,
projection='basic', fields='primaryEmail',
soft_errors=True)
if not result:
return ''
return result.get('primaryEmail', '').lower()
def signout(users):
cd = gapi_directory.build()
i = 0