mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
prevent bad contact delegations
This commit is contained in:
@@ -5,6 +5,7 @@ import os.path
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
import gam
|
import gam
|
||||||
|
from gam.gapi.directory import users as gapi_directory_users
|
||||||
from gam import controlflow
|
from gam import controlflow
|
||||||
from gam import display
|
from gam import display
|
||||||
from gam import gapi
|
from gam import gapi
|
||||||
@@ -17,7 +18,11 @@ def build():
|
|||||||
def create(users):
|
def create(users):
|
||||||
condel = build()
|
condel = build()
|
||||||
delegate = gam.normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
delegate = gam.normalizeEmailAddressOrUID(sys.argv[5], noUid=True)
|
||||||
|
delegate = gapi_directory_users.get_primary(delegate)
|
||||||
body = {'email': 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
|
i = 0
|
||||||
count = len(users)
|
count = len(users)
|
||||||
for user in users:
|
for user in users:
|
||||||
@@ -25,7 +30,6 @@ def create(users):
|
|||||||
print(
|
print(
|
||||||
f'Granting {delegate} contact delegate access to {user}{gam.currentCount(i, count)}'
|
f'Granting {delegate} contact delegate access to {user}{gam.currentCount(i, count)}'
|
||||||
)
|
)
|
||||||
body
|
|
||||||
gapi.call(condel.delegates(),
|
gapi.call(condel.delegates(),
|
||||||
'create',
|
'create',
|
||||||
soft_errors=True,
|
soft_errors=True,
|
||||||
|
|||||||
@@ -2,6 +2,19 @@ import gam
|
|||||||
from gam import gapi
|
from gam import gapi
|
||||||
from gam.gapi import directory as gapi_directory
|
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):
|
def signout(users):
|
||||||
cd = gapi_directory.build()
|
cd = gapi_directory.build()
|
||||||
i = 0
|
i = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user