]> git.apps.os.sepia.ceph.com Git - ceph.git/blob
676fe5148e83b3132d504e7f9f98f720b61677d0
[ceph.git] /
1 import { Component, OnInit } from '@angular/core';
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 })
12 export class PwdExpirationNotificationComponent implements OnInit {
13   alertType: string;
14   expirationDays: number;
15   pwdExpirationSettings: CdPwdExpirationSettings;
16
17   constructor(
18     private settingsService: SettingsService,
19     private authStorageService: AuthStorageService
20   ) {}
21
22   ngOnInit() {
23     this.settingsService.pwdExpirationSettings().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';
30         } else {
31           this.alertType = 'warning';
32         }
33
34         this.authStorageService.isPwdDisplayedSource.next(true);
35       }
36     });
37   }
38
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));
43   }
44
45   close() {
46     this.authStorageService.isPwdDisplayedSource.next(false);
47   }
48 }