Projekt

Obecné

Profil

Stáhnout (1.86 KB) Statistiky
| Větev: | Tag: | Revize:
1
import {Injectable} from '@angular/core';
2
import {HttpClient, HttpResponse} from '@angular/common/http';
3
import {Observable, of, pipe} from 'rxjs';
4
import {catchError, mapTo, tap} from 'rxjs/operators';
5
import {Router} from '@angular/router';
6
import {CookieService} from 'ngx-cookie-service';
7
import {UserState} from '../states/user.state';
8
import {LoginService} from '../../shared/api/endpoints/services/login.service';
9
import {UserInfo} from '../../shared/api/endpoints/models/user-info';
10
import {Group} from '../../shared/api/endpoints/models/group';
11

    
12
@Injectable({
13
  providedIn: 'root'
14
})
15
export class AuthService {
16

    
17
  constructor(
18
    private http: HttpClient,
19
    private userState: UserState,
20
    private router: Router,
21
    private cookieService: CookieService,
22
    private loginService: LoginService
23
  ) {
24
  }
25

    
26
  doLogin(loginInput): Observable<boolean> {
27
    return this.loginService.login$Response(loginInput)
28
      .pipe(
29
        tap((userInfo: HttpResponse<UserInfo>) => this.setUserFromResponse(userInfo.body, loginInput)),
30
        mapTo(true),
31
        catchError(() => {
32
          return of<boolean>(false);
33
        })
34
      );
35
  }
36

    
37
  getUserState(): Observable<UserInfo> {
38
    return this.userState.getUser$();
39
  }
40

    
41
  getIsLoggedIn(): boolean {
42
    return this.userState.getLoggedIn();
43
  }
44

    
45
  setUserFromResponse(userInfo: UserInfo, loginInput): UserInfo {
46
    this.userState.setUser(userInfo);
47
    this.userState.setLoggedIn(true);
48
    sessionStorage.setItem('userName', loginInput.username)
49
    sessionStorage.setItem('sessionid', userInfo.sessionid)
50
    sessionStorage.setItem('language', userInfo.language)
51
    sessionStorage.setItem('audio', String(userInfo.audio))
52
    this.cookieService.set('userName', loginInput.username)
53
    return userInfo;
54
  }
55

    
56
  doLogout() {
57
    this.cookieService.deleteAll();
58
  }
59

    
60
  getUserRoles(): Group[] {
61
    return this.userState.getUserGroups();
62
  }
63
}
    (1-1/1)