1 import { Component, OnInit } from '@angular/core';
3 import { SettingsService } from '../../api/settings.service';
4 import { CdPwdExpirationSettings } from '../../models/cd-pwd-expiration-settings';
5 import { AuthStorageService } from '../../services/auth-storage.service';
8 selector: 'cd-pwd-expiration-notification',
9 templateUrl: './pwd-expiration-notification.component.html',
10 styleUrls: ['./pwd-expiration-notification.component.scss']
12 export class PwdExpirationNotificationComponent implements OnInit {
14 expirationDays: number;
15 pwdExpirationSettings: CdPwdExpirationSettings;
18 private settingsService: SettingsService,
19 private authStorageService: AuthStorageService
23 this.settingsService.getStandardSettings().subscribe((pwdExpirationSettings) => {
24 this.pwdExpirationSettings = new CdPwdExpirationSettings(pwdExpirationSettings);
25 const pwdExpirationDate = this.authStorageService.getPwdExpirationDate();
26 if (pwdExpirationDate) {
27 this.expirationDays = this.getExpirationDays(pwdExpirationDate);
28 if (this.expirationDays <= this.pwdExpirationSettings.pwdExpirationWarning2) {
29 this.alertType = 'danger';
31 this.alertType = 'warning';
34 this.authStorageService.isPwdDisplayedSource.next(true);
39 private getExpirationDays(pwdExpirationDate: number): number {
40 const current = new Date();
41 const expiration = new Date(pwdExpirationDate * 1000);
42 return Math.floor((expiration.valueOf() - current.valueOf()) / (1000 * 3600 * 24));
46 this.authStorageService.isPwdDisplayedSource.next(false);