diff options
Diffstat (limited to '')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-storage.service.ts | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-storage.service.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-storage.service.ts new file mode 100644 index 000000000..15e21f9ed --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-storage.service.ts @@ -0,0 +1,59 @@ +import { Injectable } from '@angular/core'; + +import { BehaviorSubject } from 'rxjs'; + +import { Permissions } from '../models/permissions'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthStorageService { + isPwdDisplayedSource = new BehaviorSubject(false); + isPwdDisplayed$ = this.isPwdDisplayedSource.asObservable(); + + set( + username: string, + permissions = {}, + sso = false, + pwdExpirationDate: number = null, + pwdUpdateRequired: boolean = false + ) { + localStorage.setItem('dashboard_username', username); + localStorage.setItem('dashboard_permissions', JSON.stringify(new Permissions(permissions))); + localStorage.setItem('user_pwd_expiration_date', String(pwdExpirationDate)); + localStorage.setItem('user_pwd_update_required', String(pwdUpdateRequired)); + localStorage.setItem('sso', String(sso)); + } + + remove() { + localStorage.removeItem('dashboard_username'); + localStorage.removeItem('user_pwd_expiration_data'); + localStorage.removeItem('user_pwd_update_required'); + } + + isLoggedIn() { + return localStorage.getItem('dashboard_username') !== null; + } + + getUsername() { + return localStorage.getItem('dashboard_username'); + } + + getPermissions(): Permissions { + return JSON.parse( + localStorage.getItem('dashboard_permissions') || JSON.stringify(new Permissions({})) + ); + } + + getPwdExpirationDate(): number { + return Number(localStorage.getItem('user_pwd_expiration_date')); + } + + getPwdUpdateRequired(): boolean { + return localStorage.getItem('user_pwd_update_required') === 'true'; + } + + isSSO() { + return localStorage.getItem('sso') === 'true'; + } +} |