Skip to content

Commit 21caedd

Browse files
authored
feature/single-organization-limit (#4620)
feat: enforce single organization limit during registration
1 parent e17994d commit 21caedd

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

packages/server/src/enterprise/services/account.service.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,19 @@ export class AccountService {
104104
}
105105
}
106106

107+
private async ensureOneOrganizationOnly(queryRunner: QueryRunner) {
108+
const organizations = await this.organizationservice.readOrganization(queryRunner)
109+
if (organizations.length > 0) throw new InternalFlowiseError(StatusCodes.BAD_REQUEST, 'You can only have one organization')
110+
}
111+
107112
private async createRegisterAccount(data: AccountDTO, queryRunner: QueryRunner) {
108113
data = this.initializeAccountDTO(data)
109114

110115
const platform = this.identityManager.getPlatformType()
111116

112117
switch (platform) {
113118
case Platform.OPEN_SOURCE:
119+
await this.ensureOneOrganizationOnly(queryRunner)
114120
data.organization.name = OrganizationName.DEFAULT_ORGANIZATION
115121
data.organizationUser.role = await this.roleService.readGeneralRoleByName(GeneralRole.OWNER, queryRunner)
116122
data.workspace.name = WorkspaceName.DEFAULT_WORKSPACE
@@ -196,6 +202,7 @@ export class AccountService {
196202
data.workspace.name = WorkspaceName.DEFAULT_PERSONAL_WORKSPACE
197203
data.workspaceUser.role = await this.roleService.readGeneralRoleByName(GeneralRole.PERSONAL_WORKSPACE, queryRunner)
198204
} else {
205+
await this.ensureOneOrganizationOnly(queryRunner)
199206
data.organizationUser.role = await this.roleService.readGeneralRoleByName(GeneralRole.OWNER, queryRunner)
200207
data.workspace.name = WorkspaceName.DEFAULT_WORKSPACE
201208
data.workspaceUser.role = data.organizationUser.role

0 commit comments

Comments
 (0)