diff --git a/api/apps/tenant_app.py b/api/apps/tenant_app.py index 3199071710e..f1bf6c99e20 100644 --- a/api/apps/tenant_app.py +++ b/api/apps/tenant_app.py @@ -13,11 +13,17 @@ # See the License for the specific language governing permissions and # limitations under the License. # + +from flask import request from flask_login import current_user, login_required -from api.utils.api_utils import server_error_response +from api.db import UserTenantRole, StatusEnum +from api.db.db_models import UserTenant from api.db.services.user_service import TenantService, UserTenantService -from api.utils.api_utils import get_json_result +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"]) @@ -29,6 +35,7 @@ def tenant_list(): except Exception as e: return server_error_response(e) + @manager.route("//user/list", methods=["GET"]) @login_required def user_list(tenant_id): @@ -37,3 +44,42 @@ def user_list(tenant_id): return get_json_result(data=users) except Exception as e: return server_error_response(e) + + +@manager.route('//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('//user/', 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) + \ No newline at end of file