登录, 创建本地帐户优化

This commit is contained in:
life
2015-11-21 16:45:07 +08:00
parent f16e95e86f
commit 4bb8c5f233
5 changed files with 77 additions and 67 deletions

View File

@@ -182,11 +182,11 @@ $(function() {
} }
UserService.login(email, pwd, host, function(ret) { UserService.login(email, pwd, host, function(ret) {
if (ret) { if (ret) {
setTimeout(function() { // setTimeout(function() {
$body.removeClass('loading'); $body.removeClass('loading');
goToMainPage(); goToMainPage();
gui.getCurrentWindow().close(); gui.getCurrentWindow().close();
}, 2000); // }, 2000);
} }
// 不成功, 则用api登录 // 不成功, 则用api登录
else { else {

3
node_modules/api.js generated vendored
View File

@@ -97,6 +97,7 @@ var Api = {
if(error) { if(error) {
return callback && callback(false); return callback && callback(false);
} }
// needle.get('http://localhost/phpinfo.php?email=xx', {emai: email, pwd: pwd}, function(error, response) { // needle.get('http://localhost/phpinfo.php?email=xx', {emai: email, pwd: pwd}, function(error, response) {
var ret = response.body; var ret = response.body;
// 登录成功, 保存token // 登录成功, 保存token
@@ -105,7 +106,7 @@ var Api = {
if(Common.isOk(ret)) { if(Common.isOk(ret)) {
ret.Pwd = Common.md5(pwd, ret.UserId); ret.Pwd = Common.md5(pwd, ret.UserId);
ret['Host'] = Evt.leanoteUrl; ret['Host'] = Evt.leanoteUrl;
User.setCurUser(ret); // User.setCurUser(ret);
callback && callback(ret); callback && callback(ret);
} else { } else {
// console.log('log failed'); // console.log('log failed');

59
node_modules/user.js generated vendored
View File

@@ -30,37 +30,23 @@ User = {
// add local account support flag // add local account support flag
// see https://github.com/leanote/desktop-app/issues/36 // see https://github.com/leanote/desktop-app/issues/36
local: null, local: null,
// 登录后保存当前
setCurUser: function(user) {
var me = this;
if(user) {
this.token = user.Token;
this.userId = user.UserId;
this.email = user.Email;
this.username = user.Username;
this.host = user.Host; // http://leanote.com, http://localhost
this.local = user.IsLocal;
// 保存到数据库中
this.saveCurUser(user);
// 判断当前用户是否有文件夹
me.setUserDataPath();
}
},
// 注销 // 注销
logout: function (callback) { logout: function (callback) {
var me = this; var me = this;
function u(callback) {
db.users.update({_id: me.userId}, {$set:{IsActive: false}}, function () { db.users.update({_id: me.userId}, {$set:{IsActive: false}}, function () {
callback();
});
}
if (me.isLocal()) { if (me.isLocal()) {
return callback(); return u(callback);
} }
if(!Api) { if(!Api) {
Api = require('api'); Api = require('api');
} }
Api.logout(function() { Api.logout(function() {
callback(); u(callback);
});
}); });
}, },
@@ -104,7 +90,9 @@ User = {
// 远程验证 // 远程验证
Api.auth(username, password, host, function(ret) { Api.auth(username, password, host, function(ret) {
if(ret.Ok) { if(ret.Ok) {
User.saveCurUser(ret, function () {
callback(true); callback(true);
});
} else { } else {
callback(false); callback(false);
} }
@@ -131,8 +119,7 @@ User = {
// 创建默认的笔记本 // 创建默认的笔记本
if (!err) { if (!err) {
// 设为当前user // 设为当前user
me.saveCurUser(doc); me.saveCurUser(doc, function () {
// 为该用户初始化数据库 // 为该用户初始化数据库
db.initDBForUser(user.UserId); db.initDBForUser(user.UserId);
@@ -161,7 +148,7 @@ User = {
callback(true); callback(true);
} }
}); });
callback(true); });
} else { } else {
callback(false); callback(false);
} }
@@ -173,17 +160,39 @@ User = {
} }
}); });
}, },
// 不同host的userId可能一样, 潜在的bug // 不同host的userId可能一样, 潜在的bug
/**
* 登录后保存为当前用户
* @param {db.User} user [description]
* @param {Function} callback [description]
* @return {[type]} [description]
*/
saveCurUser: function(user, callback) { saveCurUser: function(user, callback) {
var me = this;
me.token = user.Token;
me.userId = user.UserId;
me.email = user.Email;
me.username = user.Username;
me.host = user.Host; // http://leanote.com, http://localhost
me.local = user.IsLocal;
// 判断当前用户是否有文件夹
me.setUserDataPath();
// 1.
// 设置其它用户为 not active // 设置其它用户为 not 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) {
// 当前用户是否在数据库中
// 2. 当前用户是否在数据库中
db.users.count({_id: user.UserId}, function(err, count) { db.users.count({_id: user.UserId}, function(err, count) {
if(err || count == 0) { if(err || count == 0) {
// 添加一个 // 添加一个
user['_id'] = user.UserId; user['_id'] = user.UserId;
user['IsActive'] = true; user['IsActive'] = true;
user['LastLoginTime'] = new Date(); user['LastLoginTime'] = new Date();
// 新添加的都是HasDB
user['HasDB'] = true;
db.users.insert(user, function(err, doc) { db.users.insert(user, function(err, doc) {
callback && callback(true); callback && callback(true);
}); });
@@ -216,7 +225,7 @@ User = {
console.log('不存在'); console.log('不存在');
callback && callback(false); callback && callback(false);
} else { } else {
// me.setCurUser(doc);
me.token = user.Token; me.token = user.Token;
me.userId = user.UserId; me.userId = user.UserId;
me.email = user.Email; me.email = user.Email;

View File

@@ -2016,8 +2016,8 @@ function userMenu(allUsers) {
label: getMsg('Logout'), label: getMsg('Logout'),
click: function(e) { click: function(e) {
Loading.show(); Loading.show();
onClose(function () {
UserService.logout(function () { UserService.logout(function () {
onClose(function () {
toLogin(); toLogin();
}); });
}); });

View File

@@ -12,7 +12,7 @@ var Service = {
}; };
var db = require('db'); var db = require('db');
db.initForLogin(); db.initGlobal();
// 全局变量 // 全局变量
var ApiService = Service.apiService; var ApiService = Service.apiService;