Kevin Hu
commited on
Commit
·
56f42b0
1
Parent(s):
258e6bf
Fix: potential risk (#3515)
Browse files### What problem does this PR solve?
### Type of change
- [x] Refactoring
- api/apps/tenant_app.py +25 -0
api/apps/tenant_app.py
CHANGED
@@ -17,6 +17,7 @@
|
|
17 |
from flask import request
|
18 |
from flask_login import login_required, current_user
|
19 |
|
|
|
20 |
from api.db import UserTenantRole, StatusEnum
|
21 |
from api.db.db_models import UserTenant
|
22 |
from api.db.services.user_service import UserTenantService, UserService
|
@@ -28,6 +29,12 @@ from api.utils.api_utils import get_json_result, validate_request, server_error_
|
|
28 |
@manager.route("/<tenant_id>/user/list", methods=["GET"])
|
29 |
@login_required
|
30 |
def user_list(tenant_id):
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
try:
|
32 |
users = UserTenantService.get_by_tenant_id(tenant_id)
|
33 |
for u in users:
|
@@ -41,6 +48,12 @@ def user_list(tenant_id):
|
|
41 |
@login_required
|
42 |
@validate_request("email")
|
43 |
def create(tenant_id):
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
req = request.json
|
45 |
usrs = UserService.query(email=req["email"])
|
46 |
if not usrs:
|
@@ -70,6 +83,12 @@ def create(tenant_id):
|
|
70 |
@manager.route('/<tenant_id>/user/<user_id>', methods=['DELETE'])
|
71 |
@login_required
|
72 |
def rm(tenant_id, user_id):
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
try:
|
74 |
UserTenantService.filter_delete([UserTenant.tenant_id == tenant_id, UserTenant.user_id == user_id])
|
75 |
return get_json_result(data=True)
|
@@ -92,6 +111,12 @@ def tenant_list():
|
|
92 |
@manager.route("/agree/<tenant_id>", methods=["PUT"])
|
93 |
@login_required
|
94 |
def agree(tenant_id):
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
try:
|
96 |
UserTenantService.filter_update([UserTenant.tenant_id == tenant_id, UserTenant.user_id == current_user.id], {"role": UserTenantRole.NORMAL})
|
97 |
return get_json_result(data=True)
|
|
|
17 |
from flask import request
|
18 |
from flask_login import login_required, current_user
|
19 |
|
20 |
+
from api import settings
|
21 |
from api.db import UserTenantRole, StatusEnum
|
22 |
from api.db.db_models import UserTenant
|
23 |
from api.db.services.user_service import UserTenantService, UserService
|
|
|
29 |
@manager.route("/<tenant_id>/user/list", methods=["GET"])
|
30 |
@login_required
|
31 |
def user_list(tenant_id):
|
32 |
+
if current_user.id != tenant_id:
|
33 |
+
return get_json_result(
|
34 |
+
data=False,
|
35 |
+
message='No authorization.',
|
36 |
+
code=settings.RetCode.AUTHENTICATION_ERROR)
|
37 |
+
|
38 |
try:
|
39 |
users = UserTenantService.get_by_tenant_id(tenant_id)
|
40 |
for u in users:
|
|
|
48 |
@login_required
|
49 |
@validate_request("email")
|
50 |
def create(tenant_id):
|
51 |
+
if current_user.id != tenant_id:
|
52 |
+
return get_json_result(
|
53 |
+
data=False,
|
54 |
+
message='No authorization.',
|
55 |
+
code=settings.RetCode.AUTHENTICATION_ERROR)
|
56 |
+
|
57 |
req = request.json
|
58 |
usrs = UserService.query(email=req["email"])
|
59 |
if not usrs:
|
|
|
83 |
@manager.route('/<tenant_id>/user/<user_id>', methods=['DELETE'])
|
84 |
@login_required
|
85 |
def rm(tenant_id, user_id):
|
86 |
+
if current_user.id != tenant_id:
|
87 |
+
return get_json_result(
|
88 |
+
data=False,
|
89 |
+
message='No authorization.',
|
90 |
+
code=settings.RetCode.AUTHENTICATION_ERROR)
|
91 |
+
|
92 |
try:
|
93 |
UserTenantService.filter_delete([UserTenant.tenant_id == tenant_id, UserTenant.user_id == user_id])
|
94 |
return get_json_result(data=True)
|
|
|
111 |
@manager.route("/agree/<tenant_id>", methods=["PUT"])
|
112 |
@login_required
|
113 |
def agree(tenant_id):
|
114 |
+
if current_user.id != tenant_id:
|
115 |
+
return get_json_result(
|
116 |
+
data=False,
|
117 |
+
message='No authorization.',
|
118 |
+
code=settings.RetCode.AUTHENTICATION_ERROR)
|
119 |
+
|
120 |
try:
|
121 |
UserTenantService.filter_update([UserTenant.tenant_id == tenant_id, UserTenant.user_id == current_user.id], {"role": UserTenantRole.NORMAL})
|
122 |
return get_json_result(data=True)
|