增加本地账号支持

This commit is contained in:
Chuck Wang
2015-09-09 00:45:44 +08:00
parent f4c92eb36a
commit a481a90fab
6 changed files with 298 additions and 174 deletions

35
src/node_modules/user.js generated vendored
View File

@@ -26,6 +26,9 @@ User = {
host: '', // 服务
LastSyncUsn: -1,
LastSyncTime: null,
// add local account support flag
// see https://github.com/leanote/desktop-app/issues/36
isLocal: null,
// 登录后保存当前
setCurUser: function(user) {
var me = this;
@@ -35,6 +38,7 @@ User = {
this.email = user.Email;
this.username = user.Username;
this.host = user.Host; // http://leanote.com, http://localhost
this.isLocal = user.IsLocal;
// 保存到数据库中
this.saveCurUser(user);
@@ -42,6 +46,31 @@ User = {
me.setUserDataPath();
}
},
login: function(username, password, callback) {
// 验证用户名密码
//FIXME 鉴于服务器端也是明文密码,暂时用明文,安全性堪忧
db.users.count({Username: username, Pwd: password},
function(err, count) {
log('login failed: ' + count);
log(err);
callback && callback(count == 1);
});
},
saveNew: function(user, callback) {
// 当前用户是否在数据库中
db.users.count({Username: user.Username}, function(err, count) {
if(count == 0) {
db.users.insert(user, function(err, doc) {
log(err);
callback && callback(!err, doc);
});
} else {
log('save new user failed: username exists')
log(err);
callback && callback(false);
}
});
},
// 不同host的userId可能一样, 潜在的bug
saveCurUser: function(user, callback) {
// 当前用户是否在数据库中
@@ -69,7 +98,7 @@ User = {
// console.log(".........");
// console.log(user);
// 设值其它用户为非active
db.users.update({_id: {$ne: user.UserId}}, {$set: {IsActive: false}}, {multi: true}, function(err, n) {
db.users.update({_id: {$ne: user.UserId}}, {$set: {IsActive: false}}, {multi: true}, function(err, n) {
// console.log(err);
// console.log(n);
});
@@ -104,7 +133,7 @@ User = {
me.LastSyncUsn = user.LastSyncUsn;
me.LastSyncTime = user.LastSyncTime;
me.host = user.Host;
me.isLocal = user.IsLocal;
Evt.setHost(me.host);
// 全局配置也在user中, 到web端
@@ -245,7 +274,7 @@ User = {
* @param {[type]} state [description]
* @return {[type]} [description]
User.saveCurState({
StarredOpened: StarredOpened,
StarredOpened: StarredOpened,
NotebookOpened: NotebookOpened,
TagOpened: TagOpened,
CurNoteId: CurNoteId,