Fix logout problem

This commit is contained in:
mauriziovitale84
2016-07-18 16:42:59 +01:00
parent 68bc0c7949
commit 309f032e31
2 changed files with 25 additions and 1 deletions

View File

@@ -203,6 +203,28 @@ describe('AlfrescoAuthentication', () => {
);
});
it('should logout only for if the provider is loggedin', (done) => {
let providers = ['BPM', 'ECM'];
let alfSetting = injector.get(AlfrescoSettingsService);
alfSetting.providers = providers;
service = injector.get(AlfrescoAuthenticationService);
localStorage.setItem('ticket-ECM', 'fake-post-ticket-ECM');
service.createProviderInstance(providers);
spyOn(AlfrescoAuthenticationECM.prototype, 'callApiLogout').and.returnValue(fakePromiseECM);
service.performeSaveToken('ECM', 'fake-ticket-ECM');
service.logout()
.subscribe(() => {
expect(service.isLoggedIn(providers[0])).toBe(false);
expect(service.getTicket(providers[0])).toBeUndefined();
expect(localStorage.getItem('ticket-ECM')).toBeUndefined();
done();
}
);
});
it('should return an error if no provider are defined calling the logout', (done) => {
let providers = [];
let alfSetting = injector.get(AlfrescoSettingsService);

View File

@@ -152,7 +152,9 @@ export class AlfrescoAuthenticationService extends AlfrescoAuthenticationBase {
private performLogout(): Observable<any> {
let observableBatch = [];
this.providersInstance.forEach((authInstance) => {
observableBatch.push(authInstance.logout());
if (authInstance.isLoggedIn()) {
observableBatch.push(authInstance.logout());
}
});
return Observable.create(observer => {
Observable.forkJoin(observableBatch).subscribe(