]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/components/pwd-expiration-notification/pwd-expiration-notification.component.ts
bump version to 15.2.4-pve1
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / components / pwd-expiration-notification / pwd-expiration-notification.component.ts
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.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';
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 }