diff --git a/server/src/modules/login-configs/util.service.ts b/server/src/modules/login-configs/util.service.ts index 9c3387bba9..2690d7d82e 100644 --- a/server/src/modules/login-configs/util.service.ts +++ b/server/src/modules/login-configs/util.service.ts @@ -44,11 +44,13 @@ export class LoginConfigsUtilService implements ILoginConfigsUtilService { organizationIdOrSlug: string, statusList?: Array, isHideSensitiveData?: boolean, - addInstanceLevelSSO?: boolean + addInstanceLevelSSO?: boolean, + allowArchivedWorkspace: boolean = false ): Promise> { const result: Organization = await this.organizationRepository.fetchOrganizationWithSSOConfigs( organizationIdOrSlug, - statusList + statusList, + allowArchivedWorkspace ); if (!result) return; diff --git a/server/src/modules/organizations/repository.ts b/server/src/modules/organizations/repository.ts index 5bd59c96fd..e2acdd0f01 100644 --- a/server/src/modules/organizations/repository.ts +++ b/server/src/modules/organizations/repository.ts @@ -19,7 +19,11 @@ export class OrganizationRepository extends Repository { return await this.findOne({ where: { id }, relations: ['ssoConfigs'] }); } - async fetchOrganizationWithSSOConfigs(slug: string, statusList?: Array): Promise { + async fetchOrganizationWithSSOConfigs( + slug: string, + statusList?: Array, + allowArchivedWorkspace: boolean = false + ): Promise { const conditions: any = { relations: ['ssoConfigs', 'ssoConfigs.oidcGroupSyncs'], where: { @@ -40,7 +44,7 @@ export class OrganizationRepository extends Repository { where: { ...conditions.where, id: slug }, }); } - if (organization && organization.status !== WORKSPACE_STATUS.ACTIVE) + if (organization && organization.status !== WORKSPACE_STATUS.ACTIVE && !allowArchivedWorkspace) throw new BadRequestException('Organization is Archived'); return organization; } diff --git a/server/src/modules/users/repositories/repository.ts b/server/src/modules/users/repositories/repository.ts index 7c52e39fa9..30f32c6100 100644 --- a/server/src/modules/users/repositories/repository.ts +++ b/server/src/modules/users/repositories/repository.ts @@ -233,7 +233,7 @@ export class UserRepository extends Repository { organizationUsers: { organizationId: organizationId, status: In(statusList), - organization: { status: WORKSPACE_STATUS.ACTIVE }, + organization: { status: In([WORKSPACE_STATUS.ACTIVE, WORKSPACE_STATUS.ARCHIVE]) }, }, }, relations: ['organizationUsers', 'organizationUsers.organization'],