forked from wangziqi/gongxue-base
fix: validate PNVS provider rows for alias env
This commit is contained in:
@@ -160,19 +160,23 @@ function normalizeProvider(value) {
|
||||
return String(value || '').trim().toLowerCase();
|
||||
}
|
||||
|
||||
function normalizeSmsProvider(value) {
|
||||
return normalizeProvider(value).replace(/[_\s]/g, '-');
|
||||
}
|
||||
|
||||
function providerIn(provider, aliases) {
|
||||
return aliases.has(normalizeProvider(provider));
|
||||
}
|
||||
|
||||
function currentSmsProviderAliases() {
|
||||
const provider = normalizeProvider(env('AUTH_SMS_PROVIDER', 'mock')).replace(/_/g, '-');
|
||||
const provider = normalizeSmsProvider(env('AUTH_SMS_PROVIDER', 'mock'));
|
||||
if (AUTH_PROVIDER_ALIASES.aliyunPnvs.has(provider)) return { provider: 'aliyun-pnvs', aliases: AUTH_PROVIDER_ALIASES.aliyunPnvs };
|
||||
return { provider, aliases: new Set([provider]) };
|
||||
}
|
||||
|
||||
function validateActiveSmsProviderRows(rows, sourceLabel = 'database') {
|
||||
const expected = currentSmsProviderAliases();
|
||||
if (!PRODUCTION_SMS_PROVIDERS.has(normalizeProvider(env('AUTH_SMS_PROVIDER', 'mock')))) return;
|
||||
if (!PRODUCTION_SMS_PROVIDERS.has(normalizeSmsProvider(env('AUTH_SMS_PROVIDER', 'mock')))) return;
|
||||
const activeRows = rows.filter(row => row.source === 'auth' && providerIn(row.provider, expected.aliases));
|
||||
if (activeRows.length === 0) {
|
||||
block('db.auth_sms_provider_configured', 'AUTH_SMS_PROVIDER must have a matching active/testing tenant_auth_providers row', {
|
||||
@@ -565,7 +569,7 @@ function validateEnv() {
|
||||
}
|
||||
}
|
||||
|
||||
const authSmsProvider = normalizeProvider(env('AUTH_SMS_PROVIDER', 'mock')).replace(/[_\s]/g, '-');
|
||||
const authSmsProvider = normalizeSmsProvider(env('AUTH_SMS_PROVIDER', 'mock'));
|
||||
if (!PRODUCTION_SMS_PROVIDERS.has(authSmsProvider)) {
|
||||
block('env.auth_sms_provider', 'AUTH_SMS_PROVIDER must be aliyun-pnvs in production', {
|
||||
provider: authSmsProvider || '(empty)',
|
||||
|
||||
Reference in New Issue
Block a user