diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt index 6e8f8dc20f06d..7abaa39f985cf 100644 --- a/apps/docs/public/humans.txt +++ b/apps/docs/public/humans.txt @@ -5,6 +5,7 @@ Supabase is 100% remote. Aaron Byrne Ada Wong Adam Mokan +AJ Matias Akash Manimaran Alaister Young Alan De Los Santos diff --git a/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx b/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx index 0a73663ea68af..58bf221e19275 100644 --- a/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx +++ b/apps/studio/components/interfaces/Auth/MfaAuthSettingsForm/MfaAuthSettingsForm.tsx @@ -116,9 +116,17 @@ export const MfaAuthSettingsForm = () => { 'custom_config_gotrue' ) - const { hasAccess: hasAccessToMFA, isLoading: isLoadingEntitlement } = + const { hasAccess: hasAccessToMFAEntitlement, isLoading: isLoadingEntitlement } = useCheckEntitlements('auth.mfa_phone') - const promptProPlanUpgrade = IS_PLATFORM && !hasAccessToMFA + const hasAccessToMFA = !IS_PLATFORM || hasAccessToMFAEntitlement + const promptProPlanUpgrade = IS_PLATFORM && !hasAccessToMFAEntitlement + + const { + hasAccess: hasAccessToEnhanceSecurityEntitlement, + isLoading: isLoadingEntitlementEnhanceSecurity, + } = useCheckEntitlements('auth.mfa_enhanced_security') + const hasAccessToEnhanceSecurity = !IS_PLATFORM || hasAccessToEnhanceSecurityEntitlement + const promptEnhancedSecurityUpgrade = IS_PLATFORM && !hasAccessToEnhanceSecurityEntitlement // For now, we support Twilio and Vonage. Twilio Verify is not supported and the remaining providers are community maintained. const sendSMSHookIsEnabled = @@ -282,7 +290,7 @@ export const MfaAuthSettingsForm = () => { ) } - if (isLoading || isLoadingEntitlement) { + if (isLoading || isLoadingEntitlement || isLoadingEntitlementEnhanceSecurity) { return ( @@ -580,13 +588,24 @@ export const MfaAuthSettingsForm = () => { field.onChange(!value)} - disabled={!canUpdateConfig} + disabled={!canUpdateConfig || !hasAccessToEnhanceSecurity} /> )} /> + + {promptEnhancedSecurityUpgrade && ( + + )} {securityForm.formState.isDirty && (