summaryrefslogtreecommitdiff
path: root/public/js/common.js
diff options
context:
space:
mode:
authorWu Cheng-Han2015-06-01 18:04:25 +0800
committerWu Cheng-Han2015-06-01 18:04:25 +0800
commitf7f8c901f4bc39c3ed0a2bdfe1cbaa1ee6957999 (patch)
tree1bb09442906fa8e258c670c87491c64b6de27e68 /public/js/common.js
parent4e64583a0b6175d2c9a6729ffde1472dd55d389c (diff)
Marked as 0.2.9
Diffstat (limited to 'public/js/common.js')
-rw-r--r--public/js/common.js36
1 files changed, 31 insertions, 5 deletions
diff --git a/public/js/common.js b/public/js/common.js
index 37591d36..e6928e98 100644
--- a/public/js/common.js
+++ b/public/js/common.js
@@ -3,38 +3,62 @@ var domain = 'change this';
var checkAuth = false;
var profile = null;
var lastLoginState = getLoginState();
+var lastUserId = getUserId();
var loginStateChangeEvent = null;
function resetCheckAuth() {
checkAuth = false;
}
-function setLoginState(bool) {
+function setLoginState(bool, id) {
Cookies.set('loginstate', bool, {
expires: 14
});
- if (loginStateChangeEvent && bool != lastLoginState)
- loginStateChangeEvent();
+ if (id) {
+ Cookies.set('userid', id, {
+ expires: 14
+ });
+ } else {
+ Cookies.remove('userid');
+ }
lastLoginState = bool;
+ lastUserId = id;
+ checkLoginStateChanged();
+}
+
+function checkLoginStateChanged() {
+ if (getLoginState() != lastLoginState || getUserId() != lastUserId) {
+ if(loginStateChangeEvent)
+ loginStateChangeEvent();
+ return true;
+ } else {
+ return false;
+ }
}
function getLoginState() {
return Cookies.get('loginstate') === "true";
}
+function getUserId() {
+ return Cookies.get('userid');
+}
+
function clearLoginState() {
Cookies.remove('loginstate');
}
function checkIfAuth(yesCallback, noCallback) {
var cookieLoginState = getLoginState();
+ if (checkLoginStateChanged())
+ checkAuth = false;
if (!checkAuth || typeof cookieLoginState == 'undefined') {
$.get('/me')
.done(function (data) {
if (data && data.status == 'ok') {
profile = data;
yesCallback(profile);
- setLoginState(true);
+ setLoginState(true, data.id);
} else {
noCallback();
setLoginState(false);
@@ -43,8 +67,10 @@ function checkIfAuth(yesCallback, noCallback) {
.fail(function () {
noCallback();
setLoginState(false);
+ })
+ .always(function () {
+ checkAuth = true;
});
- checkAuth = true;
} else if (cookieLoginState) {
yesCallback(profile);
} else {