From 393bb7245ce7a73bbd346b1c1a1d69e9172f275c Mon Sep 17 00:00:00 2001 From: Baris Soner Usakli Date: Sat, 25 Jan 2014 12:05:48 -0500 Subject: [PATCH] closes #866 --- src/posts.js | 2 +- src/socket.io/meta.js | 2 +- src/topics.js | 6 +++--- src/upgrade.js | 39 +++++++++++++++++++++++++++++++++++++-- src/user.js | 5 ++--- src/webserver.js | 1 - 6 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/posts.js b/src/posts.js index 650311c979..b4aa4c1882 100644 --- a/src/posts.js +++ b/src/posts.js @@ -194,7 +194,7 @@ var db = require('./database'), post.user_rep = userData.reputation || 0; post.user_postcount = userData.postcount || 0; post.user_banned = parseInt(userData.banned, 10) === 1; - post.picture = userData.picture || gravatar.url('', {}, https = nconf.get('https')); + post.picture = userData.picture || gravatar.url('', {}, true); if(meta.config.disableSignatures === undefined || parseInt(meta.config.disableSignatures, 10) === 0) { post.signature = signature; diff --git a/src/socket.io/meta.js b/src/socket.io/meta.js index 106c6d5621..096c7553b3 100644 --- a/src/socket.io/meta.js +++ b/src/socket.io/meta.js @@ -58,7 +58,7 @@ SocketMeta.updateHeader = function(socket, data, callback) { email: '', picture: gravatar.url('', { s: '24' - }, nconf.get('https')), + }, true), config: { allowGuestSearching: meta.config.allowGuestSearching } diff --git a/src/topics.js b/src/topics.js index aeac06f43e..2183ddc354 100644 --- a/src/topics.js +++ b/src/topics.js @@ -713,14 +713,14 @@ var async = require('async'), topicData.unreplied = parseInt(topicData.postcount, 10) === 1; topicData.username = topicInfo.username || 'anonymous'; topicData.userslug = topicInfo.userslug || ''; - topicData.picture = topicInfo.picture || gravatar.url('', {}, https = nconf.get('https')); + topicData.picture = topicInfo.picture || gravatar.url('', {}, true); topicData.categoryIcon = topicInfo.categoryData.icon; topicData.categoryName = topicInfo.categoryData.name; topicData.categorySlug = topicInfo.categoryData.slug; topicData.badgeclass = (topicInfo.hasread && parseInt(current_user, 10) !== 0) ? '' : 'badge-important'; topicData.teaser_username = topicInfo.teaserInfo.username || ''; topicData.teaser_userslug = topicInfo.teaserInfo.userslug || ''; - topicData.teaser_userpicture = topicInfo.teaserInfo.picture || gravatar.url('', {}, https = nconf.get('https')); + topicData.teaser_userpicture = topicInfo.teaserInfo.picture || gravatar.url('', {}, true); topicData.teaser_pid = topicInfo.teaserInfo.pid; topicData.teaser_timestamp = utils.toISOString(topicInfo.teaserInfo.timestamp); @@ -1018,7 +1018,7 @@ var async = require('async'), pid: postData.pid, username: userData.username || 'anonymous', userslug: userData.userslug, - picture: userData.picture || gravatar.url('', {}, https = nconf.get('https')), + picture: userData.picture || gravatar.url('', {}, true), timestamp: postData.timestamp }); }); diff --git a/src/upgrade.js b/src/upgrade.js index 688d84183f..8eff8db0c7 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -17,7 +17,7 @@ var db = require('./database'), Upgrade.check = function(callback) { // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema - var latestSchema = new Date(2014, 0, 23, 16, 5).getTime(); + var latestSchema = new Date(2014, 0, 25, 0, 0).getTime(); db.get('schemaDate', function(err, value) { if (parseInt(value, 10) >= latestSchema) { @@ -318,11 +318,46 @@ Upgrade.upgrade = function(callback) { winston.info('[2014/1/23] Updating Administrators Group'); next(); }); - }) + }); } else { winston.info('[2014/1/23] Updating Administrators Group -- skipped'); next(); } + }, + function(next) { + thisSchemaDate = new Date(2014, 0, 25, 0, 0).getTime(); + if (schemaDate < thisSchemaDate) { + updatesMade = true; + + db.getSortedSetRange('users:joindate', 0, -1, function(err, uids) { + if(err) { + return next(err); + } + + if(!uids || !uids.length) { + winston.info('[2014/1/25] Updating User Gravatars to HTTPS -- skipped'); + return next(); + } + + var gravatar = require('gravatar'); + + function updateGravatar(uid, next) { + User.getUserFields(uid, ['email', 'picture', 'gravatarpicture'], function(err, userData) { + var gravatarPicture = User.createGravatarURLFromEmail(userData.email); + if(userData.picture === userData.gravatarpicture) { + User.setUserField(uid, 'picture', gravatarPicture); + } + User.setUserField(uid, 'gravatarpicture', gravatarPicture, next); + }); + } + + winston.info('[2014/1/25] Updating User Gravatars to HTTPS'); + async.each(uids, updateGravatar, next); + }); + } else { + winston.info('[2014/1/25] Updating User Gravatars to HTTPS -- skipped'); + next(); + } } // Add new schema updates here // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 17!!! diff --git a/src/user.js b/src/user.js index 2a983b0c21..14c370b451 100644 --- a/src/user.js +++ b/src/user.js @@ -442,15 +442,14 @@ var bcrypt = require('bcrypt'), size: '128', default: 'identicon', rating: 'pg' - }, - https = nconf.get('https'); + }; if (!email) { email = ''; options.forcedefault = 'y'; } - return gravatar.url(email, options, https); + return gravatar.url(email, options, true); }; User.hashPassword = function(password, callback) { diff --git a/src/webserver.js b/src/webserver.js index bf31fd22f4..03bcf4abf3 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -200,7 +200,6 @@ if(nconf.get('ssl')) { // Local vars, other assorted setup app.use(function (req, res, next) { - nconf.set('https', req.secure); res.locals.csrf_token = req.session._csrf; // Disable framing