diff --git a/api/apps/tenant_app.py b/api/apps/tenant_app.py index f0f487a89..42b4d0a14 100644 --- a/api/apps/tenant_app.py +++ b/api/apps/tenant_app.py @@ -55,28 +55,30 @@ def create(tenant_id): code=settings.RetCode.AUTHENTICATION_ERROR) req = request.json - usrs = UserService.query(email=req["email"]) - if not usrs: + invite_user_email = req["email"] + invite_users = UserService.query(email=invite_user_email) + if not invite_users: return get_data_error_result(message="User not found.") - user_id = usrs[0].id - user_tenants = UserTenantService.query(user_id=user_id, tenant_id=tenant_id) + user_id_to_invite = invite_users[0].id + user_tenants = UserTenantService.query(user_id=user_id_to_invite, tenant_id=tenant_id) if user_tenants: - if user_tenants[0].role == UserTenantRole.NORMAL: - return get_data_error_result(message="This user is in the team already.") - if user_tenants[0].role == UserTenantRole.OWNER: - return get_data_error_result(message="This user is the owner of the team.") - return get_data_error_result(message="Invitation notification is sent.") + user_tenant_role = user_tenants[0].role + if user_tenant_role == UserTenantRole.NORMAL: + return get_data_error_result(message=f"{invite_user_email} is already in the team.") + if user_tenant_role == UserTenantRole.OWNER: + return get_data_error_result(message=f"{invite_user_email} is the owner of the team.") + return get_data_error_result(message=f"{invite_user_email} is in the team, but the role: {user_tenant_role} is invalid.") UserTenantService.save( id=get_uuid(), - user_id=user_id, + user_id=user_id_to_invite, tenant_id=tenant_id, invited_by=current_user.id, role=UserTenantRole.INVITE, status=StatusEnum.VALID.value) - usr = usrs[0].to_dict() + usr = invite_users[0].to_dict() usr = {k: v for k, v in usr.items() if k in ["id", "avatar", "email", "nickname"]} return get_json_result(data=usr)