File

src/services/user.service.ts

Index

Properties
Methods

Constructor

constructor(router: Router)
Parameters :
Name Type Optional Description
router Router

Methods

Public getCurrent
getCurrent()
Returns : any
Public logout
logout()
Returns : void
Public setCurrent
setCurrent(user: User)
Parameters :
Name Type Optional Description
user User
Returns : void

Properties

Private current
current: ReplaySubject<User>
Type : ReplaySubject<User>
Public logoutAction
logoutAction: Function
Type : Function
import { User } from '../models/user';
import { Injectable } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs/Rx';
import { Router } from '@angular/router';

@Injectable()
export class UserService {
    private current: ReplaySubject<User> = new ReplaySubject<User>( 1 );

    // Called when logout
    public logoutAction: Function;

    constructor(
      private router: Router
    ) {}

    public setCurrent( user: User ) {
      this.current.next( user );
    }

    public getCurrent() {
      return this.current;
    }

    public logout() {
      if ( this.logoutAction ) {
        this.logoutAction();
      } else {
        const user = new User();
        user.connected = false;
        this.setCurrent( user );
        this.router.navigate(['login']);
      }
    }
}

results matching ""

    No results matching ""