|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from flask import request |
|
from flask_login import current_user, login_required |
|
|
|
from api.db import UserTenantRole, StatusEnum |
|
from api.db.db_models import UserTenant |
|
from api.db.services.user_service import TenantService, UserTenantService |
|
from api.settings import RetCode |
|
|
|
from api.utils import get_uuid |
|
from api.utils.api_utils import get_json_result, validate_request, server_error_response |
|
|
|
|
|
@manager.route("/list", methods=["GET"]) |
|
@login_required |
|
def tenant_list(): |
|
try: |
|
tenants = TenantService.get_by_user_id(current_user.id) |
|
return get_json_result(data=tenants) |
|
except Exception as e: |
|
return server_error_response(e) |
|
|
|
|
|
@manager.route("/<tenant_id>/user/list", methods=["GET"]) |
|
@login_required |
|
def user_list(tenant_id): |
|
try: |
|
users = UserTenantService.get_by_tenant_id(tenant_id) |
|
return get_json_result(data=users) |
|
except Exception as e: |
|
return server_error_response(e) |
|
|
|
|
|
@manager.route('/<tenant_id>/user', methods=['POST']) |
|
@login_required |
|
@validate_request("user_id") |
|
def create(tenant_id): |
|
user_id = request.json.get("user_id") |
|
if not user_id: |
|
return get_json_result( |
|
data=False, retmsg='Lack of "USER ID"', retcode=RetCode.ARGUMENT_ERROR) |
|
|
|
try: |
|
user_tenants = UserTenantService.query(user_id=user_id, tenant_id=tenant_id) |
|
if user_tenants: |
|
uuid = user_tenants[0].id |
|
return get_json_result(data={"id": uuid}) |
|
|
|
uuid = get_uuid() |
|
UserTenantService.save( |
|
id = uuid, |
|
user_id = user_id, |
|
tenant_id = tenant_id, |
|
role = UserTenantRole.NORMAL.value, |
|
status = StatusEnum.VALID.value) |
|
|
|
return get_json_result(data={"id": uuid}) |
|
except Exception as e: |
|
return server_error_response(e) |
|
|
|
|
|
@manager.route('/<tenant_id>/user/<user_id>', methods=['DELETE']) |
|
@login_required |
|
def rm(tenant_id, user_id): |
|
try: |
|
UserTenantService.filter_delete([UserTenant.tenant_id == tenant_id, UserTenant.user_id == user_id]) |
|
return get_json_result(data=True) |
|
except Exception as e: |
|
return server_error_response(e) |
|
|