芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/strapi-admin/validation/action-provider.js
'use strict'; const { yup } = require('strapi-utils'); const validators = require('./common-validators'); const registerProviderActionSchema = yup .array() .requiredAllowEmpty() .required() .of( yup .object() .shape({ uid: yup .string() .matches( /^[a-z]([a-z|.|-]+)[a-z]$/, v => `${v.path}: The id can only contain lowercase letters, dots and hyphens.` ) .required(), section: yup .string() .oneOf(['contentTypes', 'plugins', 'settings']) .required(), pluginName: yup.mixed().when('section', { is: 'plugins', then: validators.isAPluginName.required(), otherwise: validators.isAPluginName, }), subjects: yup.mixed().when('section', { is: 'contentTypes', then: yup .array() .of(yup.string()) .requiredAllowEmpty(), otherwise: yup .mixed() .oneOf([undefined], 'subjects should only be defined for the "contentTypes" section'), }), displayName: yup.string().required(), category: yup.mixed().when('section', { is: 'settings', then: yup.string().required(), otherwise: yup .mixed() .test( 'settingsCategory', 'category should only be defined for the "settings" section', cat => cat === undefined ), }), subCategory: yup.mixed().when('section', { is: section => ['settings', 'plugins'].includes(section), then: yup.string(), otherwise: yup .mixed() .test( 'settingsSubCategory', 'subCategory should only be defined for "plugins" and "settings" sections', subCat => { return subCat === undefined; } ), }), options: yup.object({ fieldsRestriction: yup.boolean(), }), }) .noUnknown() ); const validateRegisterProviderAction = data => { try { registerProviderActionSchema.validateSync(data, { strict: true, abortEarly: false }); } catch (e) { if (e.errors.length > 0) { throw new yup.ValidationError(e.errors.join(', ')); } else { throw e; } } }; module.exports = { validateRegisterProviderAction, };