2016-03-14 20:20:29 +08:00
|
|
|
///<reference path="../../browser.d.ts"/>
|
2016-03-13 18:28:29 +08:00
|
|
|
|
|
|
|
import {Injectable} from 'angular2/core';
|
|
|
|
import {User} from "../../../common/entities/User";
|
|
|
|
import {Event} from "../../../common/event/Event";
|
2016-03-19 16:58:27 +08:00
|
|
|
import {UserService} from "./user.service";
|
|
|
|
import {LoginCredential} from "../../../common/entities/LoginCredential";
|
|
|
|
import {Message} from "../../../common/entities/Message";
|
2016-03-13 18:28:29 +08:00
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class AuthenticationService{
|
|
|
|
|
2016-03-19 16:58:27 +08:00
|
|
|
private _user:User = null;
|
2016-03-13 18:28:29 +08:00
|
|
|
public OnAuthenticated:Event<User>;
|
|
|
|
|
2016-03-19 16:58:27 +08:00
|
|
|
constructor(private _userService: UserService){
|
2016-03-13 18:28:29 +08:00
|
|
|
this.OnAuthenticated = new Event();
|
|
|
|
}
|
|
|
|
|
2016-03-19 16:58:27 +08:00
|
|
|
public login(credential:LoginCredential){
|
|
|
|
this._userService.login(credential).then( (message:Message<User>) =>{
|
|
|
|
console.log(message);
|
|
|
|
if(message.errors && message.errors.length > 0){
|
|
|
|
console.log(message.errors);
|
|
|
|
}else{
|
|
|
|
this._user = message.result;
|
|
|
|
this.OnAuthenticated.trigger(this._user);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2016-03-13 18:28:29 +08:00
|
|
|
|
2016-03-19 16:58:27 +08:00
|
|
|
public isAuthenticated():boolean{
|
|
|
|
return this._user && this._user != null;
|
2016-03-13 18:28:29 +08:00
|
|
|
}
|
2016-03-19 16:58:27 +08:00
|
|
|
|
2016-03-13 18:28:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
}
|