]>
Commit | Line | Data |
---|---|---|
f6b5b4d7 | 1 | import { Component, OnDestroy, OnInit } from '@angular/core'; |
9f95a23c TL |
2 | |
3 | import { SettingsService } from '../../api/settings.service'; | |
4 | import { CdPwdExpirationSettings } from '../../models/cd-pwd-expiration-settings'; | |
5 | import { AuthStorageService } from '../../services/auth-storage.service'; | |
6 | ||
7 | @Component({ | |
8 | selector: 'cd-pwd-expiration-notification', | |
9 | templateUrl: './pwd-expiration-notification.component.html', | |
10 | styleUrls: ['./pwd-expiration-notification.component.scss'] | |
11 | }) | |
f6b5b4d7 | 12 | export class PwdExpirationNotificationComponent implements OnInit, OnDestroy { |
9f95a23c TL |
13 | alertType: string; |
14 | expirationDays: number; | |
15 | pwdExpirationSettings: CdPwdExpirationSettings; | |
f6b5b4d7 | 16 | displayNotification = false; |
9f95a23c TL |
17 | |
18 | constructor( | |
19 | private settingsService: SettingsService, | |
20 | private authStorageService: AuthStorageService | |
21 | ) {} | |
22 | ||
23 | ngOnInit() { | |
24 | this.settingsService.getStandardSettings().subscribe((pwdExpirationSettings) => { | |
25 | this.pwdExpirationSettings = new CdPwdExpirationSettings(pwdExpirationSettings); | |
26 | const pwdExpirationDate = this.authStorageService.getPwdExpirationDate(); | |
27 | if (pwdExpirationDate) { | |
28 | this.expirationDays = this.getExpirationDays(pwdExpirationDate); | |
29 | if (this.expirationDays <= this.pwdExpirationSettings.pwdExpirationWarning2) { | |
30 | this.alertType = 'danger'; | |
31 | } else { | |
32 | this.alertType = 'warning'; | |
33 | } | |
f6b5b4d7 TL |
34 | this.displayNotification = |
35 | this.expirationDays <= this.pwdExpirationSettings.pwdExpirationWarning1; | |
36 | this.authStorageService.isPwdDisplayedSource.next(this.displayNotification); | |
9f95a23c TL |
37 | } |
38 | }); | |
39 | } | |
40 | ||
f6b5b4d7 TL |
41 | ngOnDestroy() { |
42 | this.authStorageService.isPwdDisplayedSource.next(false); | |
43 | } | |
44 | ||
9f95a23c TL |
45 | private getExpirationDays(pwdExpirationDate: number): number { |
46 | const current = new Date(); | |
47 | const expiration = new Date(pwdExpirationDate * 1000); | |
48 | return Math.floor((expiration.valueOf() - current.valueOf()) / (1000 * 3600 * 24)); | |
49 | } | |
50 | ||
51 | close() { | |
52 | this.authStorageService.isPwdDisplayedSource.next(false); | |
f6b5b4d7 | 53 | this.displayNotification = false; |
9f95a23c TL |
54 | } |
55 | } |