in server/TenantManagementService/tenant-management.py [0:0]
def activate_tenant(event, context):
table_tenant_details = __getTenantManagementTable(event)
url_enable_users = os.environ['ENABLE_USERS_BY_TENANT']
url_provision_tenant = os.environ['PROVISION_TENANT']
stage_name = event['requestContext']['stage']
host = event['headers']['Host']
auth = utils.get_auth(host, region)
headers = utils.get_headers(event)
requesting_tenant_id = event['requestContext']['authorizer']['tenantId']
user_role = event['requestContext']['authorizer']['userRole']
tenant_id = event['pathParameters']['tenantid']
tracer.put_annotation(key="TenantId", value=tenant_id)
logger.log_with_tenant_context(event, "Request received to activate tenant")
if (auth_manager.isSystemAdmin(user_role)):
response = table_tenant_details.update_item(
Key={
'tenantId': tenant_id,
},
UpdateExpression="set isActive = :isActive",
ExpressionAttributeValues={
':isActive': True
},
ReturnValues="ALL_NEW"
)
logger.log_with_tenant_context(event, response)
if (response["Attributes"]["dedicatedTenancy"].upper() == "TRUE"):
update_details = {}
update_details['tenantId'] = tenant_id
provision_response = __invoke_provision_tenant(update_details, headers, auth, host, stage_name, url_provision_tenant)
logger.log_with_tenant_context(event, provision_response)
update_details = {}
update_details['userPoolId'] = response["Attributes"]['userPoolId']
update_details['tenantId'] = tenant_id
update_details['requestingTenantId'] = requesting_tenant_id
update_details['userRole'] = user_role
update_user_response = __invoke_enable_users(update_details, headers, auth, host, stage_name, url_enable_users)
logger.log_with_tenant_context(event, update_user_response)
logger.log_with_tenant_context(event, "Request completed to activate tenant")
return utils.create_success_response("Tenant Activated")
else:
logger.log_with_tenant_context(event, "Request completed as unauthorized. Only system admin can activate tenant!")
return utils.create_unauthorized_response()