v1.18.x
barisusakli 11 years ago
parent 124a4ce89c
commit eef200be10

@ -5,6 +5,8 @@
"email": "Email", "email": "Email",
"confirm_email": "Confirm Email", "confirm_email": "Confirm Email",
"delete_account": "Delete Account",
"delete_account_confirm": "Are you sure you want to delete your account?",
"fullname": "Full Name", "fullname": "Full Name",
"website": "Website", "website": "Website",

@ -1,6 +1,6 @@
'use strict'; 'use strict';
/* globals define, ajaxify, socket, app, config, utils, translator */ /* globals define, ajaxify, socket, app, config, utils, translator, bootbox */
define('forum/account/edit', ['forum/account/header', 'uploader'], function(header, uploader) { define('forum/account/edit', ['forum/account/header', 'uploader'], function(header, uploader) {
var AccountEdit = {}, var AccountEdit = {},
@ -26,6 +26,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader'], function(head
currentEmail = $('#inputEmail').val(); currentEmail = $('#inputEmail').val();
handleImageChange(); handleImageChange();
handleAccountDelete();
handleImageUpload(); handleImageUpload();
handleEmailConfirm(); handleEmailConfirm();
handlePasswordChange(); handlePasswordChange();
@ -125,6 +126,24 @@ define('forum/account/edit', ['forum/account/header', 'uploader'], function(head
}); });
} }
function handleAccountDelete() {
$('#deleteAccountBtn').on('click', function() {
translator.translate('[[user:delete_account_confirm]]', function(translated) {
bootbox.confirm(translated, function(confirm) {
if (!confirm) {
return;
}
socket.emit('user.deleteAccount', {}, function(err) {
if (!err) {
app.logout();
}
});
});
});
return false;
});
}
function handleImageUpload() { function handleImageUpload() {
$('#upload-picture-modal').on('hide', function() { $('#upload-picture-modal').on('hide', function() {
$('#userPhotoInput').val(''); $('#userPhotoInput').val('');

@ -18,6 +18,12 @@ SocketUser.exists = function(socket, data, callback) {
} }
}; };
SocketUser.deleteAccount = function(socket, data, callback) {
if (socket.uid) {
user.deleteAccount(socket.uid, callback);
}
};
SocketUser.count = function(socket, data, callback) { SocketUser.count = function(socket, data, callback) {
user.count(callback); user.count(callback);
}; };

@ -3,6 +3,7 @@
var async = require('async'), var async = require('async'),
validator = require('validator'), validator = require('validator'),
_ = require('underscore'),
db = require('./database'), db = require('./database'),
posts = require('./posts'), posts = require('./posts'),
utils = require('../public/src/utils'), utils = require('../public/src/utils'),
@ -205,20 +206,12 @@ var async = require('async'),
Topics.getTopicsTagsObjects(tids, next); Topics.getTopicsTagsObjects(tids, next);
} }
}, function(err, results) { }, function(err, results) {
function arrayToObject(array, field) {
var obj = {};
for (var i=0; i<array.length; ++i) {
obj[array[i][field]] = array[i];
}
return obj;
}
if (err) { if (err) {
return callback(err); return callback(err);
} }
var users = arrayToObject(results.users, 'uid'); var users = _.object(uids, results.users);
var categories = arrayToObject(results.categories, 'cid'); var categories = _.object(cids, results.categories);
var isAdminOrMod = {}; var isAdminOrMod = {};
cids.forEach(function(cid, index) { cids.forEach(function(cid, index) {
isAdminOrMod[cid] = results.isAdminOrMod[index]; isAdminOrMod[cid] = results.isAdminOrMod[index];

@ -63,8 +63,8 @@ module.exports = function(Topics) {
} }
var userData = {}; var userData = {};
users.forEach(function(user) { users.forEach(function(user, index) {
userData[user.uid] = user; userData[uids[index]] = user;
}); });
next(null, userData); next(null, userData);

@ -20,7 +20,7 @@ module.exports = function(User) {
deleteTopics(uid, next); deleteTopics(uid, next);
}, },
function(next) { function(next) {
deleteAccount(uid, next); User.deleteAccount(uid, next);
} }
], callback); ], callback);
}; };
@ -43,7 +43,7 @@ module.exports = function(User) {
}); });
} }
function deleteAccount(uid, callback) { User.deleteAccount = function(uid, callback) {
user.getUserFields(uid, ['username', 'userslug', 'email'], function(err, userData) { user.getUserFields(uid, ['username', 'userslug', 'email'], function(err, userData) {
if (err) { if (err) {
return callback(err); return callback(err);
@ -134,7 +134,7 @@ module.exports = function(User) {
], callback); ], callback);
}); });
}); });
} };
function deleteUserFromFollowers(uid, callback) { function deleteUserFromFollowers(uid, callback) {
db.getSetMembers('followers:' + uid, function(err, uids) { db.getSetMembers('followers:' + uid, function(err, uids) {

Loading…
Cancel
Save