From 18ee600836f19386427f57fb1b7764300ad7f90c Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Sun, 19 Jan 2025 20:43:35 +0700 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(auth):=20Add=20Oauth=20configu?= =?UTF-8?q?ration=20for=20Telegram,=20Facebook,=20Google,=20Github,=20and?= =?UTF-8?q?=20Apple?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dashboard/auth-control/apple/page.tsx | 130 +++++++++++++++++ .../dashboard/auth-control/facebook/page.tsx | 102 ++++++++++++++ .../dashboard/auth-control/github/page.tsx | 102 ++++++++++++++ .../dashboard/auth-control/google/page.tsx | 102 ++++++++++++++ .../dashboard/auth-control/telegram/page.tsx | 102 ++++++++++++++ apps/admin/config/navs.ts | 40 +++--- apps/admin/locales/cs-CZ/apple.json | 16 +++ apps/admin/locales/cs-CZ/facebook.json | 12 ++ apps/admin/locales/cs-CZ/github.json | 12 ++ apps/admin/locales/cs-CZ/google.json | 12 ++ apps/admin/locales/cs-CZ/telegram.json | 12 ++ apps/admin/locales/de-DE/apple.json | 16 +++ apps/admin/locales/de-DE/facebook.json | 12 ++ apps/admin/locales/de-DE/github.json | 12 ++ apps/admin/locales/de-DE/google.json | 12 ++ apps/admin/locales/de-DE/telegram.json | 12 ++ apps/admin/locales/en-US/apple.json | 16 +++ apps/admin/locales/en-US/facebook.json | 12 ++ apps/admin/locales/en-US/github.json | 12 ++ apps/admin/locales/en-US/google.json | 12 ++ apps/admin/locales/en-US/telegram.json | 12 ++ apps/admin/locales/es-ES/apple.json | 16 +++ apps/admin/locales/es-ES/facebook.json | 12 ++ apps/admin/locales/es-ES/github.json | 12 ++ apps/admin/locales/es-ES/google.json | 12 ++ apps/admin/locales/es-ES/telegram.json | 12 ++ apps/admin/locales/es-MX/apple.json | 16 +++ apps/admin/locales/es-MX/facebook.json | 12 ++ apps/admin/locales/es-MX/github.json | 12 ++ apps/admin/locales/es-MX/google.json | 12 ++ apps/admin/locales/es-MX/telegram.json | 12 ++ apps/admin/locales/fa-IR/apple.json | 16 +++ apps/admin/locales/fa-IR/facebook.json | 12 ++ apps/admin/locales/fa-IR/github.json | 12 ++ apps/admin/locales/fa-IR/google.json | 12 ++ apps/admin/locales/fa-IR/telegram.json | 12 ++ apps/admin/locales/fi-FI/apple.json | 16 +++ apps/admin/locales/fi-FI/facebook.json | 12 ++ apps/admin/locales/fi-FI/github.json | 12 ++ apps/admin/locales/fi-FI/google.json | 12 ++ apps/admin/locales/fi-FI/telegram.json | 12 ++ apps/admin/locales/fr-FR/apple.json | 16 +++ apps/admin/locales/fr-FR/facebook.json | 12 ++ apps/admin/locales/fr-FR/github.json | 12 ++ apps/admin/locales/fr-FR/google.json | 12 ++ apps/admin/locales/fr-FR/telegram.json | 12 ++ apps/admin/locales/hi-IN/apple.json | 16 +++ apps/admin/locales/hi-IN/facebook.json | 12 ++ apps/admin/locales/hi-IN/github.json | 12 ++ apps/admin/locales/hi-IN/google.json | 12 ++ apps/admin/locales/hi-IN/telegram.json | 12 ++ apps/admin/locales/hu-HU/apple.json | 16 +++ apps/admin/locales/hu-HU/facebook.json | 12 ++ apps/admin/locales/hu-HU/github.json | 12 ++ apps/admin/locales/hu-HU/google.json | 12 ++ apps/admin/locales/hu-HU/telegram.json | 12 ++ apps/admin/locales/ja-JP/apple.json | 16 +++ apps/admin/locales/ja-JP/facebook.json | 12 ++ apps/admin/locales/ja-JP/github.json | 12 ++ apps/admin/locales/ja-JP/google.json | 12 ++ apps/admin/locales/ja-JP/telegram.json | 12 ++ apps/admin/locales/ko-KR/apple.json | 16 +++ apps/admin/locales/ko-KR/facebook.json | 12 ++ apps/admin/locales/ko-KR/github.json | 12 ++ apps/admin/locales/ko-KR/google.json | 12 ++ apps/admin/locales/ko-KR/telegram.json | 12 ++ apps/admin/locales/no-NO/apple.json | 16 +++ apps/admin/locales/no-NO/facebook.json | 12 ++ apps/admin/locales/no-NO/github.json | 12 ++ apps/admin/locales/no-NO/google.json | 12 ++ apps/admin/locales/no-NO/telegram.json | 12 ++ apps/admin/locales/pl-PL/apple.json | 16 +++ apps/admin/locales/pl-PL/facebook.json | 12 ++ apps/admin/locales/pl-PL/github.json | 12 ++ apps/admin/locales/pl-PL/google.json | 12 ++ apps/admin/locales/pl-PL/telegram.json | 12 ++ apps/admin/locales/pt-BR/apple.json | 16 +++ apps/admin/locales/pt-BR/facebook.json | 12 ++ apps/admin/locales/pt-BR/github.json | 12 ++ apps/admin/locales/pt-BR/google.json | 12 ++ apps/admin/locales/pt-BR/telegram.json | 12 ++ apps/admin/locales/request.ts | 5 + apps/admin/locales/ro-RO/apple.json | 16 +++ apps/admin/locales/ro-RO/facebook.json | 12 ++ apps/admin/locales/ro-RO/github.json | 12 ++ apps/admin/locales/ro-RO/google.json | 12 ++ apps/admin/locales/ro-RO/telegram.json | 12 ++ apps/admin/locales/ru-RU/apple.json | 16 +++ apps/admin/locales/ru-RU/facebook.json | 12 ++ apps/admin/locales/ru-RU/github.json | 12 ++ apps/admin/locales/ru-RU/google.json | 12 ++ apps/admin/locales/ru-RU/telegram.json | 12 ++ apps/admin/locales/th-TH/apple.json | 16 +++ apps/admin/locales/th-TH/facebook.json | 12 ++ apps/admin/locales/th-TH/github.json | 12 ++ apps/admin/locales/th-TH/google.json | 12 ++ apps/admin/locales/th-TH/telegram.json | 12 ++ apps/admin/locales/tr-TR/apple.json | 16 +++ apps/admin/locales/tr-TR/facebook.json | 12 ++ apps/admin/locales/tr-TR/github.json | 12 ++ apps/admin/locales/tr-TR/google.json | 12 ++ apps/admin/locales/tr-TR/telegram.json | 12 ++ apps/admin/locales/uk-UA/apple.json | 16 +++ apps/admin/locales/uk-UA/facebook.json | 12 ++ apps/admin/locales/uk-UA/github.json | 12 ++ apps/admin/locales/uk-UA/google.json | 12 ++ apps/admin/locales/uk-UA/telegram.json | 12 ++ apps/admin/locales/vi-VN/apple.json | 16 +++ apps/admin/locales/vi-VN/facebook.json | 12 ++ apps/admin/locales/vi-VN/github.json | 12 ++ apps/admin/locales/vi-VN/google.json | 12 ++ apps/admin/locales/vi-VN/telegram.json | 12 ++ apps/admin/locales/zh-CN/apple.json | 16 +++ apps/admin/locales/zh-CN/facebook.json | 12 ++ apps/admin/locales/zh-CN/github.json | 12 ++ apps/admin/locales/zh-CN/google.json | 12 ++ apps/admin/locales/zh-CN/telegram.json | 12 ++ apps/admin/locales/zh-HK/apple.json | 16 +++ apps/admin/locales/zh-HK/facebook.json | 12 ++ apps/admin/locales/zh-HK/github.json | 12 ++ apps/admin/locales/zh-HK/google.json | 12 ++ apps/admin/locales/zh-HK/telegram.json | 12 ++ apps/admin/services/admin/system.ts | 38 +++++ apps/admin/services/admin/typings.d.ts | 27 ++++ apps/admin/services/common/index.ts | 4 +- apps/admin/services/common/oauth.ts | 47 +++++++ apps/admin/services/common/typings.d.ts | 20 +++ bun.lockb | Bin 609720 -> 611784 bytes packages/ui/package.json | 7 +- packages/ui/src/components/hyper-text.tsx | 133 ++++++++++++++++++ .../ui/src/components/orbiting-circles.tsx | 70 +++++++++ packages/ui/tailwind.config.ts | 11 ++ scripts/update-shadcn-ui.sh | 3 + 133 files changed, 2391 insertions(+), 24 deletions(-) create mode 100644 apps/admin/app/dashboard/auth-control/apple/page.tsx create mode 100644 apps/admin/app/dashboard/auth-control/facebook/page.tsx create mode 100644 apps/admin/app/dashboard/auth-control/github/page.tsx create mode 100644 apps/admin/app/dashboard/auth-control/google/page.tsx create mode 100644 apps/admin/app/dashboard/auth-control/telegram/page.tsx create mode 100644 apps/admin/locales/cs-CZ/apple.json create mode 100644 apps/admin/locales/cs-CZ/facebook.json create mode 100644 apps/admin/locales/cs-CZ/github.json create mode 100644 apps/admin/locales/cs-CZ/google.json create mode 100644 apps/admin/locales/cs-CZ/telegram.json create mode 100644 apps/admin/locales/de-DE/apple.json create mode 100644 apps/admin/locales/de-DE/facebook.json create mode 100644 apps/admin/locales/de-DE/github.json create mode 100644 apps/admin/locales/de-DE/google.json create mode 100644 apps/admin/locales/de-DE/telegram.json create mode 100644 apps/admin/locales/en-US/apple.json create mode 100644 apps/admin/locales/en-US/facebook.json create mode 100644 apps/admin/locales/en-US/github.json create mode 100644 apps/admin/locales/en-US/google.json create mode 100644 apps/admin/locales/en-US/telegram.json create mode 100644 apps/admin/locales/es-ES/apple.json create mode 100644 apps/admin/locales/es-ES/facebook.json create mode 100644 apps/admin/locales/es-ES/github.json create mode 100644 apps/admin/locales/es-ES/google.json create mode 100644 apps/admin/locales/es-ES/telegram.json create mode 100644 apps/admin/locales/es-MX/apple.json create mode 100644 apps/admin/locales/es-MX/facebook.json create mode 100644 apps/admin/locales/es-MX/github.json create mode 100644 apps/admin/locales/es-MX/google.json create mode 100644 apps/admin/locales/es-MX/telegram.json create mode 100644 apps/admin/locales/fa-IR/apple.json create mode 100644 apps/admin/locales/fa-IR/facebook.json create mode 100644 apps/admin/locales/fa-IR/github.json create mode 100644 apps/admin/locales/fa-IR/google.json create mode 100644 apps/admin/locales/fa-IR/telegram.json create mode 100644 apps/admin/locales/fi-FI/apple.json create mode 100644 apps/admin/locales/fi-FI/facebook.json create mode 100644 apps/admin/locales/fi-FI/github.json create mode 100644 apps/admin/locales/fi-FI/google.json create mode 100644 apps/admin/locales/fi-FI/telegram.json create mode 100644 apps/admin/locales/fr-FR/apple.json create mode 100644 apps/admin/locales/fr-FR/facebook.json create mode 100644 apps/admin/locales/fr-FR/github.json create mode 100644 apps/admin/locales/fr-FR/google.json create mode 100644 apps/admin/locales/fr-FR/telegram.json create mode 100644 apps/admin/locales/hi-IN/apple.json create mode 100644 apps/admin/locales/hi-IN/facebook.json create mode 100644 apps/admin/locales/hi-IN/github.json create mode 100644 apps/admin/locales/hi-IN/google.json create mode 100644 apps/admin/locales/hi-IN/telegram.json create mode 100644 apps/admin/locales/hu-HU/apple.json create mode 100644 apps/admin/locales/hu-HU/facebook.json create mode 100644 apps/admin/locales/hu-HU/github.json create mode 100644 apps/admin/locales/hu-HU/google.json create mode 100644 apps/admin/locales/hu-HU/telegram.json create mode 100644 apps/admin/locales/ja-JP/apple.json create mode 100644 apps/admin/locales/ja-JP/facebook.json create mode 100644 apps/admin/locales/ja-JP/github.json create mode 100644 apps/admin/locales/ja-JP/google.json create mode 100644 apps/admin/locales/ja-JP/telegram.json create mode 100644 apps/admin/locales/ko-KR/apple.json create mode 100644 apps/admin/locales/ko-KR/facebook.json create mode 100644 apps/admin/locales/ko-KR/github.json create mode 100644 apps/admin/locales/ko-KR/google.json create mode 100644 apps/admin/locales/ko-KR/telegram.json create mode 100644 apps/admin/locales/no-NO/apple.json create mode 100644 apps/admin/locales/no-NO/facebook.json create mode 100644 apps/admin/locales/no-NO/github.json create mode 100644 apps/admin/locales/no-NO/google.json create mode 100644 apps/admin/locales/no-NO/telegram.json create mode 100644 apps/admin/locales/pl-PL/apple.json create mode 100644 apps/admin/locales/pl-PL/facebook.json create mode 100644 apps/admin/locales/pl-PL/github.json create mode 100644 apps/admin/locales/pl-PL/google.json create mode 100644 apps/admin/locales/pl-PL/telegram.json create mode 100644 apps/admin/locales/pt-BR/apple.json create mode 100644 apps/admin/locales/pt-BR/facebook.json create mode 100644 apps/admin/locales/pt-BR/github.json create mode 100644 apps/admin/locales/pt-BR/google.json create mode 100644 apps/admin/locales/pt-BR/telegram.json create mode 100644 apps/admin/locales/ro-RO/apple.json create mode 100644 apps/admin/locales/ro-RO/facebook.json create mode 100644 apps/admin/locales/ro-RO/github.json create mode 100644 apps/admin/locales/ro-RO/google.json create mode 100644 apps/admin/locales/ro-RO/telegram.json create mode 100644 apps/admin/locales/ru-RU/apple.json create mode 100644 apps/admin/locales/ru-RU/facebook.json create mode 100644 apps/admin/locales/ru-RU/github.json create mode 100644 apps/admin/locales/ru-RU/google.json create mode 100644 apps/admin/locales/ru-RU/telegram.json create mode 100644 apps/admin/locales/th-TH/apple.json create mode 100644 apps/admin/locales/th-TH/facebook.json create mode 100644 apps/admin/locales/th-TH/github.json create mode 100644 apps/admin/locales/th-TH/google.json create mode 100644 apps/admin/locales/th-TH/telegram.json create mode 100644 apps/admin/locales/tr-TR/apple.json create mode 100644 apps/admin/locales/tr-TR/facebook.json create mode 100644 apps/admin/locales/tr-TR/github.json create mode 100644 apps/admin/locales/tr-TR/google.json create mode 100644 apps/admin/locales/tr-TR/telegram.json create mode 100644 apps/admin/locales/uk-UA/apple.json create mode 100644 apps/admin/locales/uk-UA/facebook.json create mode 100644 apps/admin/locales/uk-UA/github.json create mode 100644 apps/admin/locales/uk-UA/google.json create mode 100644 apps/admin/locales/uk-UA/telegram.json create mode 100644 apps/admin/locales/vi-VN/apple.json create mode 100644 apps/admin/locales/vi-VN/facebook.json create mode 100644 apps/admin/locales/vi-VN/github.json create mode 100644 apps/admin/locales/vi-VN/google.json create mode 100644 apps/admin/locales/vi-VN/telegram.json create mode 100644 apps/admin/locales/zh-CN/apple.json create mode 100644 apps/admin/locales/zh-CN/facebook.json create mode 100644 apps/admin/locales/zh-CN/github.json create mode 100644 apps/admin/locales/zh-CN/google.json create mode 100644 apps/admin/locales/zh-CN/telegram.json create mode 100644 apps/admin/locales/zh-HK/apple.json create mode 100644 apps/admin/locales/zh-HK/facebook.json create mode 100644 apps/admin/locales/zh-HK/github.json create mode 100644 apps/admin/locales/zh-HK/google.json create mode 100644 apps/admin/locales/zh-HK/telegram.json create mode 100644 apps/admin/services/common/oauth.ts create mode 100644 packages/ui/src/components/hyper-text.tsx create mode 100644 packages/ui/src/components/orbiting-circles.tsx diff --git a/apps/admin/app/dashboard/auth-control/apple/page.tsx b/apps/admin/app/dashboard/auth-control/apple/page.tsx new file mode 100644 index 0000000..97cb5ff --- /dev/null +++ b/apps/admin/app/dashboard/auth-control/apple/page.tsx @@ -0,0 +1,130 @@ +'use client'; + +import { getOAuthConfig, oAuthCreateConfig, updateOAuthConfig } from '@/services/admin/system'; +import { useQuery } from '@tanstack/react-query'; +import { Label } from '@workspace/ui/components/label'; +import { Switch } from '@workspace/ui/components/switch'; +import { Table, TableBody, TableCell, TableRow } from '@workspace/ui/components/table'; +import { Textarea } from '@workspace/ui/components/textarea'; +import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input'; +import { useTranslations } from 'next-intl'; +import { toast } from 'sonner'; + +export default function Page() { + const t = useTranslations('apple'); + + const { data, refetch } = useQuery({ + queryKey: ['getOAuthConfig', 'apple'], + queryFn: async () => { + const { data } = await getOAuthConfig(); + return data.data?.list.find((item) => item.platform === 'apple') as API.OAuthConfig; + }, + }); + + async function updateConfig(key: keyof API.OAuthConfig, value: unknown) { + if (data?.[key] === value) return; + try { + if (data?.id) { + await oAuthCreateConfig({ + ...data, + platform: 'apple', + [key]: value, + } as API.OAuthConfig); + } else { + await updateOAuthConfig({ + ...data, + [key]: value, + } as API.OAuthConfig); + } + toast.success(t('saveSuccess')); + refetch(); + } catch (error) { + toast.error(t('saveFailed')); + } + } + + return ( + + + + + +

{t('enableDescription')}

+
+ + updateConfig('enabled', checked)} + /> + +
+ + + +

{t('teamIdDescription')}

+
+ + updateConfig('team_id', value)} + /> + +
+ + + +

{t('clientIdDescription')}

+
+ + updateConfig('client_id', value)} + /> + +
+ + + +

{t('keyIdDescription')}

+
+ + updateConfig('key_id', value)} + /> + +
+ + + +

{t('clientSecretDescription')}

+
+ +