projects/cobbler-frontend/src/app/services/user.service.ts
        
                        Properties | 
                
                        
  | 
                
                        Methods | 
                
                            Accessors | 
                    
constructor()
                     | 
                
| changeAuthorizedState | ||||||
changeAuthorizedState(authorized: boolean)
                 | 
            ||||||
| 
                             
                                Parameters :
                                
                                 
                        
 
                            Returns :          
                            void
                         | 
            
| Private _username | 
                        Type :         string
                     | 
                
| authorized | 
                        Type :     BehaviorSubject<boolean>
                     | 
                
| server | ||||||
                        getserver()
                     | 
                ||||||
                        setserver(url: string)
                     | 
                ||||||
| 
                                 
                                        Parameters :
                                         
                                
 
                                    Returns :          
                        void
                                 | 
                    
| username | ||||||
                        getusername()
                     | 
                ||||||
                        setusername(name: string)
                     | 
                ||||||
| 
                                 
                                        Parameters :
                                         
                                
 
                                    Returns :          
                        void
                                 | 
                    
| token | ||||||
                        gettoken()
                     | 
                ||||||
                        settoken(token: string)
                     | 
                ||||||
| 
                                 
                                        Parameters :
                                         
                                
 
                                    Returns :          
                        void
                                 | 
                    
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
const COBBLER_URL_KEY_NAME = 'COBBLER_URL';
const COBBLER_TOKEN_KEY_NAME = 'token';
@Injectable({
  providedIn: 'root',
})
export class UserService {
  private _username: string;
  authorized: BehaviorSubject<boolean>;
  constructor() {
    // Apply https://stackoverflow.com/a/50067730/4730773 to this service
    this._username = 'unknown user';
    this.authorized = new BehaviorSubject<boolean>(false);
  }
  get server(): string {
    const server_value = localStorage.getItem(COBBLER_URL_KEY_NAME);
    if (server_value) {
      return server_value;
    }
    return 'http://localhost/cobbler_api';
  }
  set server(url: string) {
    window.localStorage.setItem(COBBLER_URL_KEY_NAME, url);
  }
  get username(): string {
    return this._username;
  }
  get token(): string {
    const token = localStorage.getItem(COBBLER_TOKEN_KEY_NAME);
    if (token === null) {
      return '';
    }
    return token;
  }
  set token(token: string) {
    localStorage.setItem(COBBLER_TOKEN_KEY_NAME, token);
  }
  set username(name: string) {
    this._username = name;
    this.token = '';
  }
  changeAuthorizedState(authorized: boolean) {
    this.authorized.next(authorized);
  }
}