diff --git a/src/image.js b/src/image.js index 5f92773fa8..49160dd45a 100644 --- a/src/image.js +++ b/src/image.js @@ -19,7 +19,7 @@ image.resizeImage = function(path, extension, width, height, callback) { .write(path, done); } else { gm(path) - .crop(width, height, 0, 0) + .resize(width, height) .write(path, done); } }; diff --git a/src/user.js b/src/user.js index 4fed66e30f..4f7d5dc63d 100644 --- a/src/user.js +++ b/src/user.js @@ -5,7 +5,6 @@ var bcrypt = require('bcryptjs'), nconf = require('nconf'), winston = require('winston'), gravatar = require('gravatar'), - validator = require('validator'), S = require('string'), utils = require('./../public/src/utils'), diff --git a/src/user/settings.js b/src/user/settings.js index af1bf9e81b..79b5250bd2 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -2,24 +2,12 @@ 'use strict'; var meta = require('./../meta'), - db = require('./../database'); + db = require('./../database'), + plugins = require('./../plugins'); module.exports = function(User) { User.getSettings = function(uid, callback) { - function sendDefaultSettings() { - callback(null, { - showemail: false, - usePagination: parseInt(meta.config.usePagination, 10) === 1, - topicsPerPage: parseInt(meta.config.topicsPerPage, 10) || 20, - postsPerPage: parseInt(meta.config.postsPerPage, 10) || 10 - }); - } - - if(!parseInt(uid, 10)) { - return sendDefaultSettings(); - } - db.getObject('user:' + uid + ':settings', function(err, settings) { if(err) { return callback(err); @@ -29,12 +17,20 @@ module.exports = function(User) { settings = {}; } - settings.showemail = settings.showemail ? parseInt(settings.showemail, 10) !== 0 : false; - settings.usePagination = settings.usePagination ? parseInt(settings.usePagination, 10) === 1 : parseInt(meta.config.usePagination, 10) === 1; - settings.topicsPerPage = settings.topicsPerPage ? parseInt(settings.topicsPerPage, 10) : parseInt(meta.config.topicsPerPage, 10) || 20; - settings.postsPerPage = settings.postsPerPage ? parseInt(settings.postsPerPage, 10) : parseInt(meta.config.postsPerPage, 10) || 10; + plugins.fireHook('filter:user.getSettings', {uid: uid, settings: settings}, function(err, data) { + if(err) { + return callback(err); + } - callback(null, settings); + settings = data.settings; + + settings.showemail = settings.showemail ? parseInt(settings.showemail, 10) !== 0 : false; + settings.usePagination = settings.usePagination ? parseInt(settings.usePagination, 10) === 1 : parseInt(meta.config.usePagination, 10) === 1; + settings.topicsPerPage = settings.topicsPerPage ? parseInt(settings.topicsPerPage, 10) : parseInt(meta.config.topicsPerPage, 10) || 20; + settings.postsPerPage = settings.postsPerPage ? parseInt(settings.postsPerPage, 10) : parseInt(meta.config.postsPerPage, 10) || 10; + + callback(null, settings); + }); }); }; @@ -44,6 +40,8 @@ module.exports = function(User) { return callback(new Error('Invalid pagination value!')); } + plugins.fireHook('action:user.saveSettings', {uid: uid, settings: data}); + db.setObject('user:' + uid + ':settings', { showemail: data.showemail, usePagination: data.usePagination,