Session idle timeout with logout implementation
This commit is contained in:
committed by
Jose Alberto Hernandez
parent
caf3d39719
commit
29d3d08e88
@@ -3,6 +3,7 @@ import { Component, OnInit, HostListener, HostBinding } from '@angular/core';
|
||||
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
|
||||
import { Title } from '@angular/platform-browser';
|
||||
import { MatSnackBar } from '@angular/material/snack-bar';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
|
||||
/** rxjs Imports */
|
||||
import { merge } from 'rxjs';
|
||||
@@ -20,6 +21,8 @@ import { ThemeStorageService } from './shared/theme-picker/theme-storage.service
|
||||
import { AlertService } from './core/alert/alert.service';
|
||||
import { AuthenticationService } from './core/authentication/authentication.service';
|
||||
import { SettingsService } from './settings/settings.service';
|
||||
import { IdleTimeoutService } from './home/timeout-dialog/idle-timeout.service';
|
||||
import { SessionTimeoutDialogComponent } from './home/timeout-dialog/session-timeout-dialog.component';
|
||||
|
||||
/** Custom Items */
|
||||
import { Alert } from './core/alert/alert.model';
|
||||
@@ -95,6 +98,8 @@ export class WebAppComponent implements OnInit {
|
||||
* @param {SettingsService} settingsService Settings Service.
|
||||
* @param {AuthenticationService} authenticationService Authentication service.
|
||||
* @param {Dates} dateUtils Dates service.
|
||||
* @param {IdleTimeoutService} idle Idle timeout service.
|
||||
* @param {MatDialog} dialog Dialog component.
|
||||
*/
|
||||
constructor(private router: Router,
|
||||
private activatedRoute: ActivatedRoute,
|
||||
@@ -106,7 +111,9 @@ export class WebAppComponent implements OnInit {
|
||||
private settingsService: SettingsService,
|
||||
private authenticationService: AuthenticationService,
|
||||
private themingService: ThemingService,
|
||||
private dateUtils: Dates) { }
|
||||
private dateUtils: Dates,
|
||||
private idle: IdleTimeoutService,
|
||||
private dialog: MatDialog) { }
|
||||
|
||||
@HostBinding('class') public cssClass: string;
|
||||
|
||||
@@ -210,6 +217,17 @@ export class WebAppComponent implements OnInit {
|
||||
this.settingsService.setTenantIdentifier(environment.fineractPlatformTenantId || 'default');
|
||||
}
|
||||
this.settingsService.setTenantIdentifiers(environment.fineractPlatformTenantIds.split(','));
|
||||
|
||||
// Subscribe to session timeout If IdleTimeout is higher than 0 (zero)
|
||||
if (environment.session.timeout.idleTimeout > 0) {
|
||||
this.idle.$onSessionTimeout.subscribe(() => {
|
||||
if (this.authenticationService.getUserLoggedIn()) {
|
||||
this.alertService.alert({type: 'Session timeout', message: this.translateService.instant('labels.text.Session timed out')});
|
||||
this.dialog.open(SessionTimeoutDialogComponent);
|
||||
this.logout();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
logout() {
|
||||
|
||||
Reference in New Issue
Block a user