Better error on user delete pre-condition.

This commit is contained in:
Jay Lee
2022-01-14 13:50:10 -05:00
parent 15b1ce370c
commit 259c952636
2 changed files with 18 additions and 8 deletions

View File

@ -9445,13 +9445,6 @@ def doDeprovUser(users):
print(f'Done deprovisioning {user}')
def doDeleteUser():
cd = buildGAPIObject('directory')
user_email = normalizeEmailAddressOrUID(sys.argv[3])
print(f'Deleting account for {user_email}')
gapi.call(cd.users(), 'delete', userKey=user_email)
def doUndeleteUser():
cd = buildGAPIObject('directory')
user = normalizeEmailAddressOrUID(sys.argv[3])
@ -11626,7 +11619,7 @@ def ProcessGAMCommand(args):
elif command == 'delete':
argument = sys.argv[2].lower()
if argument == 'user':
doDeleteUser()
gapi_directory_users.delete()
elif argument == 'group':
gapi_directory_groups.delete()
elif argument == 'device':

View File

@ -1,11 +1,28 @@
import sys
from time import sleep
import gam
from gam import display
from gam import gapi
from gam.gapi import directory as gapi_directory
from gam.gapi import errors as gapi_errors
def delete():
cd = gapi_directory.build()
user_email = gam.normalizeEmailAddressOrUID(sys.argv[3])
print(f'Deleting account for {user_email}')
try:
gapi.call(cd.users(),
'delete',
userKey=user_email,
throw_reasons=[gapi_errors.ErrorReason.CONDITION_NOT_MET])
except gam.gapi.errors.GapiConditionNotMetError as err:
display.print_error(
f'{err} The user {user_email} may be (or have recently been) on Google Vault Hold and thus not eligible for deletion. You can check holds with "gam user <email> show vaultholds".'
)
def get_primary(email):
'''returns primary email of user or empty if email is not a user primary or
alias address.'''