mirror of
https://github.com/supabase/supabase.git
synced 2026-10-12 21:05:06 +03:00
* oAuth clients index layout * oAuth apps crud * is public * add user count and client secret generation and management * scaffold oauth server settings * improve oauth server enablement / disablement * show cover when oAuth server is disabled * fix update panel update button * add site url and authorization path settings values * move oauth server to it's own nav item * remove unneeded oauth server settings * let the user disactivate oauth server even after creating oauth apps * better delete button * cleanup * fix typecheck * test endpoints * add EnableOAuth21 feature flag * update OAUTH_SERVER_ auth config api * load OAUTH_SERVER_ENABLED in oauth list * Update the api.d.ts. Remove the custom versions of supa libs. * Add query for getTemporaryAPIKey. * Add a hook for initializing a supabase client. * Add hooks for oAuth Server apps. * Regenerate pnpm-lock.yaml. * Revert updates to the platform.d.ts. Not needed for this PR. * Migrate all code to use the new hooks. * Try to integrate the mutations and fix some of the sheet and dialogs. * improve default and saving states * fix oauth app form validation * unify components into CreateOrUpdateOAuthAppModal * create or update oauth app * Update the OAuth Server page. * Remove extra files. * Minor various fixes. * More fixes to the creation of oauth apps. * Bump the libs to fix a DELETE oauth app error. * Clean up the scope feature. * Move the feature flag in the auth layout. * Bunch of smaller fixes. * Regenerate pnpm-lock. * Revert SidePanel and CardDescription changes. * Add confirm dialog for regenerating secret. --------- Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
77 lines
2.3 KiB
TypeScript
77 lines
2.3 KiB
TypeScript
import { useRouter } from 'next/router'
|
|
import { PropsWithChildren } from 'react'
|
|
|
|
import { useFlag, useParams } from 'common'
|
|
import { useIsSecurityNotificationsEnabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext'
|
|
import { ProductMenu } from 'components/ui/ProductMenu'
|
|
import { useAuthConfigPrefetch } from 'data/auth/auth-config-query'
|
|
import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled'
|
|
import { withAuth } from 'hooks/misc/withAuth'
|
|
import { ProjectLayout } from '../ProjectLayout'
|
|
import { generateAuthMenu } from './AuthLayout.utils'
|
|
|
|
const AuthProductMenu = () => {
|
|
const router = useRouter()
|
|
const { ref: projectRef = 'default' } = useParams()
|
|
|
|
const authenticationShowOverview = useFlag('authOverviewPage')
|
|
const authenticationOauth21 = useFlag('EnableOAuth21')
|
|
const authenticationShowSecurityNotifications = useIsSecurityNotificationsEnabled()
|
|
|
|
const {
|
|
authenticationSignInProviders,
|
|
authenticationRateLimits,
|
|
authenticationEmails,
|
|
authenticationMultiFactor,
|
|
authenticationAttackProtection,
|
|
authenticationAdvanced,
|
|
} = useIsFeatureEnabled([
|
|
'authentication:sign_in_providers',
|
|
'authentication:rate_limits',
|
|
'authentication:emails',
|
|
'authentication:multi_factor',
|
|
'authentication:attack_protection',
|
|
'authentication:advanced',
|
|
])
|
|
|
|
useAuthConfigPrefetch({ projectRef })
|
|
const page = router.pathname.split('/')[4]
|
|
|
|
return (
|
|
<ProductMenu
|
|
page={page}
|
|
menu={generateAuthMenu(projectRef, {
|
|
authenticationSignInProviders,
|
|
authenticationRateLimits,
|
|
authenticationEmails,
|
|
authenticationMultiFactor,
|
|
authenticationAttackProtection,
|
|
authenticationAdvanced,
|
|
authenticationShowOverview,
|
|
authenticationShowSecurityNotifications,
|
|
authenticationOauth21,
|
|
})}
|
|
/>
|
|
)
|
|
}
|
|
|
|
const AuthLayout = ({ children }: PropsWithChildren<{}>) => {
|
|
return (
|
|
<ProjectLayout
|
|
title="Authentication"
|
|
product="Authentication"
|
|
productMenu={<AuthProductMenu />}
|
|
isBlocking={false}
|
|
>
|
|
{children}
|
|
</ProjectLayout>
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Layout for all auth pages on the dashboard, wrapped with withAuth to verify logged in state
|
|
*
|
|
* Handles rendering the navigation for each section under the auth pages.
|
|
*/
|
|
export default withAuth(AuthLayout)
|