jinhai-2012 commited on
Commit
d29dd0b
·
1 Parent(s): a891e52

Update team invite message (#4085)

Browse files

### What problem does this PR solve?

Refactor inviting team member message.

### Type of change

- [x] Refactoring

Signed-off-by: jinhai <[email protected]>

Files changed (1) hide show
  1. api/apps/tenant_app.py +13 -11
api/apps/tenant_app.py CHANGED
@@ -55,28 +55,30 @@ def create(tenant_id):
55
  code=settings.RetCode.AUTHENTICATION_ERROR)
56
 
57
  req = request.json
58
- usrs = UserService.query(email=req["email"])
59
- if not usrs:
 
60
  return get_data_error_result(message="User not found.")
61
 
62
- user_id = usrs[0].id
63
- user_tenants = UserTenantService.query(user_id=user_id, tenant_id=tenant_id)
64
  if user_tenants:
65
- if user_tenants[0].role == UserTenantRole.NORMAL:
66
- return get_data_error_result(message="This user is in the team already.")
67
- if user_tenants[0].role == UserTenantRole.OWNER:
68
- return get_data_error_result(message="This user is the owner of the team.")
69
- return get_data_error_result(message="Invitation notification is sent.")
 
70
 
71
  UserTenantService.save(
72
  id=get_uuid(),
73
- user_id=user_id,
74
  tenant_id=tenant_id,
75
  invited_by=current_user.id,
76
  role=UserTenantRole.INVITE,
77
  status=StatusEnum.VALID.value)
78
 
79
- usr = usrs[0].to_dict()
80
  usr = {k: v for k, v in usr.items() if k in ["id", "avatar", "email", "nickname"]}
81
 
82
  return get_json_result(data=usr)
 
55
  code=settings.RetCode.AUTHENTICATION_ERROR)
56
 
57
  req = request.json
58
+ invite_user_email = req["email"]
59
+ invite_users = UserService.query(email=invite_user_email)
60
+ if not invite_users:
61
  return get_data_error_result(message="User not found.")
62
 
63
+ user_id_to_invite = invite_users[0].id
64
+ user_tenants = UserTenantService.query(user_id=user_id_to_invite, tenant_id=tenant_id)
65
  if user_tenants:
66
+ user_tenant_role = user_tenants[0].role
67
+ if user_tenant_role == UserTenantRole.NORMAL:
68
+ return get_data_error_result(message=f"{invite_user_email} is already in the team.")
69
+ if user_tenant_role == UserTenantRole.OWNER:
70
+ return get_data_error_result(message=f"{invite_user_email} is the owner of the team.")
71
+ return get_data_error_result(message=f"{invite_user_email} is in the team, but the role: {user_tenant_role} is invalid.")
72
 
73
  UserTenantService.save(
74
  id=get_uuid(),
75
+ user_id=user_id_to_invite,
76
  tenant_id=tenant_id,
77
  invited_by=current_user.id,
78
  role=UserTenantRole.INVITE,
79
  status=StatusEnum.VALID.value)
80
 
81
+ usr = invite_users[0].to_dict()
82
  usr = {k: v for k, v in usr.items() if k in ["id", "avatar", "email", "nickname"]}
83
 
84
  return get_json_result(data=usr)