diff --git a/src/controllers/accounts.js b/src/controllers/accounts.js index 51cc3daf82..3f5d23653a 100644 --- a/src/controllers/accounts.js +++ b/src/controllers/accounts.js @@ -120,8 +120,7 @@ accountsController.getUserByUID = function(req, res, next) { }; accountsController.getAccount = function(req, res, next) { - var lowercaseSlug = req.params.userslug.toLowerCase(), - callerUID = req.user ? parseInt(req.user.uid, 10) : 0; + var lowercaseSlug = req.params.userslug.toLowerCase(); if (req.params.userslug !== lowercaseSlug) { if (res.locals.isAPI) { @@ -131,7 +130,7 @@ accountsController.getAccount = function(req, res, next) { } } - getUserDataByUserSlug(req.params.userslug, callerUID, function (err, userData) { + getUserDataByUserSlug(req.params.userslug, req.uid, function (err, userData) { if (err) { return next(err); } @@ -140,19 +139,19 @@ accountsController.getAccount = function(req, res, next) { return helpers.notFound(req, res); } - if (callerUID !== parseInt(userData.uid, 10)) { + if (req.uid !== parseInt(userData.uid, 10)) { user.incrementUserFieldBy(userData.uid, 'profileviews', 1); } async.parallel({ isFollowing: function(next) { - user.isFollowing(callerUID, userData.theirid, next); + user.isFollowing(req.uid, userData.theirid, next); }, posts: function(next) { - posts.getPostsFromSet('uid:' + userData.theirid + ':posts', callerUID, 0, 9, next); + posts.getPostsFromSet('uid:' + userData.theirid + ':posts', req.uid, 0, 9, next); }, signature: function(next) { - postTools.parseSignature(userData, callerUID, next); + postTools.parseSignature(userData, req.uid, next); } }, function(err, results) { if(err) { @@ -170,7 +169,7 @@ accountsController.getAccount = function(req, res, next) { userData.profileviews = 1; } - plugins.fireHook('filter:user.account', {userData: userData, uid: callerUID}, function(err, data) { + plugins.fireHook('filter:user.account', {userData: userData, uid: req.uid}, function(err, data) { if (err) { return next(err); } @@ -189,12 +188,11 @@ accountsController.getFollowers = function(req, res, next) { }; function getFollow(tpl, name, req, res, next) { - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; var userData; async.waterfall([ function(next) { - getUserDataByUserSlug(req.params.userslug, callerUID, next); + getUserDataByUserSlug(req.params.userslug, req.uid, next); }, function(data, next) { userData = data; @@ -205,7 +203,7 @@ function getFollow(tpl, name, req, res, next) { user[method](userData.uid, 0, 49, next); } ], function(err, users) { - if(err) { + if (err) { return next(err); } @@ -233,9 +231,7 @@ accountsController.getTopics = function(req, res, next) { }; accountsController.getGroups = function(req, res, next) { - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; - - accountsController.getBaseUser(req.params.userslug, callerUID, function(err, userData) { + accountsController.getBaseUser(req.params.userslug, req.uid, function(err, userData) { if (err) { return next(err); } @@ -257,9 +253,7 @@ accountsController.getGroups = function(req, res, next) { }; function getFromUserSet(tpl, set, method, type, req, res, next) { - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; - - accountsController.getBaseUser(req.params.userslug, callerUID, function(err, userData) { + accountsController.getBaseUser(req.params.userslug, req.uid, function(err, userData) { if (err) { return next(err); } @@ -268,7 +262,7 @@ function getFromUserSet(tpl, set, method, type, req, res, next) { return helpers.notFound(req, res); } - method('uid:' + userData.uid + ':' + set, callerUID, 0, 19, function(err, data) { + method('uid:' + userData.uid + ':' + set, req.uid, 0, 19, function(err, data) { if (err) { return next(err); } @@ -317,11 +311,10 @@ accountsController.getBaseUser = function(userslug, callerUID, callback) { }; accountsController.accountEdit = function(req, res, next) { - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; var userData; async.waterfall([ function(next) { - getUserDataByUserSlug(req.params.userslug, callerUID, next); + getUserDataByUserSlug(req.params.userslug, req.uid, next); }, function(data, next) { userData = data; @@ -339,9 +332,7 @@ accountsController.accountEdit = function(req, res, next) { }; accountsController.accountSettings = function(req, res, next) { - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; - - accountsController.getBaseUser(req.params.userslug, callerUID, function(err, userData) { + accountsController.getBaseUser(req.params.userslug, req.uid, function(err, userData) { if (err) { return next(err); } @@ -380,7 +371,7 @@ accountsController.uploadPicture = function (req, res, next) { var userPhoto = req.files.files[0]; var uploadSize = parseInt(meta.config.maximumProfileImageSize, 10) || 256; var extension = path.extname(userPhoto.name); - var updateUid = req.user ? req.user.uid : 0; + var updateUid = req.uid; var imageDimension = parseInt(meta.config.profileImageDimension, 10) || 128; var convertToPNG = parseInt(meta.config['profile:convertProfileImageToPNG'], 10) === 1; @@ -412,7 +403,7 @@ accountsController.uploadPicture = function (req, res, next) { return next(); } - user.isAdministrator(req.user.uid, function(err, isAdmin) { + user.isAdministrator(req.uid, function(err, isAdmin) { if (err) { return next(err); } @@ -471,7 +462,7 @@ accountsController.uploadPicture = function (req, res, next) { }; accountsController.getNotifications = function(req, res, next) { - user.notifications.getAll(req.user.uid, 40, function(err, notifications) { + user.notifications.getAll(req.uid, 40, function(err, notifications) { if (err) { return next(err); } diff --git a/src/controllers/admin.js b/src/controllers/admin.js index d24a80a180..db88ae96ea 100644 --- a/src/controllers/admin.js +++ b/src/controllers/admin.js @@ -144,11 +144,10 @@ adminController.categories.get = function(req, res, next) { }; adminController.categories.getAll = function(req, res, next) { - var uid = req.user ? parseInt(req.user.uid, 10) : 0, - active = [], + var active = [], disabled = []; - categories.getAllCategories(uid, function (err, categoryData) { + categories.getAllCategories(req.uid, function (err, categoryData) { if (err) { return next(err); } @@ -181,17 +180,17 @@ adminController.flags.get = function(req, res, next) { } res.render('admin/manage/flags', {posts: posts, next: stop + 1, byUsername: byUsername}); } - var uid = req.user ? parseInt(req.user.uid, 10) : 0; + var sortBy = req.query.sortBy || 'count'; var byUsername = req.query.byUsername || ''; var start = 0; var stop = 19; if (byUsername) { - posts.getUserFlags(byUsername, sortBy, uid, start, stop, done); + posts.getUserFlags(byUsername, sortBy, req.uid, start, stop, done); } else { var set = sortBy === 'count' ? 'posts:flags:count' : 'posts:flagged'; - posts.getFlags(set, uid, start, stop, done); + posts.getFlags(set, req.uid, start, stop, done); } }; diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index 283302b48e..7f884b79ce 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -31,8 +31,7 @@ usersController.banned = function(req, res, next) { }; function getUsers(set, req, res, next) { - var uid = req.user ? parseInt(req.user.uid, 10) : 0; - user.getUsersFromSet(set, uid, 0, 49, function(err, users) { + user.getUsersFromSet(set, req.uid, 0, 49, function(err, users) { if (err) { return next(err); } @@ -45,7 +44,7 @@ function getUsers(set, req, res, next) { search_display: 'hidden', loadmore_display: 'block', users: users, - yourid: req.user.uid, + yourid: req.uid, requireEmailConfirmation: parseInt(meta.config.requireEmailConfirmation, 10) === 1 }); }); diff --git a/src/controllers/api.js b/src/controllers/api.js index 8be2211ca1..e565963816 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -98,7 +98,6 @@ apiController.getConfig = function(req, res, next) { apiController.renderWidgets = function(req, res, next) { var async = require('async'), - uid = req.user ? req.user.uid : 0, areas = { template: req.query.template, locations: req.query.locations, @@ -110,7 +109,7 @@ apiController.renderWidgets = function(req, res, next) { return res.status(200).json({}); } - widgets.render(uid, { + widgets.render(req.uid, { template: areas.template, url: areas.url, locations: areas.locations diff --git a/src/controllers/categories.js b/src/controllers/categories.js index 8104a3f897..5d67fd828f 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -17,9 +17,8 @@ var categoriesController = {}, utils = require('../../public/src/utils'); categoriesController.recent = function(req, res, next) { - var uid = req.user ? req.user.uid : 0; var stop = (parseInt(meta.config.topicsPerList, 10) || 20) - 1; - topics.getTopicsFromSet('topics:recent', uid, 0, stop, function(err, data) { + topics.getTopicsFromSet('topics:recent', req.uid, 0, stop, function(err, data) { if (err) { return next(err); } @@ -34,7 +33,6 @@ categoriesController.recent = function(req, res, next) { var anonCache = {}, lastUpdateTime = 0; categoriesController.popular = function(req, res, next) { - var uid = req.user ? req.user.uid : 0; var terms = { daily: 'day', weekly: 'week', @@ -43,13 +41,13 @@ categoriesController.popular = function(req, res, next) { }; var term = terms[req.params.term] || 'day'; - if (uid === 0) { + if (!req.uid) { if (anonCache[term] && (Date.now() - lastUpdateTime) < 60 * 60 * 1000) { return res.render('popular', anonCache[term]); } } - topics.getPopular(term, uid, meta.config.topicsPerList, function(err, topics) { + topics.getPopular(term, req.uid, meta.config.topicsPerList, function(err, topics) { if (err) { return next(err); } @@ -61,7 +59,7 @@ categoriesController.popular = function(req, res, next) { breadcrumbs: helpers.buildBreadcrumbs([{text: '[[global:header.popular]]'}]) }; - if (uid === 0) { + if (!req.uid) { anonCache[term] = data; lastUpdateTime = Date.now(); } @@ -71,9 +69,8 @@ categoriesController.popular = function(req, res, next) { }; categoriesController.unread = function(req, res, next) { - var uid = req.user ? req.user.uid : 0; var stop = (parseInt(meta.config.topicsPerList, 10) || 20) - 1; - topics.getUnreadTopics(uid, 0, stop, function (err, data) { + topics.getUnreadTopics(req.uid, 0, stop, function (err, data) { if (err) { return next(err); } @@ -84,10 +81,8 @@ categoriesController.unread = function(req, res, next) { }; categoriesController.unreadTotal = function(req, res, next) { - var uid = req.user ? req.user.uid : 0; - - topics.getTotalUnread(uid, function (err, data) { - if(err) { + topics.getTotalUnread(req.uid, function (err, data) { + if (err) { return next(err); } @@ -122,11 +117,10 @@ categoriesController.list = function(req, res, next) { next(null); }, categories: function (next) { - var uid = req.user ? req.user.uid : 0; var categoryData; async.waterfall([ function(next) { - categories.getCategoriesByPrivilege(uid, 'find', next); + categories.getCategoriesByPrivilege(req.uid, 'find', next); }, function(_categoryData, next) { categoryData = _categoryData; @@ -143,7 +137,7 @@ categoriesController.list = function(req, res, next) { return category && !category.parent; }); - categories.getRecentTopicReplies(allCategories, uid, next); + categories.getRecentTopicReplies(allCategories, req.uid, next); } ], function(err) { next(err, categoryData); @@ -166,7 +160,6 @@ categoriesController.list = function(req, res, next) { categoriesController.get = function(req, res, next) { var cid = req.params.category_id, page = req.query.page || 1, - uid = req.user ? req.user.uid : 0, userPrivileges; if (req.params.topic_index && !utils.isNumber(req.params.topic_index)) { @@ -183,10 +176,10 @@ categoriesController.get = function(req, res, next) { categories.getCategoryFields(cid, ['slug', 'disabled', 'topic_count'], next); }, privileges: function(next) { - privileges.categories.get(cid, uid, next); + privileges.categories.get(cid, req.uid, next); }, userSettings: function(next) { - user.getSettings(uid, next); + user.getSettings(req.uid, next); } }, next); }, @@ -240,7 +233,7 @@ categoriesController.get = function(req, res, next) { reverse: reverse, start: start, stop: stop, - uid: uid + uid: req.uid }); }, function(payload, next) { @@ -276,7 +269,7 @@ categoriesController.get = function(req, res, next) { }); }, function(categoryData, next) { - categories.getRecentTopicReplies(categoryData.children, uid, function(err) { + categories.getRecentTopicReplies(categoryData.children, req.uid, function(err) { next(err, categoryData); }); }, @@ -303,7 +296,7 @@ categoriesController.get = function(req, res, next) { } ]; - if(categoryData.backgroundImage) { + if (categoryData.backgroundImage) { res.locals.metaTags.push({ name: 'og:image', content: categoryData.backgroundImage diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 7371c924e7..e3bdd500a6 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -12,7 +12,7 @@ groupsController.list = function(req, res, next) { groups.list({ truncateUserList: true, expand: true, - uid: req.user ? parseInt(req.user.uid, 10) : 0 + uid: req.uid }, function(err, groups) { if (err) { return next(err); @@ -25,12 +25,12 @@ groupsController.list = function(req, res, next) { }; groupsController.details = function(req, res, next) { - var uid = req.user ? parseInt(req.user.uid, 10) : 0; - async.waterfall([ async.apply(groups.exists, res.locals.groupName), function(exists, next) { - if (!exists) { return next(undefined, null); } + if (!exists) { + return next(undefined, null); + } // Ensure the group isn't hidden either groups.isHidden(res.locals.groupName, next); @@ -43,8 +43,8 @@ groupsController.details = function(req, res, next) { } else { // If not, only members are granted access async.parallel([ - async.apply(groups.isMember, uid, res.locals.groupName), - async.apply(groups.isInvited, uid, res.locals.groupName) + async.apply(groups.isMember, req.uid, res.locals.groupName), + async.apply(groups.isInvited, req.uid, res.locals.groupName) ], function(err, checks) { next(err, checks[0] || checks[1]); }); @@ -63,11 +63,11 @@ groupsController.details = function(req, res, next) { group: function(next) { groups.get(res.locals.groupName, { expand: true, - uid: uid + uid: req.uid }, next); }, posts: function(next) { - groups.getLatestMemberPosts(res.locals.groupName, 10, uid, next); + groups.getLatestMemberPosts(res.locals.groupName, 10, req.uid, next); } }, function(err, results) { if (err) { @@ -84,13 +84,12 @@ groupsController.details = function(req, res, next) { }; groupsController.members = function(req, res, next) { - var uid = req.user ? parseInt(req.user.uid, 10) : 0; async.waterfall([ function(next) { groups.getGroupNameByGroupSlug(req.params.slug, next); }, function(groupName, next) { - user.getUsersFromSet('group:' + groupName + ':members', uid, 0, 49, next); + user.getUsersFromSet('group:' + groupName + ':members', req.uid, 0, 49, next); }, ], function(err, users) { if (err) { diff --git a/src/controllers/helpers.js b/src/controllers/helpers.js index 0b100aad49..8d4ccb8895 100644 --- a/src/controllers/helpers.js +++ b/src/controllers/helpers.js @@ -26,13 +26,11 @@ helpers.notFound = function(req, res, error) { }; helpers.notAllowed = function(req, res, error) { - var uid = req.user ? req.user.uid : 0; - - if (uid) { + if (req.uid) { if (res.locals.isAPI) { - res.status(403).json({path: req.path.replace(/^\/api/, ''), loggedIn: !!uid, error: error}); + res.status(403).json({path: req.path.replace(/^\/api/, ''), loggedIn: !!req.uid, error: error}); } else { - res.status(403).render('403', {path: req.path, loggedIn: !!uid, error: error}); + res.status(403).render('403', {path: req.path, loggedIn: !!req.uid, error: error}); } } else { if (res.locals.isAPI) { diff --git a/src/controllers/posts.js b/src/controllers/posts.js index e5a32e9791..a2bbfab226 100644 --- a/src/controllers/posts.js +++ b/src/controllers/posts.js @@ -1,17 +1,16 @@ "use strict"; var async = require('async'), - + posts = require('../posts'), privileges = require('../privileges'), helpers = require('./helpers'), postsController = {}; postsController.getPost = function(req, res, next) { - var uid = req.user ? parseInt(req.user.uid) : 0; async.parallel({ canRead: function(next) { - privileges.posts.can('read', req.params.pid, uid, next); + privileges.posts.can('read', req.params.pid, req.uid, next); }, postData: function(next) { posts.getPostData(req.params.pid, next); diff --git a/src/controllers/search.js b/src/controllers/search.js index 7c1d20262b..55134c7ec6 100644 --- a/src/controllers/search.js +++ b/src/controllers/search.js @@ -15,10 +15,9 @@ searchController.search = function(req, res, next) { return helpers.notFound(req, res); } - var uid = req.user ? req.user.uid : 0; var breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:search]]'}]); - categories.getCategoriesByPrivilege(uid, 'read', function(err, categories) { + categories.getCategoriesByPrivilege(req.uid, 'read', function(err, categories) { if (err) { return next(err); } @@ -42,7 +41,7 @@ searchController.search = function(req, res, next) { sortBy: req.query.sortBy, sortDirection: req.query.sortDirection, page: page, - uid: uid + uid: req.uid }; search.search(data, function(err, results) { diff --git a/src/controllers/tags.js b/src/controllers/tags.js index 0e0bb2372d..aba1acae60 100644 --- a/src/controllers/tags.js +++ b/src/controllers/tags.js @@ -10,7 +10,6 @@ var tagsController = {}, tagsController.getTag = function(req, res, next) { var tag = validator.escape(req.params.tag); - var uid = req.user ? req.user.uid : 0; var stop = (parseInt(meta.config.topicsPerList, 10) || 20) - 1; topics.getTagTids(tag, 0, stop, function(err, tids) { @@ -23,7 +22,7 @@ tagsController.getTag = function(req, res, next) { return res.render('tag', {topics: [], tag: tag}); } - topics.getTopics(tids, uid, function(err, topics) { + topics.getTopics(tids, req.uid, function(err, topics) { if (err) { return next(err); } diff --git a/src/controllers/topics.js b/src/controllers/topics.js index 5fb4e31b36..7436e86c8e 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -20,7 +20,6 @@ topicsController.get = function(req, res, next) { var tid = req.params.topic_id, page = 1, sort = req.query.sort, - uid = req.user ? req.user.uid : 0, userPrivileges; if (req.params.post_index && !utils.isNumber(req.params.post_index)) { @@ -31,10 +30,10 @@ topicsController.get = function(req, res, next) { function (next) { async.parallel({ privileges: function(next) { - privileges.topics.get(tid, uid, next); + privileges.topics.get(tid, req.uid, next); }, settings: function(next) { - user.getSettings(uid, next); + user.getSettings(req.uid, next); }, topic: function(next) { topics.getTopicFields(tid, ['slug', 'postcount', 'deleted'], next); @@ -108,7 +107,7 @@ topicsController.get = function(req, res, next) { var start = (page - 1) * settings.postsPerPage + postIndex, stop = start + settings.postsPerPage - 1; - topics.getTopicWithPosts(tid, set, uid, start, stop, reverse, function (err, topicData) { + topics.getTopicWithPosts(tid, set, req.uid, start, stop, reverse, function (err, topicData) { if (err && err.message === '[[error:no-topic]]' && !topicData) { return helpers.notFound(req, res); } @@ -274,7 +273,6 @@ topicsController.get = function(req, res, next) { topicsController.teaser = function(req, res, next) { var tid = req.params.topic_id; - var uid = req.user ? parseInt(req.user.uid, 10) : 0; if (!utils.isNumber(tid)) { return next(new Error('[[error:invalid-tid]]')); @@ -282,7 +280,7 @@ topicsController.teaser = function(req, res, next) { async.waterfall([ function(next) { - privileges.topics.can('read', tid, uid, next); + privileges.topics.can('read', tid, req.uid, next); }, function(canRead, next) { if (!canRead) { @@ -294,7 +292,7 @@ topicsController.teaser = function(req, res, next) { if (!pid) { return res.status(404).json('not-found'); } - posts.getPostSummaryByPids([pid], uid, {stripTags: false}, next); + posts.getPostSummaryByPids([pid], req.uid, {stripTags: false}, next); } ], function(err, posts) { if (err) { diff --git a/src/controllers/users.js b/src/controllers/users.js index a4cb36259b..6a3e02b252 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -11,18 +11,17 @@ var async = require('async'), usersController.getOnlineUsers = function(req, res, next) { var websockets = require('../socket.io'); - var uid = req.user ? req.user.uid : 0; async.parallel({ users: function(next) { - user.getUsersFromSet('users:online', uid, 0, 49, next); + user.getUsersFromSet('users:online', req.uid, 0, 49, next); }, count: function(next) { var now = Date.now(); db.sortedSetCount('users:online', now - 300000, now, next); }, isAdministrator: function(next) { - user.isAdministrator(uid, next); + user.isAdministrator(req.uid, next); } }, function(err, results) { if (err) { @@ -62,9 +61,7 @@ usersController.getUsersSortedByJoinDate = function(req, res, next) { }; usersController.getUsers = function(set, count, req, res, next) { - var uid = req.user ? req.user.uid : 0; - - getUsersAndCount(set, uid, count, function(err, data) { + getUsersAndCount(set, req.uid, count, function(err, data) { if (err) { return next(err); } @@ -102,10 +99,9 @@ function getUsersAndCount(set, uid, count, callback) { } usersController.getUsersForSearch = function(req, res, next) { - var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20, - uid = req.user ? req.user.uid : 0; + var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; - getUsersAndCount('users:joindate', uid, resultsPerPage, function(err, data) { + getUsersAndCount('users:joindate', req.uid, resultsPerPage, function(err, data) { if (err) { return next(err); } diff --git a/src/middleware/admin.js b/src/middleware/admin.js index 1d6c0dae6a..5b3f4c186d 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -53,19 +53,17 @@ middleware.buildHeader = function(req, res, next) { }; middleware.renderHeader = function(req, res, next) { - var uid = req.user ? req.user.uid : 0; - var custom_header = { 'plugins': [], 'authentication': [] }; - user.getUserFields(uid, ['username', 'userslug', 'email', 'picture', 'email:confirmed'], function(err, userData) { + user.getUserFields(req.uid, ['username', 'userslug', 'email', 'picture', 'email:confirmed'], function(err, userData) { if (err) { return next(err); } - userData.uid = uid; + userData.uid = req.uid; userData['email:confirmed'] = parseInt(userData['email:confirmed'], 10) === 1; async.parallel({ diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index cc3ae7cb5c..f542159c50 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -124,9 +124,7 @@ middleware.checkGlobalPrivacySettings = function(req, res, next) { middleware.checkAccountPermissions = function(req, res, next) { // This middleware ensures that only the requested user and admins can pass - var callerUID = req.user ? parseInt(req.user.uid, 10) : 0; - - if (callerUID === 0) { + if (!req.uid) { return controllers.helpers.notAllowed(req, res); } @@ -139,11 +137,11 @@ middleware.checkAccountPermissions = function(req, res, next) { return controllers.helpers.notFound(req, res); } - if (parseInt(uid, 10) === callerUID) { + if (parseInt(uid, 10) === req.uid) { return next(); } - user.isAdministrator(callerUID, function(err, isAdmin) { + user.isAdministrator(req.uid, function(err, isAdmin) { if (err || isAdmin) { return next(err); } @@ -201,8 +199,6 @@ middleware.buildHeader = function(req, res, next) { }; middleware.renderHeader = function(req, res, callback) { - var uid = req.user ? parseInt(req.user.uid, 10) : 0; - navigation.get(function(err, menuItems) { if (err) { return callback(err); @@ -284,8 +280,8 @@ middleware.renderHeader = function(req, res, callback) { next(null, templateValues.useCustomJS ? meta.config.customJS : ''); }, title: function(next) { - if (uid) { - user.getSettings(uid, function(err, settings) { + if (req.uid) { + user.getSettings(req.uid, function(err, settings) { if (err) { return next(err); } @@ -296,11 +292,11 @@ middleware.renderHeader = function(req, res, callback) { } }, isAdmin: function(next) { - user.isAdministrator(uid, next); + user.isAdministrator(req.uid, next); }, user: function(next) { - if (uid) { - user.getUserFields(uid, ['username', 'userslug', 'email', 'picture', 'status', 'email:confirmed', 'banned'], next); + if (req.uid) { + user.getUserFields(req.uid, ['username', 'userslug', 'email', 'picture', 'status', 'email:confirmed', 'banned'], next); } else { next(null, { username: '[[global:guest]]', @@ -527,7 +523,7 @@ middleware.exposeUid = function(req, res, next) { res.locals.uid = uid; next(); - }) + }); } else { next(); } diff --git a/src/routes/api.js b/src/routes/api.js index 88c3686850..d3a366dc5d 100644 --- a/src/routes/api.js +++ b/src/routes/api.js @@ -35,10 +35,8 @@ function getModerators(req, res, next) { function getRecentPosts(req, res, next) { - var uid = (req.user) ? req.user.uid : 0; - - posts.getRecentPosts(uid, 0, 19, req.params.term, function (err, data) { - if(err) { + posts.getRecentPosts(req.uid, 0, 19, req.params.term, function (err, data) { + if (err) { return next(err); } diff --git a/src/routes/authentication.js b/src/routes/authentication.js index 6a5bc87723..eaf09f3e8b 100644 --- a/src/routes/authentication.js +++ b/src/routes/authentication.js @@ -23,6 +23,11 @@ app.use(passport.initialize()); app.use(passport.session()); + app.use(function(req, res, next) { + req.uid = req.user ? parseInt(req.user.uid) : 0; + next(); + }); + Auth.app = app; Auth.middleware = middleware; }; diff --git a/src/routes/feeds.js b/src/routes/feeds.js index d58c68326d..8e1da9ac7e 100644 --- a/src/routes/feeds.js +++ b/src/routes/feeds.js @@ -25,9 +25,7 @@ function hasCategoryPrivileges(req, res, next) { } function hasPrivileges(method, id, req, res, next) { - var uid = req.user ? req.user.uid || 0 : 0; - - method('read', id, uid, function(err, canRead) { + method('read', id, req.uid, function(err, canRead) { if (err) { return next(err); } @@ -42,14 +40,13 @@ function hasPrivileges(method, id, req, res, next) { function generateForTopic(req, res, next) { var tid = req.params.topic_id; - var uid = req.user ? req.user.uid : 0; - privileges.topics.get(tid, uid, function(err, userPrivileges) { + privileges.topics.get(tid, req.uid, function(err, userPrivileges) { if (err) { return next(err); } - topics.getTopicWithPosts(tid, 'tid:' + tid + ':posts', uid, 0, 25, false, function (err, topicData) { + topics.getTopicWithPosts(tid, 'tid:' + tid + ':posts', req.uid, 0, 25, false, function (err, topicData) { if (err) { return next(err); } @@ -122,14 +119,14 @@ function generateForUserTopics(req, res, next) { function generateForCategory(req, res, next) { var cid = req.params.category_id; - var uid = req.user ? req.user.uid : 0; + categories.getCategoryById({ cid: cid, set: 'cid:' + cid + ':tids', reverse: true, start: 0, stop: 25, - uid: uid + uid: req.uid }, function (err, categoryData) { if (err) { return next(err); @@ -159,7 +156,6 @@ function generateForRecent(req, res, next) { } function generateForPopular(req, res, next) { - var uid = req.user ? req.user.uid : 0; var terms = { daily: 'day', weekly: 'week', @@ -168,7 +164,7 @@ function generateForPopular(req, res, next) { }; var term = terms[req.params.term] || 'day'; - topics.getPopular(term, uid, 19, function(err, topics) { + topics.getPopular(term, req.uid, 19, function(err, topics) { if (err) { return next(err); } @@ -196,8 +192,7 @@ function disabledRSS(req, res, next) { } function generateForTopics(options, set, req, res, next) { - var uid = req.user ? req.user.uid : 0; - topics.getTopicsFromSet(set, uid, 0, 19, function (err, data) { + topics.getTopicsFromSet(set, req.uid, 0, 19, function (err, data) { if (err) { return next(err); } @@ -239,8 +234,7 @@ function generateTopicsFeed(feedOptions, feedTopics, callback) { } function generateForRecentPosts(req, res, next) { - var uid = req.user ? req.user.uid : 0; - posts.getRecentPosts(uid, 0, 19, 'month', function(err, posts) { + posts.getRecentPosts(req.uid, 0, 19, 'month', function(err, posts) { if (err) { return next(err); } @@ -257,7 +251,6 @@ function generateForRecentPosts(req, res, next) { } function generateForCategoryRecentPosts(req, res, next) { - var uid = req.user ? req.user.uid : 0; var cid = req.params.category_id; async.parallel({ @@ -265,7 +258,7 @@ function generateForCategoryRecentPosts(req, res, next) { categories.getCategoryData(cid, next); }, posts: function(next) { - categories.getRecentReplies(cid, uid, 20, next); + categories.getRecentReplies(cid, req.uid, 20, next); } }, function(err, results) { if (err) {