mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-18 17:52:17 +00:00
删除用户迁移到user.js中
This commit is contained in:
159
node_modules/user.js
generated
vendored
159
node_modules/user.js
generated
vendored
@@ -2,6 +2,7 @@ var Evt = require('evt');
|
|||||||
var db = require('db');
|
var db = require('db');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var Common = require('common');
|
var Common = require('common');
|
||||||
|
var async;
|
||||||
|
|
||||||
function log(o) {
|
function log(o) {
|
||||||
console.log(o);
|
console.log(o);
|
||||||
@@ -310,27 +311,6 @@ User = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// 删除用户的文件目录
|
|
||||||
deleteUserImagesAndAttachsPath: function (userId) {
|
|
||||||
var me = this;
|
|
||||||
|
|
||||||
// 防止误删
|
|
||||||
if (!Evt.getBasePath()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var imagesAndAttachBasePath = me.getUserImagesAndAttachBasePath(userId);
|
|
||||||
if (imagesAndAttachBasePath) {
|
|
||||||
Common.deleteFolderRecursive(imagesAndAttachBasePath);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除用户
|
|
||||||
deleteUser: function (userId) {
|
|
||||||
db.users.remove({_id: userId}, function () {
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 得到用户的数据统计
|
* 得到用户的数据统计
|
||||||
* @param {User} user 用户
|
* @param {User} user 用户
|
||||||
@@ -501,6 +481,143 @@ User = {
|
|||||||
callback();
|
callback();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
//-----------------------
|
||||||
|
// 删除用户
|
||||||
|
|
||||||
|
// 删除用户的文件目录
|
||||||
|
deleteUserImagesAndAttachsPath: function (userId) {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
|
// 防止误删
|
||||||
|
if (!Evt.getBasePath()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var imagesAndAttachBasePath = me.getUserImagesAndAttachBasePath(userId);
|
||||||
|
if (imagesAndAttachBasePath) {
|
||||||
|
Common.deleteFolderRecursive(imagesAndAttachBasePath);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除用户
|
||||||
|
deleteUser: function (userId, callback) {
|
||||||
|
db.users.remove({_id: userId}, function () {
|
||||||
|
callback && callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除用户+所有数据
|
||||||
|
deleteUserAndAllData: function (userId, callback) {
|
||||||
|
var me = this;
|
||||||
|
me.deleteUserAllData(userId, function () {
|
||||||
|
// 2. 删除之
|
||||||
|
me.deleteUser(userId, function () {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除用户的所有数据
|
||||||
|
deleteUserAllData: function(userId, callback) {
|
||||||
|
var me = this;
|
||||||
|
me.getUser(userId, function (userInfo) {
|
||||||
|
if (!userInfo) {
|
||||||
|
callback(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. 删除附件,图片
|
||||||
|
me.deleteUserImagesAndAttachsPath(userId);
|
||||||
|
|
||||||
|
// 3. 删除其它表
|
||||||
|
// 如果有自己独立的表, 则把文件夹删除即可
|
||||||
|
if (userInfo.HasDB) {
|
||||||
|
var dbPath = me.getUserDBPath(userId);
|
||||||
|
if (dbPath) {
|
||||||
|
Common.deleteFolderRecursive(dbPath);
|
||||||
|
}
|
||||||
|
callback(true);
|
||||||
|
}
|
||||||
|
// 没有, 那就要一个个删除了
|
||||||
|
else {
|
||||||
|
me._deleteDB(userId, function () {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 从全局数据库中删除数据
|
||||||
|
_deleteDB: function (userId, callback) {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
|
// 判断当前db是否是全局的, 如果不是, 则初始化全局的
|
||||||
|
var names = ['notebooks', 'notes', 'tags', 'images', 'attachs', 'noteHistories'];
|
||||||
|
var sourceDb = {};
|
||||||
|
if (me.hasDB) {
|
||||||
|
db.initIt(sourceDb, names, '', false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sourceDb = db;
|
||||||
|
}
|
||||||
|
|
||||||
|
var names = ['notebooks', 'notes', 'tags', 'images', 'attachs'];
|
||||||
|
var query = {UserId: userId};
|
||||||
|
|
||||||
|
if (!async) {
|
||||||
|
async = require('async');
|
||||||
|
}
|
||||||
|
|
||||||
|
async.eachSeries(names, function (name, cb) {
|
||||||
|
var dbIt = sourceDb[name];
|
||||||
|
if (!dbIt) {
|
||||||
|
cb();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 如果是笔记, 则要删除note histories
|
||||||
|
if (name == 'notes') {
|
||||||
|
dbIt.find(query, function(err, docs) {
|
||||||
|
if (err || !docs) {
|
||||||
|
cb();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除历史记录
|
||||||
|
me._deleteNoteHistories(sourceDb, docs, function () {
|
||||||
|
// 删除自己
|
||||||
|
dbIt.remove(query, { multi: true },function () {
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dbIt.remove(query, { multi: true }, function () {
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, function () {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 删除笔记历史记录
|
||||||
|
_deleteNoteHistories: function (sourceDb, notes, callback) {
|
||||||
|
var me = this;
|
||||||
|
sourceDb.noteHistories.loadDB(function (ok) {
|
||||||
|
if (!ok) {
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
|
async.eachSeries(notes, function (note, cb) {
|
||||||
|
sourceDb.noteHistories.remove( {_id: note.NoteId}, { multi: true }, function () {
|
||||||
|
cb();
|
||||||
|
});
|
||||||
|
}, function () {
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = User;
|
module.exports = User;
|
||||||
|
@@ -32,7 +32,7 @@ define(function() {
|
|||||||
|
|
||||||
"Error": "错误",
|
"Error": "错误",
|
||||||
"No such account": "无该帐户",
|
"No such account": "无该帐户",
|
||||||
"Are you sure, it can't be recovered after it has been deleted": "确定要删除该帐户? 本地的数据将彻底删除",
|
"Are you sure, it can't be recovered after it has been deleted": "确定要删除该帐户? 本地的数据将会彻底删除",
|
||||||
},
|
},
|
||||||
'zh-hk': {
|
'zh-hk': {
|
||||||
'Accounts': '帳戶管理',
|
'Accounts': '帳戶管理',
|
||||||
@@ -53,7 +53,7 @@ define(function() {
|
|||||||
|
|
||||||
"Error": "錯誤",
|
"Error": "錯誤",
|
||||||
"No such account": "無該帳戶",
|
"No such account": "無該帳戶",
|
||||||
"Are you sure, it can't be recovered after it has been deleted": "確定要刪除該帳戶? 本地的數據將徹底刪除",
|
"Are you sure, it can't be recovered after it has been deleted": "確定要刪除該帳戶? 本地的數據將會徹底刪除",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -465,101 +465,6 @@ define(function() {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// 删除笔记历史记录
|
|
||||||
_deleteNoteHistories: function (sourceDb, notes, callback) {
|
|
||||||
var me = this;
|
|
||||||
sourceDb.noteHistories.loadDB(function (ok) {
|
|
||||||
if (!ok) {
|
|
||||||
return callback();
|
|
||||||
}
|
|
||||||
async.eachSeries(notes, function (note, cb) {
|
|
||||||
sourceDb.noteHistories.remove( {_id: note.NoteId}, { multi: true }, function () {
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
}, function () {
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
_deleteDB: function (userId, callback) {
|
|
||||||
var me = this;
|
|
||||||
|
|
||||||
// 判断当前db是否是全局的, 如果不是, 则初始化全局的
|
|
||||||
var names = me.dbNames;
|
|
||||||
var sourceDb = {};
|
|
||||||
if (Api.userService.hasDB) {
|
|
||||||
Api.dbService.initIt(sourceDb, names, '', false);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
sourceDb = Api.dbService;
|
|
||||||
}
|
|
||||||
|
|
||||||
var names = ['notebooks', 'notes', 'tags', 'images', 'attachs'];
|
|
||||||
var db = sourceDb;
|
|
||||||
var query = {UserId: userId};
|
|
||||||
async.eachSeries(names, function (name, cb) {
|
|
||||||
var dbIt = db[name];
|
|
||||||
if (!dbIt) {
|
|
||||||
cb();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// 如果是笔记, 则要删除note histories
|
|
||||||
if (name == 'notes') {
|
|
||||||
dbIt.find(query, function(err, docs) {
|
|
||||||
if (err || !docs) {
|
|
||||||
cb();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除历史记录
|
|
||||||
me._deleteNoteHistories(sourceDb, docs, function () {
|
|
||||||
// 删除自己
|
|
||||||
dbIt.remove(query, { multi: true },function () {
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dbIt.remove(query, { multi: true }, function () {
|
|
||||||
cb();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, function () {
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
_deleteUser: function(userInfo, callback) {
|
|
||||||
var me = this;
|
|
||||||
var userId = userInfo.UserId;
|
|
||||||
|
|
||||||
// 1. 删除附件,图片
|
|
||||||
Api.userService.deleteUserImagesAndAttachsPath(userId);
|
|
||||||
|
|
||||||
// 2. 删除之
|
|
||||||
Api.userService.deleteUser(userId);
|
|
||||||
|
|
||||||
// 3. 删除其它表
|
|
||||||
// 如果有自己独立的表, 则把文件夹删除即可
|
|
||||||
if (userInfo.HasDB) {
|
|
||||||
var dbPath = Api.userService.getUserDBPath(userId);
|
|
||||||
if (dbPath) {
|
|
||||||
Api.commonService.deleteFolderRecursive(dbPath);
|
|
||||||
}
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
// 没有, 那就要一个个删除了
|
|
||||||
else {
|
|
||||||
|
|
||||||
me._deleteDB(userId, function () {
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
// 删除用户
|
// 删除用户
|
||||||
deleteUser: function(userId, callback) {
|
deleteUser: function(userId, callback) {
|
||||||
var me = this;
|
var me = this;
|
||||||
@@ -567,27 +472,25 @@ define(function() {
|
|||||||
|
|
||||||
Api.loading.show('', {hideClose: true});
|
Api.loading.show('', {hideClose: true});
|
||||||
|
|
||||||
Api.userService.getUser(userId, function (user) {
|
Api.userService.deleteUserAndAllData(userId, function () {
|
||||||
me._deleteUser(user, function() {
|
Api.trigger('deleteUser');
|
||||||
Api.trigger('deleteUser');
|
|
||||||
|
|
||||||
Api.loading.setMsg(me.getMsg('Deleted'), false);
|
Api.loading.setMsg(me.getMsg('Deleted'), false);
|
||||||
Api.loading.hide(2000);
|
Api.loading.hide(2000);
|
||||||
|
|
||||||
callback(true);
|
callback(true);
|
||||||
|
|
||||||
// 当前是活跃用户删除的, 回到登录页
|
me.userLength--;
|
||||||
if (user.IsActive) {
|
|
||||||
Api.switchToLoginWhenNoUser();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
me.userLength--;
|
// 删除的是当前账户
|
||||||
// 当只有一个用户时, 重新renderActive行, 可以删除
|
if (me.curUser.UserId === userId) {
|
||||||
if (me.userLength == 1) {
|
Api.switchToLoginWhenNoUser();
|
||||||
me.renderUser(me.curUser, true);
|
return;
|
||||||
}
|
}
|
||||||
});
|
// 当只有一个用户时, 重新renderActive行, 可以删除
|
||||||
|
if (me.userLength == 1) {
|
||||||
|
me.renderUser(me.curUser, true);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user