From 763dd60cd6356e7f8525aa7d433190591e5d71c6 Mon Sep 17 00:00:00 2001 From: Darcy Ye Date: Wed, 21 Aug 2024 11:17:28 +0800 Subject: [PATCH] fix(console,core,connector): fix display issues and `POST /connectors` API code guard (#6481) * fix(console,core,connector): fix display issues * chore: add changeset --- .changeset/hip-cats-destroy.md | 5 +++++ .../connectors/connector-wecom/src/constant.ts | 4 ++-- .../CreateConnectorForm/Footer/index.tsx | 17 ++--------------- .../components/CreateConnectorForm/index.tsx | 1 - .../Subscription/PlanComparisonTable/index.tsx | 2 +- .../src/routes/connector/index.openapi.json | 3 +++ packages/core/src/routes/connector/index.ts | 2 +- 7 files changed, 14 insertions(+), 20 deletions(-) create mode 100644 .changeset/hip-cats-destroy.md diff --git a/.changeset/hip-cats-destroy.md b/.changeset/hip-cats-destroy.md new file mode 100644 index 000000000..d250d2afc --- /dev/null +++ b/.changeset/hip-cats-destroy.md @@ -0,0 +1,5 @@ +--- +"@logto/connector-wecom": patch +--- + +fix wecom connector platform, should be `Universal` instead of `null` diff --git a/packages/connectors/connector-wecom/src/constant.ts b/packages/connectors/connector-wecom/src/constant.ts index 8a9c32e29..23aa74ecf 100644 --- a/packages/connectors/connector-wecom/src/constant.ts +++ b/packages/connectors/connector-wecom/src/constant.ts @@ -1,5 +1,5 @@ import type { ConnectorMetadata } from '@logto/connector-kit'; -import { ConnectorConfigFormItemType } from '@logto/connector-kit'; +import { ConnectorConfigFormItemType, ConnectorPlatform } from '@logto/connector-kit'; export const authorizationEndpointInside = 'https://open.weixin.qq.com/connect/oauth2/authorize'; export const authorizationEndpointQrcode = 'https://open.work.weixin.qq.com/wwopen/sso/qrConnect'; @@ -15,7 +15,7 @@ export const invalidAccessTokenErrcode = [40_001, 40_014]; export const defaultMetadata: ConnectorMetadata = { id: 'wecom-universal', target: 'wecom', - platform: null, + platform: ConnectorPlatform.Universal, name: { en: 'WeCom', 'zh-CN': '企业微信', diff --git a/packages/console/src/components/CreateConnectorForm/Footer/index.tsx b/packages/console/src/components/CreateConnectorForm/Footer/index.tsx index f6264d44f..76b9ea664 100644 --- a/packages/console/src/components/CreateConnectorForm/Footer/index.tsx +++ b/packages/console/src/components/CreateConnectorForm/Footer/index.tsx @@ -1,4 +1,3 @@ -import { type ConnectorFactoryResponse } from '@logto/schemas'; import { useContext } from 'react'; import { Trans, useTranslation } from 'react-i18next'; @@ -7,22 +6,15 @@ import QuotaGuardFooter from '@/components/QuotaGuardFooter'; import SkuName from '@/components/SkuName'; import { SubscriptionDataContext } from '@/contexts/SubscriptionDataProvider'; import Button from '@/ds-components/Button'; -import { type ConnectorGroup } from '@/types/connector'; import { hasReachedSubscriptionQuotaLimit } from '@/utils/quota'; type Props = { readonly isCreatingSocialConnector: boolean; - readonly selectedConnectorGroup?: ConnectorGroup; readonly isCreateButtonDisabled: boolean; readonly onClickCreateButton: () => void; }; -function Footer({ - isCreatingSocialConnector, - selectedConnectorGroup, - isCreateButtonDisabled, - onClickCreateButton, -}: Props) { +function Footer({ isCreatingSocialConnector, isCreateButtonDisabled, onClickCreateButton }: Props) { const { t } = useTranslation(undefined, { keyPrefix: 'admin_console.upsell.paywall' }); const { currentSku, currentSubscriptionUsage, currentSubscriptionQuota } = useContext(SubscriptionDataContext); @@ -33,12 +25,7 @@ function Footer({ quota: currentSubscriptionQuota, }); - if ( - isCreatingSocialConnector && - selectedConnectorGroup && - isSocialConnectorsReachLimit && - !selectedConnectorGroup.isStandard - ) { + if (isCreatingSocialConnector && isSocialConnectorsReachLimit) { return ( { onClose?.(activeFactoryId); diff --git a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/index.tsx b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/index.tsx index 374bf79fa..bf033bfa5 100644 --- a/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/index.tsx +++ b/packages/console/src/pages/TenantSettings/Subscription/PlanComparisonTable/index.tsx @@ -185,7 +185,7 @@ function PlanComparisonTable() { { name: appLogoAndFavicon, data: ['✓', '✓', '✓'] }, { name: darkMode, data: ['✓', '✓', '✓'] }, { name: i18n, data: ['✓', '✓', '✓'] }, - { name: bringYourUi, data: ['-', comingSoon, comingSoon] }, + { name: bringYourUi, data: ['-', '✓', '✓'] }, ], }, { diff --git a/packages/core/src/routes/connector/index.openapi.json b/packages/core/src/routes/connector/index.openapi.json index b4e0995db..585903aec 100644 --- a/packages/core/src/routes/connector/index.openapi.json +++ b/packages/core/src/routes/connector/index.openapi.json @@ -39,6 +39,9 @@ "200": { "description": "The created connector." }, + "403": { + "description": "The tenant has reached the maximum number of connectors." + }, "422": { "description": "Invalid request body." } diff --git a/packages/core/src/routes/connector/index.ts b/packages/core/src/routes/connector/index.ts index cb182816f..218e6d1ae 100644 --- a/packages/core/src/routes/connector/index.ts +++ b/packages/core/src/routes/connector/index.ts @@ -68,7 +68,7 @@ export default function connectorRoutes( */ .merge(Connectors.createGuard.pick({ id: true }).partial()), response: connectorResponseGuard, - status: [200, 400, 422], + status: [200, 400, 403, 422], }), async (ctx, next) => { const {