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