From 77878ff61b9c7e5278976c60b92166cc6c95b19e Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 14:23:46 +0300 Subject: [PATCH 1/9] fix: introduce accepted project member status and don't verify user on invite accept --- .../project-members/project-member.service.ts | 30 +++++------- .../project-members-table.component.html | 2 +- .../project-members-table.component.ts | 9 ---- .../project-members.datasource.ts | 49 ++++++++++++++++--- .../src/lib/project-members/project-member.ts | 1 + 5 files changed, 58 insertions(+), 33 deletions(-) diff --git a/packages/backend/src/app/ee/project-members/project-member.service.ts b/packages/backend/src/app/ee/project-members/project-member.service.ts index a9126c6f4e..8d7f016c7a 100644 --- a/packages/backend/src/app/ee/project-members/project-member.service.ts +++ b/packages/backend/src/app/ee/project-members/project-member.service.ts @@ -60,7 +60,7 @@ export const projectMemberService = { userId: invitedUser.id, projectId, role, - status: getStatusFromEdition(), + status: ProjectMemberStatus.PENDING, }, ['projectId', 'userId'], ) @@ -91,15 +91,22 @@ export const projectMemberService = { }, }) } + const user = await userService.get({ id: projectMember.userId }) + if (isNil(user)) { + throw new ActivepiecesError({ + code: ErrorCode.ENTITY_NOT_FOUND, + params: { + message: 'user not found', + }, + }) + } + const memberStatus = user.status === UserStatus.INVITED ? ProjectMemberStatus.ACCEPTED : ProjectMemberStatus.ACTIVE await projectMemberRepo.update(projectMember.id, { - status: ProjectMemberStatus.ACTIVE, - }) - await userService.verify({ - id: projectMember.userId, + status: memberStatus, }) return { ...projectMember, - status: ProjectMemberStatus.ACTIVE, + status: memberStatus, } }, async list( @@ -185,17 +192,6 @@ export const projectMemberService = { }, } -function getStatusFromEdition(): ProjectMemberStatus { - const edition = getEdition() - switch (edition) { - case ApEdition.CLOUD: - return ProjectMemberStatus.PENDING - case ApEdition.ENTERPRISE: - return ProjectMemberStatus.ACTIVE - default: - throw new Error('Unnkown project status ' + edition) - } -} const createOrGetUser = async ({ platformId, email }: CreateOrGetUserParams): Promise => { const user = await userService.getByPlatformAndEmail({ diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html index dc8d84e3de..5df70cf300 100644 --- a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html +++ b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html @@ -12,7 +12,7 @@ Status - {{ statusText(member.status) }} + {{member.statusText}} diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts index 87c2b62f43..23f92c5f18 100644 --- a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts +++ b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts @@ -128,15 +128,6 @@ export class ProjectMembersTableComponent implements OnInit { ); } - statusText(status: ProjectMemberStatus) { - switch (status) { - case ProjectMemberStatus.ACTIVE: - return $localize`Active`; - case ProjectMemberStatus.PENDING: - return $localize`Pending`; - } - } - get projectMemberRole() { return ProjectMemberRole; } diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts b/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts index 811c7d324b..e905a7dfb6 100755 --- a/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts +++ b/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts @@ -10,16 +10,21 @@ import { catchError, of, } from 'rxjs'; -import { ProjectMember } from '@activepieces/ee-shared'; +import { ProjectMember, ProjectMemberStatus } from '@activepieces/ee-shared'; import { ProjectMemberService } from '../service/project-members.service'; +import { UnhandledSwitchCaseError } from '@activepieces/shared'; +export type ProjectMemberWithUiData = ProjectMember & { + statusText: string; + statusTooltip: string; +}; /** * Data source for the LogsTable view. This class should * encapsulate all logic for fetching and manipulating the displayed data * (including sorting, pagination, and filtering). */ export class ProjectMembersTableDataSource extends DataSource { - data: ProjectMember[] = []; + data: ProjectMemberWithUiData[] = []; public isLoading$ = new BehaviorSubject(false); constructor( private projectMemberService: ProjectMemberService, @@ -33,7 +38,7 @@ export class ProjectMembersTableDataSource extends DataSource { * the returned stream emits new items. * @returns A stream of the items to be rendered. */ - connect(): Observable { + connect(): Observable { return combineLatest({ refresh: this.refresh$, }).pipe( @@ -49,10 +54,19 @@ export class ProjectMembersTableDataSource extends DataSource { }) ); }), - tap((members) => { - this.data = members.data; + map((res) => { + const members = res.data.map((pm) => { + return { + ...pm, + statusText: getStatusText(pm.status), + statusTooltip: getStatusTooltip(pm.status), + }; + }); + return members; }), - map(() => this.data) + tap((members) => { + this.data = members; + }) ); } @@ -64,3 +78,26 @@ export class ProjectMembersTableDataSource extends DataSource { //ignore } } + +const getStatusText = (status: ProjectMemberStatus) => { + switch (status) { + case ProjectMemberStatus.ACCEPTED: + return $localize`Accepted`; + case ProjectMemberStatus.ACTIVE: + return $localize`Active`; + case ProjectMemberStatus.PENDING: + return $localize`Pending`; + } +}; +const getStatusTooltip = (status: ProjectMemberStatus) => { + switch (status) { + case ProjectMemberStatus.ACCEPTED: + return $localize`User has accepted your invite, and should create account`; + case ProjectMemberStatus.ACTIVE: + return $localize`User is activated as a member`; + case ProjectMemberStatus.PENDING: + return $localize`User has been invitied, awating his acceptance`; + default: + throw new UnhandledSwitchCaseError(status); + } +}; diff --git a/packages/ee/shared/src/lib/project-members/project-member.ts b/packages/ee/shared/src/lib/project-members/project-member.ts index 8826507649..b153339b87 100644 --- a/packages/ee/shared/src/lib/project-members/project-member.ts +++ b/packages/ee/shared/src/lib/project-members/project-member.ts @@ -6,6 +6,7 @@ export type ProjectMemberId = string; export enum ProjectMemberStatus { ACTIVE = "ACTIVE", + ACCEPTED = "ACCEPTED", PENDING = "PENDING", } From 2ea06926e50f6670ff4c835fd4cd62536bea01a2 Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 14:24:14 +0300 Subject: [PATCH 2/9] chore: user created flag is changed to true regardless of edition on sign up --- .../authentication-service/hooks/community-service-hooks.ts | 5 ++--- .../src/app/authentication/authentication-service/index.ts | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/backend/src/app/authentication/authentication-service/hooks/community-service-hooks.ts b/packages/backend/src/app/authentication/authentication-service/hooks/community-service-hooks.ts index ebe3d3da6b..7b9e9207fc 100644 --- a/packages/backend/src/app/authentication/authentication-service/hooks/community-service-hooks.ts +++ b/packages/backend/src/app/authentication/authentication-service/hooks/community-service-hooks.ts @@ -1,12 +1,11 @@ -import { ApFlagId, PrincipalType, Project, ProjectType, User } from '@activepieces/shared' +import { PrincipalType, Project, ProjectType, User } from '@activepieces/shared' import { projectService } from '../../../project/project-service' -import { flagService } from '../../../flags/flag.service' import { AuthenticationServiceHooks } from './authentication-service-hooks' import { accessTokenManager } from '../../lib/access-token-manager' export const communityAuthenticationServiceHooks: AuthenticationServiceHooks = { async postSignUp({ user }) { - await flagService.save({ id: ApFlagId.USER_CREATED, value: true }) + const project = await projectService.create({ displayName: `${user.firstName}'s Project`, ownerId: user.id, diff --git a/packages/backend/src/app/authentication/authentication-service/index.ts b/packages/backend/src/app/authentication/authentication-service/index.ts index ce2875ef98..48e3636fd4 100644 --- a/packages/backend/src/app/authentication/authentication-service/index.ts +++ b/packages/backend/src/app/authentication/authentication-service/index.ts @@ -23,7 +23,7 @@ export const authenticationService = { }) const userWithoutPassword = removePasswordPropFromUser(authnResponse.user) - + await flagService.save({ id: ApFlagId.USER_CREATED, value: true }) await sendTelemetry({ user, project: authnResponse.project, }) From e7ca947c156b4f70195363170c98a1e5e5382a1f Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 14:25:11 +0300 Subject: [PATCH 3/9] fix: enable first sign up for ee and ce on frontend --- packages/ui/common/src/lib/service/flag.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/common/src/lib/service/flag.service.ts b/packages/ui/common/src/lib/service/flag.service.ts index 4192bc49e4..44377879b8 100644 --- a/packages/ui/common/src/lib/service/flag.service.ts +++ b/packages/ui/common/src/lib/service/flag.service.ts @@ -53,7 +53,7 @@ export class FlagService { return this.getAllFlags().pipe( map((flags) => { const firstUser = flags['USER_CREATED'] as boolean; - if (!firstUser && flags['EDITION'] === ApEdition.COMMUNITY) { + if (!firstUser && flags['EDITION'] !== ApEdition.CLOUD) { return true; } return flags['SIGN_UP_ENABLED'] as boolean; From 676db191b5fd9fbd05a45d34041ba716ac986161 Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 14:25:50 +0300 Subject: [PATCH 4/9] fix: stop hiding third party providers sign in for ee after first sign up --- .../src/app/ee/flags/enterprise-flags.hooks.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts b/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts index bd3cb8608c..f523c04c83 100644 --- a/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts +++ b/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts @@ -1,10 +1,11 @@ -import { ApFlagId, isNil } from '@activepieces/shared' +import { ApEdition, ApFlagId, isNil } from '@activepieces/shared' import { FlagsServiceHooks } from '../../flags/flags.hooks' import { apperanceHelper } from '../helper/apperance-helper' import { platformService } from '../platform/platform.service' import { ThirdPartyAuthnProviderEnum } from '@activepieces/ee-shared' import { resolvePlatformIdForRequest } from '../platform/lib/platform-utils' - +import { getEdition } from '../../helper/secret-helper' +const edition = getEdition() export const enterpriseFlagsHooks: FlagsServiceHooks = { async modify({ flags, request }) { const modifiedFlags = { ...flags } @@ -17,10 +18,11 @@ export const enterpriseFlagsHooks: FlagsServiceHooks = { modifiedFlags[ApFlagId.SHOW_COMMUNITY] = false modifiedFlags[ApFlagId.SHOW_DOCS] = false modifiedFlags[ApFlagId.SHOW_BILLING] = false - modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] = { - [ThirdPartyAuthnProviderEnum.GOOGLE]: false, - [ThirdPartyAuthnProviderEnum.GITHUB]: false, - } + modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] = edition === ApEdition.ENTERPRISE ? + modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] : { + [ThirdPartyAuthnProviderEnum.GOOGLE]: false, + [ThirdPartyAuthnProviderEnum.GITHUB]: false, + }, modifiedFlags[ApFlagId.SHOW_BLOG_GUIDE] = false modifiedFlags[ApFlagId.SHOW_COMMUNITY_PIECES] = false modifiedFlags[ApFlagId.SHOW_POWERED_BY_AP] = platform.showPoweredBy From 7b6b7e8c8f9707f590c2b0d2ff2de74ff5c98f3b Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 15:42:20 +0300 Subject: [PATCH 5/9] fix: reset password text spacing --- .../reset-password/reset-password.component.html | 3 ++- .../reset-password/reset-password.component.ts | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.html b/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.html index aa40e4086a..880c7ab3ed 100644 --- a/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.html +++ b/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.html @@ -72,7 +72,8 @@ -

{{ passwordResetActionError }} +

{{ passwordResetActionError + }}

diff --git a/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.ts b/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.ts index f3357910fb..8795bc9d9e 100644 --- a/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.ts +++ b/packages/ui/feature-authentication/src/lib/pages/auth-actions/reset-password/reset-password.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { FormControl, Validators } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; -import { Observable, catchError, tap } from 'rxjs'; +import { Observable, catchError, of, tap } from 'rxjs'; import { containsSpecialCharacter, @@ -55,12 +55,13 @@ export class ResetPasswordComponent { userId, }) .pipe( + tap(() => this.router.navigate(['/sign-in'])), catchError((err) => { this.passwordResetActionError = $localize`Your password reset request has expired, please request a new one`; + this.resetingPassword = false; console.error(err); - throw err; - }), - tap(() => this.router.navigate(['/sign-in'])) + return of(void 0); + }) ); } } From a51edcc931f25f1161cac4c480ce346cb4f60e78 Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 15:43:40 +0300 Subject: [PATCH 6/9] chore: add user to platform after sign up --- .../hooks/enterprise-authentication-service-hooks.ts | 4 +++- .../src/app/ee/project-members/project-member.service.ts | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/app/ee/authentication/authentication-service/hooks/enterprise-authentication-service-hooks.ts b/packages/backend/src/app/ee/authentication/authentication-service/hooks/enterprise-authentication-service-hooks.ts index 22270ac8cb..c9a2692ad5 100644 --- a/packages/backend/src/app/ee/authentication/authentication-service/hooks/enterprise-authentication-service-hooks.ts +++ b/packages/backend/src/app/ee/authentication/authentication-service/hooks/enterprise-authentication-service-hooks.ts @@ -29,12 +29,14 @@ export const enterpriseAuthenticationServiceHooks: AuthenticationServiceHooks = type: ProjectType.STANDALONE, }) - await platformService.add({ + const platform = await platformService.add({ ownerId: user.id, projectId: project.id, name: DEFAULT_PLATFORM_NAME, }) + await userService.updatePlatformId({ id: user.id, platformId: platform.id }) + await flagService.save({ id: ApFlagId.PLATFORM_CREATED, value: true, diff --git a/packages/backend/src/app/ee/project-members/project-member.service.ts b/packages/backend/src/app/ee/project-members/project-member.service.ts index 8d7f016c7a..eb24b45a64 100644 --- a/packages/backend/src/app/ee/project-members/project-member.service.ts +++ b/packages/backend/src/app/ee/project-members/project-member.service.ts @@ -7,7 +7,6 @@ import { userService } from '../../user/user-service' import { logger } from '../../helper/logger' import { ActivepiecesError, - ApEdition, Cursor, ErrorCode, ProjectId, @@ -30,7 +29,6 @@ import { import { buildPaginator } from '../../helper/pagination/build-paginator' import { projectService } from '../../project/project-service' import { emailService } from '../helper/email/email-service' -import { getEdition } from '../../helper/secret-helper' import { projectMembersLimit } from '../billing/limits/members-limit' const projectMemberRepo = databaseConnection.getRepository(ProjectMemberEntity) From 10da22b82398d13bc8b9a6915908a24efb01fecc Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 16:05:32 +0300 Subject: [PATCH 7/9] Revert "fix: introduce accepted project member status and don't verify user on invite accept" This reverts commit 77878ff61b9c7e5278976c60b92166cc6c95b19e. --- .../project-members/project-member.service.ts | 30 +++++++----- .../project-members-table.component.html | 2 +- .../project-members-table.component.ts | 9 ++++ .../project-members.datasource.ts | 49 +++---------------- .../src/lib/project-members/project-member.ts | 1 - 5 files changed, 33 insertions(+), 58 deletions(-) diff --git a/packages/backend/src/app/ee/project-members/project-member.service.ts b/packages/backend/src/app/ee/project-members/project-member.service.ts index eb24b45a64..916cb3e6b9 100644 --- a/packages/backend/src/app/ee/project-members/project-member.service.ts +++ b/packages/backend/src/app/ee/project-members/project-member.service.ts @@ -58,7 +58,7 @@ export const projectMemberService = { userId: invitedUser.id, projectId, role, - status: ProjectMemberStatus.PENDING, + status: getStatusFromEdition(), }, ['projectId', 'userId'], ) @@ -89,22 +89,15 @@ export const projectMemberService = { }, }) } - const user = await userService.get({ id: projectMember.userId }) - if (isNil(user)) { - throw new ActivepiecesError({ - code: ErrorCode.ENTITY_NOT_FOUND, - params: { - message: 'user not found', - }, - }) - } - const memberStatus = user.status === UserStatus.INVITED ? ProjectMemberStatus.ACCEPTED : ProjectMemberStatus.ACTIVE await projectMemberRepo.update(projectMember.id, { - status: memberStatus, + status: ProjectMemberStatus.ACTIVE, + }) + await userService.verify({ + id: projectMember.userId, }) return { ...projectMember, - status: memberStatus, + status: ProjectMemberStatus.ACTIVE, } }, async list( @@ -190,6 +183,17 @@ export const projectMemberService = { }, } +function getStatusFromEdition(): ProjectMemberStatus { + const edition = getEdition() + switch (edition) { + case ApEdition.CLOUD: + return ProjectMemberStatus.PENDING + case ApEdition.ENTERPRISE: + return ProjectMemberStatus.ACTIVE + default: + throw new Error('Unnkown project status ' + edition) + } +} const createOrGetUser = async ({ platformId, email }: CreateOrGetUserParams): Promise => { const user = await userService.getByPlatformAndEmail({ diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html index 5df70cf300..dc8d84e3de 100644 --- a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html +++ b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.html @@ -12,7 +12,7 @@ Status - {{member.statusText}} + {{ statusText(member.status) }} diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts index 23f92c5f18..87c2b62f43 100644 --- a/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts +++ b/packages/ee/project-members/src/lib/project-members-table/project-members-table.component.ts @@ -128,6 +128,15 @@ export class ProjectMembersTableComponent implements OnInit { ); } + statusText(status: ProjectMemberStatus) { + switch (status) { + case ProjectMemberStatus.ACTIVE: + return $localize`Active`; + case ProjectMemberStatus.PENDING: + return $localize`Pending`; + } + } + get projectMemberRole() { return ProjectMemberRole; } diff --git a/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts b/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts index e905a7dfb6..811c7d324b 100755 --- a/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts +++ b/packages/ee/project-members/src/lib/project-members-table/project-members.datasource.ts @@ -10,21 +10,16 @@ import { catchError, of, } from 'rxjs'; -import { ProjectMember, ProjectMemberStatus } from '@activepieces/ee-shared'; +import { ProjectMember } from '@activepieces/ee-shared'; import { ProjectMemberService } from '../service/project-members.service'; -import { UnhandledSwitchCaseError } from '@activepieces/shared'; -export type ProjectMemberWithUiData = ProjectMember & { - statusText: string; - statusTooltip: string; -}; /** * Data source for the LogsTable view. This class should * encapsulate all logic for fetching and manipulating the displayed data * (including sorting, pagination, and filtering). */ export class ProjectMembersTableDataSource extends DataSource { - data: ProjectMemberWithUiData[] = []; + data: ProjectMember[] = []; public isLoading$ = new BehaviorSubject(false); constructor( private projectMemberService: ProjectMemberService, @@ -38,7 +33,7 @@ export class ProjectMembersTableDataSource extends DataSource { * the returned stream emits new items. * @returns A stream of the items to be rendered. */ - connect(): Observable { + connect(): Observable { return combineLatest({ refresh: this.refresh$, }).pipe( @@ -54,19 +49,10 @@ export class ProjectMembersTableDataSource extends DataSource { }) ); }), - map((res) => { - const members = res.data.map((pm) => { - return { - ...pm, - statusText: getStatusText(pm.status), - statusTooltip: getStatusTooltip(pm.status), - }; - }); - return members; - }), tap((members) => { - this.data = members; - }) + this.data = members.data; + }), + map(() => this.data) ); } @@ -78,26 +64,3 @@ export class ProjectMembersTableDataSource extends DataSource { //ignore } } - -const getStatusText = (status: ProjectMemberStatus) => { - switch (status) { - case ProjectMemberStatus.ACCEPTED: - return $localize`Accepted`; - case ProjectMemberStatus.ACTIVE: - return $localize`Active`; - case ProjectMemberStatus.PENDING: - return $localize`Pending`; - } -}; -const getStatusTooltip = (status: ProjectMemberStatus) => { - switch (status) { - case ProjectMemberStatus.ACCEPTED: - return $localize`User has accepted your invite, and should create account`; - case ProjectMemberStatus.ACTIVE: - return $localize`User is activated as a member`; - case ProjectMemberStatus.PENDING: - return $localize`User has been invitied, awating his acceptance`; - default: - throw new UnhandledSwitchCaseError(status); - } -}; diff --git a/packages/ee/shared/src/lib/project-members/project-member.ts b/packages/ee/shared/src/lib/project-members/project-member.ts index b153339b87..8826507649 100644 --- a/packages/ee/shared/src/lib/project-members/project-member.ts +++ b/packages/ee/shared/src/lib/project-members/project-member.ts @@ -6,7 +6,6 @@ export type ProjectMemberId = string; export enum ProjectMemberStatus { ACTIVE = "ACTIVE", - ACCEPTED = "ACCEPTED", PENDING = "PENDING", } From 019c9bc4b0cee0006b4eb2c54b7fb7799ecb7966 Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 16:06:53 +0300 Subject: [PATCH 8/9] fix: missing imports after revert --- .../src/app/ee/project-members/project-member.service.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/backend/src/app/ee/project-members/project-member.service.ts b/packages/backend/src/app/ee/project-members/project-member.service.ts index 916cb3e6b9..7ccb0b9c8c 100644 --- a/packages/backend/src/app/ee/project-members/project-member.service.ts +++ b/packages/backend/src/app/ee/project-members/project-member.service.ts @@ -7,6 +7,7 @@ import { userService } from '../../user/user-service' import { logger } from '../../helper/logger' import { ActivepiecesError, + ApEdition, Cursor, ErrorCode, ProjectId, @@ -30,6 +31,7 @@ import { buildPaginator } from '../../helper/pagination/build-paginator' import { projectService } from '../../project/project-service' import { emailService } from '../helper/email/email-service' import { projectMembersLimit } from '../billing/limits/members-limit' +import { getEdition } from '../../helper/secret-helper' const projectMemberRepo = databaseConnection.getRepository(ProjectMemberEntity) From 89c48bd03bad1b232c1360025034f1e171f57f58 Mon Sep 17 00:00:00 2001 From: AbdulTheActivePiecer Date: Sun, 3 Dec 2023 16:25:44 +0300 Subject: [PATCH 9/9] chore: only show third provider authn for cloud --- .../src/app/ee/flags/enterprise-flags.hooks.ts | 14 ++++++-------- packages/backend/src/app/flags/flag.service.ts | 3 ++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts b/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts index f523c04c83..f9227c0985 100644 --- a/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts +++ b/packages/backend/src/app/ee/flags/enterprise-flags.hooks.ts @@ -1,11 +1,10 @@ -import { ApEdition, ApFlagId, isNil } from '@activepieces/shared' +import { ApFlagId, isNil } from '@activepieces/shared' import { FlagsServiceHooks } from '../../flags/flags.hooks' import { apperanceHelper } from '../helper/apperance-helper' import { platformService } from '../platform/platform.service' import { ThirdPartyAuthnProviderEnum } from '@activepieces/ee-shared' import { resolvePlatformIdForRequest } from '../platform/lib/platform-utils' -import { getEdition } from '../../helper/secret-helper' -const edition = getEdition() + export const enterpriseFlagsHooks: FlagsServiceHooks = { async modify({ flags, request }) { const modifiedFlags = { ...flags } @@ -18,11 +17,10 @@ export const enterpriseFlagsHooks: FlagsServiceHooks = { modifiedFlags[ApFlagId.SHOW_COMMUNITY] = false modifiedFlags[ApFlagId.SHOW_DOCS] = false modifiedFlags[ApFlagId.SHOW_BILLING] = false - modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] = edition === ApEdition.ENTERPRISE ? - modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] : { - [ThirdPartyAuthnProviderEnum.GOOGLE]: false, - [ThirdPartyAuthnProviderEnum.GITHUB]: false, - }, + modifiedFlags[ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP] = { + [ThirdPartyAuthnProviderEnum.GOOGLE]: false, + [ThirdPartyAuthnProviderEnum.GITHUB]: false, + }, modifiedFlags[ApFlagId.SHOW_BLOG_GUIDE] = false modifiedFlags[ApFlagId.SHOW_COMMUNITY_PIECES] = false modifiedFlags[ApFlagId.SHOW_POWERED_BY_AP] = platform.showPoweredBy diff --git a/packages/backend/src/app/flags/flag.service.ts b/packages/backend/src/app/flags/flag.service.ts index d18db4a818..326e7697a4 100755 --- a/packages/backend/src/app/flags/flag.service.ts +++ b/packages/backend/src/app/flags/flag.service.ts @@ -75,7 +75,8 @@ export const flagService = { }, { id: ApFlagId.THIRD_PARTY_AUTH_PROVIDERS_TO_SHOW_MAP, - value: getEdition() === ApEdition.COMMUNITY ? {} : showThirdPartyProvidersMap, + //show only for cloud and hide it for platform users in flags hook + value: getEdition() === ApEdition.CLOUD ? showThirdPartyProvidersMap : {}, created, updated, },