Revize 2c5da396
Přidáno uživatelem Jakub Hlaváč před téměř 4 roky(ů)
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
Re #8469 - Improvment security - implementace
+ usage of localStorage for fields
+ loading properties form cookies to state