stable-diffusion-aws-extension/middleware_api/lambda/users/delete_users.py

42 lines
1.3 KiB
Python

import json
import logging
import os
from common.const import PERMISSION_USER_ALL
from common.ddb_service.client import DynamoDbUtilsService
from common.response import no_content
from create_user import _check_action_permission
from libs.data_types import PARTITION_KEYS
from libs.utils import permissions_check, response_error
user_table = os.environ.get('MULTI_USER_TABLE')
logger = logging.getLogger(__name__)
logger.setLevel(os.environ.get('LOG_LEVEL') or logging.ERROR)
ddb_service = DynamoDbUtilsService(logger=logger)
def handler(event, ctx):
try:
logger.info(json.dumps(event))
body = json.loads(event['body'])
user_name_list = body['user_name_list']
requestor_name = permissions_check(event, [PERMISSION_USER_ALL])
for username in user_name_list:
check_permission_resp = _check_action_permission(requestor_name, username)
if check_permission_resp:
return check_permission_resp
# todo: need to figure out what happens to user's resources: models, inferences, trainings and so on
ddb_service.delete_item(user_table, keys={
'kind': PARTITION_KEYS.user,
'sort_key': username
})
return no_content(message='Users Deleted')
except Exception as e:
return response_error(e)