From 01d1caecf7772f87b1a317af4ac0cf122124a026 Mon Sep 17 00:00:00 2001 From: Joe <1264204425@qq.com> Date: Mon, 30 Sep 2024 10:34:21 +0800 Subject: [PATCH] fix: unique_tenant_account_join --- api/services/account_service.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/api/services/account_service.py b/api/services/account_service.py index 4649462760..7316b18cce 100644 --- a/api/services/account_service.py +++ b/api/services/account_service.py @@ -421,9 +421,14 @@ class TenantService: if TenantService.has_roles(tenant, [TenantAccountJoinRole.OWNER]): logging.error(f"Tenant {tenant.id} has already an owner.") raise Exception("Tenant already has an owner.") + + ta = db.session.query(TenantAccountJoin).filter_by(tenant_id=tenant.id, account_id=account.id).first() + if ta: + ta.role = role + else: + ta = TenantAccountJoin(tenant_id=tenant.id, account_id=account.id, role=role) + db.session.add(ta) - ta = TenantAccountJoin(tenant_id=tenant.id, account_id=account.id, role=role) - db.session.add(ta) db.session.commit() return ta