aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/controllers/plugins.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/controllers/plugins.ts')
-rw-r--r--server/controllers/plugins.ts40
1 files changed, 34 insertions, 6 deletions
diff --git a/server/controllers/plugins.ts b/server/controllers/plugins.ts
index 05f03324d..f255d13e8 100644
--- a/server/controllers/plugins.ts
+++ b/server/controllers/plugins.ts
@@ -1,25 +1,42 @@
1import * as express from 'express' 1import * as express from 'express'
2import { PLUGIN_GLOBAL_CSS_PATH } from '../initializers/constants' 2import { PLUGIN_GLOBAL_CSS_PATH } from '../initializers/constants'
3import { basename, join } from 'path' 3import { join } from 'path'
4import { RegisteredPlugin } from '../lib/plugins/plugin-manager' 4import { RegisteredPlugin } from '../lib/plugins/plugin-manager'
5import { servePluginStaticDirectoryValidator } from '../middlewares/validators/plugins' 5import { servePluginStaticDirectoryValidator } from '../middlewares/validators/plugins'
6import { serveThemeCSSValidator } from '../middlewares/validators/themes'
7import { PluginType } from '../../shared/models/plugins/plugin.type'
6 8
7const pluginsRouter = express.Router() 9const pluginsRouter = express.Router()
8 10
9pluginsRouter.get('/global.css', 11pluginsRouter.get('/plugins/global.css',
10 servePluginGlobalCSS 12 servePluginGlobalCSS
11) 13)
12 14
13pluginsRouter.get('/:pluginName/:pluginVersion/static/:staticEndpoint(*)', 15pluginsRouter.get('/plugins/:pluginName/:pluginVersion/static/:staticEndpoint(*)',
14 servePluginStaticDirectoryValidator, 16 servePluginStaticDirectoryValidator(PluginType.PLUGIN),
15 servePluginStaticDirectory 17 servePluginStaticDirectory
16) 18)
17 19
18pluginsRouter.get('/:pluginName/:pluginVersion/client-scripts/:staticEndpoint(*)', 20pluginsRouter.get('/plugins/:pluginName/:pluginVersion/client-scripts/:staticEndpoint(*)',
19 servePluginStaticDirectoryValidator, 21 servePluginStaticDirectoryValidator(PluginType.PLUGIN),
20 servePluginClientScripts 22 servePluginClientScripts
21) 23)
22 24
25pluginsRouter.get('/themes/:pluginName/:pluginVersion/static/:staticEndpoint(*)',
26 servePluginStaticDirectoryValidator(PluginType.THEME),
27 servePluginStaticDirectory
28)
29
30pluginsRouter.get('/themes/:pluginName/:pluginVersion/client-scripts/:staticEndpoint(*)',
31 servePluginStaticDirectoryValidator(PluginType.THEME),
32 servePluginClientScripts
33)
34
35pluginsRouter.get('/themes/:themeName/:themeVersion/css/:staticEndpoint(*)',
36 serveThemeCSSValidator,
37 serveThemeCSSDirectory
38)
39
23// --------------------------------------------------------------------------- 40// ---------------------------------------------------------------------------
24 41
25export { 42export {
@@ -58,3 +75,14 @@ function servePluginClientScripts (req: express.Request, res: express.Response)
58 75
59 return res.sendFile(join(plugin.path, staticEndpoint)) 76 return res.sendFile(join(plugin.path, staticEndpoint))
60} 77}
78
79function serveThemeCSSDirectory (req: express.Request, res: express.Response) {
80 const plugin: RegisteredPlugin = res.locals.registeredPlugin
81 const staticEndpoint = req.params.staticEndpoint
82
83 if (plugin.css.includes(staticEndpoint) === false) {
84 return res.sendStatus(404)
85 }
86
87 return res.sendFile(join(plugin.path, staticEndpoint))
88}