X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmiddlewares%2Fvalidators%2Fplugins.ts;h=8cb3153aa1cd96e9f7e0a802814129210e3ef4e4;hb=b4055e1c23eeefb0c8a85a77f312b2827d98f483;hp=8103ec7d327e392381a9886ceb882e9db5f37ed2;hpb=b5f919ac8eb2a1c20e26582fdfd377d687710d8f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/middlewares/validators/plugins.ts b/server/middlewares/validators/plugins.ts index 8103ec7d3..8cb3153aa 100644 --- a/server/middlewares/validators/plugins.ts +++ b/server/middlewares/validators/plugins.ts @@ -8,6 +8,7 @@ import { isBooleanValid, isSafePath } from '../../helpers/custom-validators/misc import { PluginModel } from '../../models/server/plugin' import { InstallOrUpdatePlugin } from '../../../shared/models/plugins/install-plugin.model' import { PluginType } from '../../../shared/models/plugins/plugin.type' +import { CONFIG } from '../../initializers/config' const servePluginStaticDirectoryValidator = (pluginType: PluginType) => [ param('pluginName').custom(isPluginNameValid).withMessage('Should have a valid plugin name'), @@ -33,7 +34,7 @@ const servePluginStaticDirectoryValidator = (pluginType: PluginType) => [ ] const listPluginsValidator = [ - query('type') + query('pluginType') .optional() .custom(isPluginTypeValid).withMessage('Should have a valid plugin type'), query('uninstalled') @@ -119,12 +120,39 @@ const updatePluginSettingsValidator = [ } ] +const listAvailablePluginsValidator = [ + query('sort') + .optional() + .exists().withMessage('Should have a valid sort'), + query('search') + .optional() + .exists().withMessage('Should have a valid search'), + query('pluginType') + .optional() + .custom(isPluginTypeValid).withMessage('Should have a valid plugin type'), + + (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking enabledPluginValidator parameters', { parameters: req.query }) + + if (areValidationErrors(req, res)) return + + if (CONFIG.PLUGINS.INDEX.ENABLED === false) { + return res.status(400) + .json({ error: 'Plugin index is not enabled' }) + .end() + } + + return next() + } +] + // --------------------------------------------------------------------------- export { servePluginStaticDirectoryValidator, updatePluginSettingsValidator, uninstallPluginValidator, + listAvailablePluginsValidator, existingPluginValidator, installOrUpdatePluginValidator, listPluginsValidator