]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/auth-storage.service.ts
import ceph nautilus 14.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / services / auth-storage.service.ts
CommitLineData
11fdf7f2
TL
1import { Injectable } from '@angular/core';
2
3import { Permissions } from '../models/permissions';
11fdf7f2
TL
4
5@Injectable({
81eedcae 6 providedIn: 'root'
11fdf7f2
TL
7})
8export class AuthStorageService {
9 constructor() {}
10
11 set(username: string, token: string, permissions: object = {}) {
12 localStorage.setItem('dashboard_username', username);
13 localStorage.setItem('access_token', token);
14 localStorage.setItem('dashboard_permissions', JSON.stringify(new Permissions(permissions)));
15 }
16
17 remove() {
18 localStorage.removeItem('access_token');
19 localStorage.removeItem('dashboard_username');
20 }
21
22 getToken(): string {
23 return localStorage.getItem('access_token');
24 }
25
26 isLoggedIn() {
27 return localStorage.getItem('dashboard_username') !== null;
28 }
29
30 getUsername() {
31 return localStorage.getItem('dashboard_username');
32 }
33
34 getPermissions(): Permissions {
35 return JSON.parse(
36 localStorage.getItem('dashboard_permissions') || JSON.stringify(new Permissions({}))
37 );
38 }
39}