From c9b5948034d630bdfe760a514445807ca04ffb28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 16 Apr 2015 14:31:49 -0400 Subject: [PATCH] closes #2927 --- install/data/navigation.json | 5 +---- public/src/modules/helpers.js | 10 ++++++---- src/controllers/api.js | 1 + src/middleware/middleware.js | 8 ++++---- src/routes/index.js | 4 ++-- src/views/admin/settings/tags.tpl | 2 +- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/install/data/navigation.json b/install/data/navigation.json index 228f9c4b3d..095edd5ab0 100644 --- a/install/data/navigation.json +++ b/install/data/navigation.json @@ -41,10 +41,7 @@ "enabled": true, "iconClass": "fa-user", "textClass": "visible-xs-inline", - "text": "\\[\\[global:header.users\\]\\]", - "properties": { - "loggedIn": true - } + "text": "\\[\\[global:header.users\\]\\]" }, { "route": "/groups", diff --git a/public/src/modules/helpers.js b/public/src/modules/helpers.js index aa5e2413d4..7d79265b84 100644 --- a/public/src/modules/helpers.js +++ b/public/src/modules/helpers.js @@ -21,10 +21,12 @@ } } - if (item.route.match('/users')) { - if (data.privateUserInfo && !data.isAdmin) { - return false; - } + if (item.route.match('/users') && data.privateUserInfo && !data.loggedIn) { + return false; + } + + if (item.route.match('/tags') && data.privateTagListing && !data.loggedIn) { + return false; } return true; diff --git a/src/controllers/api.js b/src/controllers/api.js index 367c6eb278..bf00491099 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -48,6 +48,7 @@ apiController.getConfig = function(req, res, next) { config.allowTopicsThumbnail = parseInt(meta.config.allowTopicsThumbnail, 10) === 1; config.allowAccountDelete = parseInt(meta.config.allowAccountDelete, 10) === 1; config.privateUserInfo = parseInt(meta.config.privateUserInfo, 10) === 1; + config.privateTagListing = parseInt(meta.config.privateTagListing, 10) === 1; config.usePagination = parseInt(meta.config.usePagination, 10) === 1; config.disableSocialButtons = parseInt(meta.config.disableSocialButtons, 10) === 1; config.disableChat = parseInt(meta.config.disableChat, 10) === 1; diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 92313916ce..ed430a934d 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -487,11 +487,11 @@ middleware.maintenanceMode = function(req, res, next) { }); }; -middleware.publicTagListing = function(req, res, next) { - if (req.user || parseInt(meta.config.publicTagListing, 10) === 1) { - next(); - } else { +middleware.privateTagListing = function(req, res, next) { + if (!req.user && parseInt(meta.config.privateTagListing, 10) === 1) { controllers.helpers.notAllowed(req, res); + } else { + next(); } }; diff --git a/src/routes/index.js b/src/routes/index.js index fb7781bee7..e9a2ed5ace 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -46,8 +46,8 @@ function topicRoutes(app, middleware, controllers) { } function tagRoutes(app, middleware, controllers) { - setupPageRoute(app, '/tags/:tag', middleware, [middleware.publicTagListing], controllers.tags.getTag); - setupPageRoute(app, '/tags', middleware, [middleware.publicTagListing], controllers.tags.getTags); + setupPageRoute(app, '/tags/:tag', middleware, [middleware.privateTagListing], controllers.tags.getTag); + setupPageRoute(app, '/tags', middleware, [middleware.privateTagListing], controllers.tags.getTags); } function categoryRoutes(app, middleware, controllers) { diff --git a/src/views/admin/settings/tags.tpl b/src/views/admin/settings/tags.tpl index 9b7f190498..716cdbf56d 100644 --- a/src/views/admin/settings/tags.tpl +++ b/src/views/admin/settings/tags.tpl @@ -6,7 +6,7 @@