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

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

@ -1,6 +1,6 @@
'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) {
var AccountEdit = {},
@ -26,6 +26,7 @@ define('forum/account/edit', ['forum/account/header', 'uploader'], function(head
currentEmail = $('#inputEmail').val();
handleImageChange();
handleAccountDelete();
handleImageUpload();
handleEmailConfirm();
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() {
$('#upload-picture-modal').on('hide', function() {
$('#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) {
user.count(callback);
};

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

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

@ -20,7 +20,7 @@ module.exports = function(User) {
deleteTopics(uid, next);
},
function(next) {
deleteAccount(uid, next);
User.deleteAccount(uid, next);
}
], 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) {
if (err) {
return callback(err);
@ -134,7 +134,7 @@ module.exports = function(User) {
], callback);
});
});
}
};
function deleteUserFromFollowers(uid, callback) {
db.getSetMembers('followers:' + uid, function(err, uids) {

Loading…
Cancel
Save