diff --git a/packages/telescope-comments/lib/server/publications.js b/packages/telescope-comments/lib/server/publications.js index 49016bc37..ea5cff7df 100644 --- a/packages/telescope-comments/lib/server/publications.js +++ b/packages/telescope-comments/lib/server/publications.js @@ -7,6 +7,10 @@ Meteor.publish('commentsList', function(terms) { this.unblock(); + if (this.userId) { // add currentUserId to terms if a user is logged in + terms.currentUserId = this.userId; + } + if(Users.can.viewById(this.userId)){ var parameters = Comments.parameters.get(terms); var comments = Comments.find(parameters.find, parameters.options); diff --git a/packages/telescope-posts/lib/client/templates/main_posts_list.js b/packages/telescope-posts/lib/client/templates/main_posts_list.js index f6e2f8f18..fea05007d 100644 --- a/packages/telescope-posts/lib/client/templates/main_posts_list.js +++ b/packages/telescope-posts/lib/client/templates/main_posts_list.js @@ -11,7 +11,7 @@ Template.main_posts_list.helpers({ // if user is logged in, add their id to terms if (Meteor.userId()) { - terms.userId = Meteor.userId(); + terms.currentUserId = Meteor.userId(); } if (!terms.view) { diff --git a/packages/telescope-posts/lib/server/publications.js b/packages/telescope-posts/lib/server/publications.js index f65165869..4fb5fb6f9 100644 --- a/packages/telescope-posts/lib/server/publications.js +++ b/packages/telescope-posts/lib/server/publications.js @@ -3,9 +3,13 @@ Posts._ensureIndex({"status": 1, "postedAt": 1}); // Publish a list of posts Meteor.publish('postsList', function(terms) { + this.unblock(); - terms.userId = this.userId; // add userId to terms + if (this.userId) { // add currentUserId to terms if a user is logged in + terms.currentUserId = this.userId; + } + if(Users.can.viewById(this.userId)){ var parameters = Posts.parameters.get(terms), posts = Posts.find(parameters.find, parameters.options); @@ -21,8 +25,11 @@ Meteor.publish('postsList', function(terms) { Meteor.publish('postsListUsers', function(terms) { this.unblock(); - terms.userId = this.userId; // add userId to terms + if (this.userId) { + terms.currentUserId = this.userId; // add userId to terms + } + if(Users.can.viewById(this.userId)){ var parameters = Posts.parameters.get(terms), posts = Posts.find(parameters.find, parameters.options), @@ -47,10 +54,15 @@ Meteor.publish('singlePost', function(postId) { check(postId, String); this.unblock(); - if (Users.can.viewById(this.userId)){ + var user = Meteor.users.findOne(this.userId); + var post = Posts.findOne(postId); + + if (Users.can.viewPost(user, post)){ return Posts.find(postId); + } else { + return []; } - return []; + }); // Publish author of the current post, authors of its comments, and upvoters of the post diff --git a/packages/telescope-subscribe-to-posts/lib/server/publications.js b/packages/telescope-subscribe-to-posts/lib/server/publications.js index 0bd7508d0..653a381ae 100644 --- a/packages/telescope-subscribe-to-posts/lib/server/publications.js +++ b/packages/telescope-subscribe-to-posts/lib/server/publications.js @@ -1,6 +1,8 @@ Meteor.publish('userSubscribedPosts', function(terms) { - terms.userId = this.userId; // add userId to terms + if (this.userId) { + terms.currentUserId = this.userId; // add userId to terms + } var parameters = Posts.parameters.get(terms); var posts = Posts.find(parameters.find, parameters.options); diff --git a/packages/telescope-users/lib/client/templates/profile/user_posts.js b/packages/telescope-users/lib/client/templates/profile/user_posts.js index fe06fda05..9ecdbaa4b 100644 --- a/packages/telescope-users/lib/client/templates/profile/user_posts.js +++ b/packages/telescope-users/lib/client/templates/profile/user_posts.js @@ -1,7 +1,7 @@ Template.user_posts.helpers({ arguments: function () { var user = this; - return { + var args = { template: "posts_list_compact", options: { currentUser: user, @@ -18,5 +18,6 @@ Template.user_posts.helpers({ subscribeToUsers: false } }; + return args; } }); \ No newline at end of file diff --git a/packages/telescope-users/lib/client/templates/user_controller/user_controller.js b/packages/telescope-users/lib/client/templates/user_controller/user_controller.js index 3fa339dc7..1900bfc36 100644 --- a/packages/telescope-users/lib/client/templates/user_controller/user_controller.js +++ b/packages/telescope-users/lib/client/templates/user_controller/user_controller.js @@ -9,8 +9,8 @@ Template.user_controller.helpers({ var idOrSlug = FlowRouter.getParam("_idOrSlug"); var findById = Meteor.users.findOne(idOrSlug); var findBySlug = Meteor.users.findOne({"telescope.slug": idOrSlug}); - - return {user: findById || findBySlug}; + var user = findById || findBySlug; + return {user: user}; } }); \ No newline at end of file diff --git a/packages/telescope-users/lib/server/publications.js b/packages/telescope-users/lib/server/publications.js index 09c512194..2e734f9e4 100644 --- a/packages/telescope-users/lib/server/publications.js +++ b/packages/telescope-users/lib/server/publications.js @@ -17,7 +17,7 @@ Meteor.publish('userPosts', function(terms) { this.unblock(); - terms.userId = this.userId; // add userId to terms + terms.currentUserId = this.userId; // add userId to terms var parameters = Posts.parameters.get(terms); var posts = Posts.find(parameters.find, parameters.options); @@ -28,7 +28,7 @@ Meteor.publish('userUpvotedPosts', function(terms) { this.unblock(); - terms.userId = this.userId; // add userId to terms + terms.currentUserId = this.userId; // add userId to terms var parameters = Posts.parameters.get(terms); var posts = Posts.find(parameters.find, parameters.options); @@ -39,7 +39,7 @@ Meteor.publish('userDownvotedPosts', function(terms) { this.unblock(); - terms.userId = this.userId; // add userId to terms + terms.currentUserId = this.userId; // add userId to terms var parameters = Posts.parameters.get(terms); var posts = Posts.find(parameters.find, parameters.options);