mirror of
https://github.com/bitwarden/browser.git
synced 2025-02-02 23:11:40 +01:00
pass logout function to api service rather than relying on messaging
This commit is contained in:
parent
e288ade266
commit
e1ed7587dc
@ -5,7 +5,7 @@ var constantsService = new ConstantsService();
|
||||
var utilsService = new UtilsService();
|
||||
var cryptoService = new CryptoService(constantsService);
|
||||
var tokenService = new TokenService();
|
||||
var apiService = new ApiService(tokenService);
|
||||
var apiService = new ApiService(tokenService, logout);
|
||||
var userService = new UserService(tokenService, apiService, cryptoService);
|
||||
var settingsService = new SettingsService(userService);
|
||||
var loginService = new LoginService(cryptoService, userService, apiService, settingsService);
|
||||
@ -39,10 +39,7 @@ chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
|
||||
refreshBadgeAndMenu();
|
||||
}
|
||||
else if (msg.command === 'logout') {
|
||||
logout(msg.expired, function () {
|
||||
setIcon();
|
||||
refreshBadgeAndMenu();
|
||||
});
|
||||
logout(msg.expired, function () { });
|
||||
}
|
||||
else if (msg.command === 'syncCompleted' && msg.successfully) {
|
||||
setTimeout(refreshBadgeAndMenu, 2000);
|
||||
@ -627,6 +624,8 @@ function logout(expired, callback) {
|
||||
loginService.clear(userId, function () {
|
||||
folderService.clear(userId, function () {
|
||||
chrome.runtime.sendMessage({ command: 'doneLoggingOut', expired: expired });
|
||||
setIcon();
|
||||
refreshBadgeAndMenu();
|
||||
callback();
|
||||
});
|
||||
});
|
||||
|
@ -1,7 +1,8 @@
|
||||
function ApiService(tokenService) {
|
||||
function ApiService(tokenService, logoutCallback) {
|
||||
//this.baseUrl = 'http://localhost:4000';
|
||||
this.baseUrl = 'https://api.bitwarden.com';
|
||||
this.tokenService = tokenService;
|
||||
this.logoutCallback = logoutCallback;
|
||||
|
||||
initApiService();
|
||||
};
|
||||
@ -46,11 +47,11 @@ function initApiService() {
|
||||
success(response);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -65,11 +66,11 @@ function initApiService() {
|
||||
success(new ProfileResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -85,7 +86,7 @@ function initApiService() {
|
||||
success();
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -102,7 +103,7 @@ function initApiService() {
|
||||
success();
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -120,11 +121,11 @@ function initApiService() {
|
||||
success(new DomainsResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -141,11 +142,11 @@ function initApiService() {
|
||||
success(new LoginResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -162,11 +163,11 @@ function initApiService() {
|
||||
success(new LoginResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -183,11 +184,11 @@ function initApiService() {
|
||||
success(new LoginResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -204,12 +205,12 @@ function initApiService() {
|
||||
success(new FolderResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
});
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
ApiService.prototype.postFolder = function (folderRequest, success, error) {
|
||||
@ -225,11 +226,11 @@ function initApiService() {
|
||||
success(new FolderResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -246,11 +247,11 @@ function initApiService() {
|
||||
success(new FolderResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -267,11 +268,11 @@ function initApiService() {
|
||||
success(new CipherResponse(response));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -291,11 +292,11 @@ function initApiService() {
|
||||
success(new ListResponse(data));
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
@ -310,19 +311,25 @@ function initApiService() {
|
||||
success();
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
handleError(error, jqXHR);
|
||||
handleError(error, jqXHR, false, self);
|
||||
}
|
||||
});
|
||||
}, function (jqXHR) {
|
||||
handleError(error, jqXHR, true);
|
||||
handleError(error, jqXHR, true, self);
|
||||
});
|
||||
};
|
||||
|
||||
// Helpers
|
||||
|
||||
function handleError(errorCallback, jqXHR, tokenError) {
|
||||
function handleError(errorCallback, jqXHR, tokenError, self) {
|
||||
if (tokenError || jqXHR.status === 401 || jqXHR.status === 403) {
|
||||
chrome.runtime.sendMessage({ command: 'logout', expired: true });
|
||||
if (self && self.logoutCallback) {
|
||||
self.logoutCallback(true, function () { })
|
||||
}
|
||||
else {
|
||||
chrome.runtime.sendMessage({ command: 'logout', expired: true });
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -334,6 +341,11 @@ function initApiService() {
|
||||
self.tokenService.getToken(function (accessToken) {
|
||||
if (self.tokenService.tokenNeedsRefresh()) {
|
||||
self.tokenService.getRefreshToken(function (refreshToken) {
|
||||
if (!refreshToken || refreshToken === '') {
|
||||
deferred.reject();
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: self.baseUrl + '/connect/token',
|
||||
|
Loading…
Reference in New Issue
Block a user