fix redis test for custom home page

v1.18.x
Barış Soner Uşaklı 7 years ago
parent 5146f43b33
commit 6552ebbd8b

@ -1,61 +1,56 @@
'use strict'; 'use strict';
var async = require('async');
var plugins = require('../plugins'); var plugins = require('../plugins');
var meta = require('../meta'); var meta = require('../meta');
var user = require('../user'); var user = require('../user');
var pubsub = require('../pubsub');
var adminHomePageRoute; function adminHomePageRoute() {
var getRoute; return (meta.config.homePageRoute || meta.config.homePageCustom || '').replace(/^\/+/, '') || 'categories';
function configUpdated() {
adminHomePageRoute = (meta.config.homePageRoute || meta.config.homePageCustom || '').replace(/^\/+/, '') || 'categories';
getRoute = parseInt(meta.config.allowUserHomePage, 10) ? getRouteAllowUserHomePage : getRouteDisableUserHomePage;
}
function getRouteDisableUserHomePage(uid, next) {
next(null, adminHomePageRoute);
} }
function getRouteAllowUserHomePage(uid, next) { function getUserHomeRoute(uid, callback) {
user.getSettings(uid, function (err, settings) { async.waterfall([
if (err) { function (next) {
return next(err); user.getSettings(uid, next);
} },
function (settings, next) {
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;
} }
next(null, route); next(null, route);
}); },
], callback);
} }
pubsub.on('config:update', configUpdated);
configUpdated();
function rewrite(req, res, next) { function rewrite(req, res, next) {
if (req.path !== '/' && req.path !== '/api/' && req.path !== '/api') { if (req.path !== '/' && req.path !== '/api/' && req.path !== '/api') {
return next(); return next();
} }
getRoute(req.uid, function (err, route) { async.waterfall([
if (err) { function (next) {
return next(err); if (parseInt(meta.config.allowUserHomePage, 10)) {
} getUserHomeRoute(req.uid, next);
} else {
var hook = 'action:homepage.get:' + route; next(null, adminHomePageRoute());
}
if (!plugins.hasListeners(hook)) { },
req.url = req.path + (!req.path.endsWith('/') ? '/' : '') + route; function (route, next) {
} else { var hook = 'action:homepage.get:' + route;
res.locals.homePageRoute = route;
} if (!plugins.hasListeners(hook)) {
req.url = req.path + (!req.path.endsWith('/') ? '/' : '') + route;
next(); } else {
}); res.locals.homePageRoute = route;
}
next();
},
], next);
} }
exports.rewrite = rewrite; exports.rewrite = rewrite;

Loading…
Cancel
Save