WangBaoling commited on
Commit
51e8d71
·
1 Parent(s): a7e962d

feat: add tenant api of create & delete user (#2204)

Browse files

### What problem does this PR solve?

_Briefly describe what this PR aims to solve. Include background context
that will help reviewers understand the purpose of the PR._

### Type of change

- [x] New Feature (non-breaking change which adds functionality)

Files changed (1) hide show
  1. api/apps/tenant_app.py +48 -2
api/apps/tenant_app.py CHANGED
@@ -13,11 +13,17 @@
13
  # See the License for the specific language governing permissions and
14
  # limitations under the License.
15
  #
 
 
16
  from flask_login import current_user, login_required
17
 
18
- from api.utils.api_utils import server_error_response
 
19
  from api.db.services.user_service import TenantService, UserTenantService
20
- from api.utils.api_utils import get_json_result
 
 
 
21
 
22
 
23
  @manager.route("/list", methods=["GET"])
@@ -29,6 +35,7 @@ def tenant_list():
29
  except Exception as e:
30
  return server_error_response(e)
31
 
 
32
  @manager.route("/<tenant_id>/user/list", methods=["GET"])
33
  @login_required
34
  def user_list(tenant_id):
@@ -37,3 +44,42 @@ def user_list(tenant_id):
37
  return get_json_result(data=users)
38
  except Exception as e:
39
  return server_error_response(e)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  # See the License for the specific language governing permissions and
14
  # limitations under the License.
15
  #
16
+
17
+ from flask import request
18
  from flask_login import current_user, login_required
19
 
20
+ from api.db import UserTenantRole, StatusEnum
21
+ from api.db.db_models import UserTenant
22
  from api.db.services.user_service import TenantService, UserTenantService
23
+ from api.settings import RetCode
24
+
25
+ from api.utils import get_uuid
26
+ from api.utils.api_utils import get_json_result, validate_request, server_error_response
27
 
28
 
29
  @manager.route("/list", methods=["GET"])
 
35
  except Exception as e:
36
  return server_error_response(e)
37
 
38
+
39
  @manager.route("/<tenant_id>/user/list", methods=["GET"])
40
  @login_required
41
  def user_list(tenant_id):
 
44
  return get_json_result(data=users)
45
  except Exception as e:
46
  return server_error_response(e)
47
+
48
+
49
+ @manager.route('/<tenant_id>/user', methods=['POST'])
50
+ @login_required
51
+ @validate_request("user_id")
52
+ def create(tenant_id):
53
+ user_id = request.json.get("user_id")
54
+ if not user_id:
55
+ return get_json_result(
56
+ data=False, retmsg='Lack of "USER ID"', retcode=RetCode.ARGUMENT_ERROR)
57
+
58
+ try:
59
+ user_tenants = UserTenantService.query(user_id=user_id, tenant_id=tenant_id)
60
+ if user_tenants:
61
+ uuid = user_tenants[0].id
62
+ return get_json_result(data={"id": uuid})
63
+
64
+ uuid = get_uuid()
65
+ UserTenantService.save(
66
+ id = uuid,
67
+ user_id = user_id,
68
+ tenant_id = tenant_id,
69
+ role = UserTenantRole.NORMAL.value,
70
+ status = StatusEnum.VALID.value)
71
+
72
+ return get_json_result(data={"id": uuid})
73
+ except Exception as e:
74
+ return server_error_response(e)
75
+
76
+
77
+ @manager.route('/<tenant_id>/user/<user_id>', methods=['DELETE'])
78
+ @login_required
79
+ def rm(tenant_id, user_id):
80
+ try:
81
+ UserTenantService.filter_delete([UserTenant.tenant_id == tenant_id, UserTenant.user_id == user_id])
82
+ return get_json_result(data=True)
83
+ except Exception as e:
84
+ return server_error_response(e)
85
+