Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2c5da396

Přidáno uživatelem Jakub Hlaváč před téměř 4 roky(ů)

Re #8469 - Improvment security - implementace

  • authGuard and roleGuard final version
    + usage of localStorage for fields
    + loading properties form cookies to state

Zobrazit rozdíly:

src/app/auth/states/user.state.ts
1 1
import {Injectable} from '@angular/core';
2 2
import {BehaviorSubject, Observable} from 'rxjs';
3
import {Group, UserInfo} from '../../shared/api/endpoints/models';
3
import {User} from '../models/user';
4 4

  
5 5
@Injectable({
6 6
  providedIn: 'root'
7 7
})
8 8
export class UserState {
9
  private userState$: BehaviorSubject<UserInfo> = new BehaviorSubject<UserInfo>(null);
10
  private isLoggedAdmin$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
11
  private isLoggedIn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
12
  private userGroups$: BehaviorSubject<Group[]> = new BehaviorSubject<Group[]>(null);
9
  private userState$: BehaviorSubject<User> = new BehaviorSubject<User>(null);
13 10

  
14
  constructor() {
15
  }
11
  constructor() {}
16 12

  
17
  setUser(user: UserInfo): void {
13
  setUser(user: User): void {
18 14
    this.userState$.next(user);
19 15
  }
20 16

  
21
  getUser(): UserInfo {
22
    return this.userState$.getValue();
23
  }
24

  
25
  getUser$(refresh: boolean = false): Observable<UserInfo> {
26
    /*if (this.userState$.getValue() === null || refresh){
27
      this.accountService.getAccountUsingGET('body')
28
        .subscribe(res => this.setUser(res));
29
    }*/
30
    return this.userState$.asObservable();
31
  }
32

  
33
  setLoggedAdmin(adminLogged: boolean): void {
34
    this.isLoggedAdmin$.next(adminLogged);
35
  }
36

  
37
  getLoggedAdmin(): boolean {
38
    return this.isLoggedAdmin$.getValue();
17
  setLoggedIn(loggedIn: boolean) {
18
    this.userState$.next({...this.userState$.getValue(), isLoggedIn: loggedIn})
39 19
  }
40 20

  
41
  setLoggedIn(loggedIn: boolean): void {
42
    this.isLoggedIn$.next(loggedIn);
21
  getUser(): User {
22
    return this.userState$.getValue();
43 23
  }
44 24

  
45
  getLoggedIn$(): Observable<boolean> {
46
    return this.isLoggedIn$.asObservable();
25
  getUser$(refresh: boolean = false): Observable<User> {
26
    return this.userState$.asObservable();
47 27
  }
48 28

  
49 29
  getLoggedIn(): boolean {
50
    return this.isLoggedIn$.getValue();
51
  }
52

  
53
  setUserGroups(userGroups: Group[]): void {
54
    this.userGroups$.next(userGroups);
55
  }
56

  
57
  getUserGroups$(): Observable<Group[]> {
58
    return this.userGroups$.asObservable();
59
  }
60

  
61
  getUserGroups(): Group[] {
62
    return this.userGroups$.getValue();
30
    return this.userState$.getValue().isLoggedIn;
63 31
  }
64 32
}

Také k dispozici: Unified diff