This commit is contained in:
Baris Usakli
2018-07-06 14:20:10 -04:00
parent b02e918220
commit cc6a683bc4

View File

@@ -1,6 +1,8 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var url = require('url');
var plugins = require('../plugins'); var plugins = require('../plugins');
var meta = require('../meta'); var meta = require('../meta');
var user = require('../user'); var user = require('../user');
@@ -18,7 +20,7 @@ function getUserHomeRoute(uid, callback) {
var route = adminHomePageRoute(); var route = adminHomePageRoute();
if (settings.homePageRoute !== 'undefined' && settings.homePageRoute !== 'none') { if (settings.homePageRoute !== 'undefined' && settings.homePageRoute !== 'none') {
route = settings.homePageRoute || route; route = (settings.homePageRoute || route).replace(/^\/+/, '');
} }
next(null, route); next(null, route);
@@ -40,14 +42,22 @@ function rewrite(req, res, next) {
} }
}, },
function (route, next) { function (route, next) {
var hook = 'action:homepage.get:' + route; var parsedUrl;
try {
if (!plugins.hasListeners(hook)) { parsedUrl = url.parse(route, true);
req.url = req.path + (!req.path.endsWith('/') ? '/' : '') + route; } catch (err) {
} else { return next(err);
res.locals.homePageRoute = route;
} }
var pathname = parsedUrl.pathname;
var hook = 'action:homepage.get:' + pathname;
if (!plugins.hasListeners(hook)) {
req.url = req.path + (!req.path.endsWith('/') ? '/' : '') + pathname;
} else {
res.locals.homePageRoute = pathname;
}
req.query = Object.assign(parsedUrl.query, req.query);
next(); next();
}, },
], next); ], next);