|
|
|
@@ -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', |