mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-18 01:16:56 +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 fs = require('fs');
|
||||
var Common = require('common');
|
||||
var async;
|
||||
|
||||
function 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 用户
|
||||
@@ -501,6 +481,143 @@ User = {
|
||||
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;
|
||||
|
@@ -32,7 +32,7 @@ define(function() {
|
||||
|
||||
"Error": "错误",
|
||||
"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': {
|
||||
'Accounts': '帳戶管理',
|
||||
@@ -53,7 +53,7 @@ define(function() {
|
||||
|
||||
"Error": "錯誤",
|
||||
"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) {
|
||||
var me = this;
|
||||
@@ -567,27 +472,25 @@ define(function() {
|
||||
|
||||
Api.loading.show('', {hideClose: true});
|
||||
|
||||
Api.userService.getUser(userId, function (user) {
|
||||
me._deleteUser(user, function() {
|
||||
Api.trigger('deleteUser');
|
||||
Api.userService.deleteUserAndAllData(userId, function () {
|
||||
Api.trigger('deleteUser');
|
||||
|
||||
Api.loading.setMsg(me.getMsg('Deleted'), false);
|
||||
Api.loading.hide(2000);
|
||||
Api.loading.setMsg(me.getMsg('Deleted'), false);
|
||||
Api.loading.hide(2000);
|
||||
|
||||
callback(true);
|
||||
callback(true);
|
||||
|
||||
// 当前是活跃用户删除的, 回到登录页
|
||||
if (user.IsActive) {
|
||||
Api.switchToLoginWhenNoUser();
|
||||
return;
|
||||
}
|
||||
me.userLength--;
|
||||
|
||||
me.userLength--;
|
||||
// 当只有一个用户时, 重新renderActive行, 可以删除
|
||||
if (me.userLength == 1) {
|
||||
me.renderUser(me.curUser, true);
|
||||
}
|
||||
});
|
||||
// 删除的是当前账户
|
||||
if (me.curUser.UserId === userId) {
|
||||
Api.switchToLoginWhenNoUser();
|
||||
return;
|
||||
}
|
||||
// 当只有一个用户时, 重新renderActive行, 可以删除
|
||||
if (me.userLength == 1) {
|
||||
me.renderUser(me.curUser, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
|
Reference in New Issue
Block a user