|
@@ -1,15 +1,16 @@
|
|
|
# -*- coding:utf-8 -*-
|
|
|
+from flask import current_app
|
|
|
+from flask_login import current_user
|
|
|
+from flask_restful import Resource, abort, fields, marshal_with, reqparse
|
|
|
+
|
|
|
import services
|
|
|
from controllers.console import api
|
|
|
from controllers.console.setup import setup_required
|
|
|
from controllers.console.wraps import account_initialization_required, cloud_edition_billing_resource_check
|
|
|
from extensions.ext_database import db
|
|
|
-from flask import current_app
|
|
|
-from flask_login import current_user
|
|
|
-from flask_restful import Resource, abort, fields, marshal, marshal_with, reqparse
|
|
|
from libs.helper import TimestampField
|
|
|
from libs.login import login_required
|
|
|
-from models.account import Account, TenantAccountJoin
|
|
|
+from models.account import Account
|
|
|
from services.account_service import RegisterService, TenantService
|
|
|
|
|
|
account_fields = {
|
|
@@ -64,18 +65,12 @@ class MemberInviteEmailApi(Resource):
|
|
|
for invitee_email in invitee_emails:
|
|
|
try:
|
|
|
token = RegisterService.invite_new_member(inviter.current_tenant, invitee_email, role=invitee_role,
|
|
|
- inviter=inviter)
|
|
|
- account = db.session.query(Account, TenantAccountJoin.role).join(
|
|
|
- TenantAccountJoin, Account.id == TenantAccountJoin.account_id
|
|
|
- ).filter(Account.email == invitee_email).first()
|
|
|
- account, role = account
|
|
|
+ inviter=inviter)
|
|
|
invitation_results.append({
|
|
|
'status': 'success',
|
|
|
'email': invitee_email,
|
|
|
'url': f'{console_web_url}/activate?email={invitee_email}&token={token}'
|
|
|
})
|
|
|
- account = marshal(account, account_fields)
|
|
|
- account['role'] = role
|
|
|
except Exception as e:
|
|
|
invitation_results.append({
|
|
|
'status': 'failed',
|