diff options
Diffstat (limited to 'server/controllers/themes.ts')
-rw-r--r-- | server/controllers/themes.ts | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/server/controllers/themes.ts b/server/controllers/themes.ts index 20e7062d0..104c285ad 100644 --- a/server/controllers/themes.ts +++ b/server/controllers/themes.ts | |||
@@ -1,13 +1,11 @@ | |||
1 | import * as express from 'express' | 1 | import * as express from 'express' |
2 | import { PLUGIN_GLOBAL_CSS_PATH } from '../initializers/constants' | ||
3 | import { join } from 'path' | 2 | import { join } from 'path' |
4 | import { RegisteredPlugin } from '../lib/plugins/plugin-manager' | 3 | import { RegisteredPlugin } from '../lib/plugins/plugin-manager' |
5 | import { servePluginStaticDirectoryValidator } from '../middlewares/validators/plugins' | ||
6 | import { serveThemeCSSValidator } from '../middlewares/validators/themes' | 4 | import { serveThemeCSSValidator } from '../middlewares/validators/themes' |
7 | 5 | ||
8 | const themesRouter = express.Router() | 6 | const themesRouter = express.Router() |
9 | 7 | ||
10 | themesRouter.get('/:themeName/:themeVersion/css/:staticEndpoint', | 8 | themesRouter.get('/:themeName/:themeVersion/css/:staticEndpoint(*)', |
11 | serveThemeCSSValidator, | 9 | serveThemeCSSValidator, |
12 | serveThemeCSSDirectory | 10 | serveThemeCSSDirectory |
13 | ) | 11 | ) |
@@ -24,5 +22,9 @@ function serveThemeCSSDirectory (req: express.Request, res: express.Response) { | |||
24 | const plugin: RegisteredPlugin = res.locals.registeredPlugin | 22 | const plugin: RegisteredPlugin = res.locals.registeredPlugin |
25 | const staticEndpoint = req.params.staticEndpoint | 23 | const staticEndpoint = req.params.staticEndpoint |
26 | 24 | ||
27 | return express.static(join(plugin.path, staticEndpoint), { fallthrough: false }) | 25 | if (plugin.css.includes(staticEndpoint) === false) { |
26 | return res.sendStatus(404) | ||
27 | } | ||
28 | |||
29 | return res.sendFile(join(plugin.path, staticEndpoint)) | ||
28 | } | 30 | } |