v1.18.x
barisusakli 9 years ago
parent e028ac1363
commit e17b37edb6

@ -3,6 +3,7 @@
var async = require('async'); var async = require('async');
var winston = require('winston'); var winston = require('winston');
var path = require('path'); var path = require('path');
var nconf = require('nconf');
var user = require('../../user'); var user = require('../../user');
var plugins = require('../../plugins'); var plugins = require('../../plugins');
@ -84,12 +85,15 @@ module.exports = function (SocketUser) {
}, },
function (userData, next) { function (userData, next) {
if (userData.uploadedpicture && !userData.uploadedpicture.startsWith('http')) { if (userData.uploadedpicture && !userData.uploadedpicture.startsWith('http')) {
require('fs').unlink(path.join(__dirname, '../../../public', userData.uploadedpicture), function (err) { var pathToFile = path.join(nconf.get('base_dir'), 'public', userData.uploadedpicture);
if (pathToFile.startsWith(path.join(nconf.get('base_dir'), nconf.get('upload_path')))) {
require('fs').unlink(pathToFile, function (err) {
if (err) { if (err) {
winston.error(err); winston.error(err);
} }
}); });
} }
}
user.setUserFields(data.uid, { user.setUserFields(data.uid, {
uploadedpicture: '', uploadedpicture: '',

@ -14,7 +14,7 @@ module.exports = function (User) {
User.updateProfile = function (uid, data, callback) { User.updateProfile = function (uid, data, callback) {
var fields = ['username', 'email', 'fullname', 'website', 'location', var fields = ['username', 'email', 'fullname', 'website', 'location',
'groupTitle', 'birthday', 'signature', 'aboutme', 'picture', 'uploadedpicture']; 'groupTitle', 'birthday', 'signature', 'aboutme'];
async.waterfall([ async.waterfall([
function (next) { function (next) {
@ -147,32 +147,34 @@ module.exports = function (User) {
} }
function updateEmail(uid, newEmail, callback) { function updateEmail(uid, newEmail, callback) {
User.getUserFields(uid, ['email', 'picture', 'uploadedpicture'], function (err, userData) { async.waterfall([
if (err) { function (next) {
return callback(err); User.getUserField(uid, 'email', next);
} },
function (oldEmail, next) {
userData.email = userData.email || ''; oldEmail = oldEmail || '';
if (userData.email === newEmail) { if (oldEmail === newEmail) {
return callback(); return callback();
} }
async.series([ async.series([
async.apply(db.sortedSetRemove, 'email:uid', userData.email.toLowerCase()), async.apply(db.sortedSetRemove, 'email:uid', oldEmail.toLowerCase()),
async.apply(db.sortedSetRemove, 'email:sorted', userData.email.toLowerCase() + ':' + uid) async.apply(db.sortedSetRemove, 'email:sorted', oldEmail.toLowerCase() + ':' + uid)
], function (err) { ], function (err) {
if (err) { next(err);
return callback(err); });
} },
function (next) {
async.parallel([ async.parallel([
function (next) { function (next) {
db.sortedSetAdd('email:uid', uid, newEmail.toLowerCase(), next); db.sortedSetAdd('email:uid', uid, newEmail.toLowerCase(), next);
}, },
async.apply(db.sortedSetAdd, 'user:' + uid + ':emails', Date.now(), newEmail + ':' + Date.now()),
function (next) { function (next) {
db.sortedSetAdd('email:sorted', 0, newEmail.toLowerCase() + ':' + uid, next); db.sortedSetAdd('email:sorted', 0, newEmail.toLowerCase() + ':' + uid, next);
}, },
function (next) {
db.sortedSetAdd('user:' + uid + ':emails', Date.now(), newEmail + ':' + Date.now(), next);
},
function (next) { function (next) {
User.setUserField(uid, 'email', newEmail, next); User.setUserField(uid, 'email', newEmail, next);
}, },
@ -185,10 +187,12 @@ module.exports = function (User) {
function (next) { function (next) {
db.sortedSetAdd('users:notvalidated', Date.now(), uid, next); db.sortedSetAdd('users:notvalidated', Date.now(), uid, next);
} }
], callback); ], function (err) {
}); next(err);
}); });
} }
], callback);
}
function updateUsername(uid, newUsername, callback) { function updateUsername(uid, newUsername, callback) {
if (!newUsername) { if (!newUsername) {

Loading…
Cancel
Save