删除用户迁移到user.js中

This commit is contained in:
life
2015-11-21 17:08:22 +08:00
parent 4bb8c5f233
commit 2f5eaf0a56
2 changed files with 155 additions and 135 deletions

159
node_modules/user.js generated vendored
View File

@@ -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;