mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
closes #1284
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user