UNPKG

los-auth

Version:

Libreria de autenticacion para las aplicaciones internas de la empresa LOS

213 lines 8.71 kB
import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { JwtHelper } from 'angular2-jwt'; import { Observable } from 'rxjs/Rx'; var LosAuthService = /** @class */ (function () { function LosAuthService(http) { this.http = http; this.jwtHelper = new JwtHelper(); this.authStorage = 'auth'; this.roomStorage = 'room'; } LosAuthService.prototype.login = function (data) { var _this = this; var headers = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }); var body = "grant_type=" + data.grant_type + "&username=" + data.username + "&password=" + data.password + "&client_id=" + data.client_id; return this.http.post(data.url, body, { headers: headers }).map(function (response) { sessionStorage.setItem(_this.authStorage, JSON.stringify(response)); return response; }); }; LosAuthService.prototype.logout = function () { var _this = this; return new Observable(function (observable) { sessionStorage.removeItem(_this.authStorage); observable.next(true); observable.complete(); }); }; LosAuthService.prototype.isLogged = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) observable.next(true); else observable.next(false); observable.complete(); }); }; LosAuthService.prototype.isLoggedDirect = function () { if (sessionStorage.getItem(this.authStorage) !== null) return true; else return false; }; LosAuthService.prototype.getUserActive = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { observable.next(_this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token)); } else observable.next(null); observable.complete(); }); }; LosAuthService.prototype.getToken = function () { if (sessionStorage.getItem(this.authStorage) !== null) return JSON.parse(sessionStorage.getItem(this.authStorage)).access_token; else return ''; }; LosAuthService.prototype.getUserRoles = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { observable.next(_this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token).role); } else observable.next([]); observable.complete(); }); }; LosAuthService.prototype.hasPermission = function (roles) { var _this = this; return new Observable(function (observable) { _this.getUserRoles().subscribe(function (userRoles) { var hasPermission = false; roles.forEach(function (role) { if (userRoles.indexOf(role.toString()) > -1) { hasPermission = true; } }); observable.next(hasPermission); observable.complete(); }); }); }; LosAuthService.prototype.getUserApplications = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { observable.next(JSON.parse(_this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token).user_applications)); } else observable.next([]); observable.complete(); }); }; LosAuthService.prototype.changePassword = function (data) { return this.http.put(data.ApiURL, data); }; LosAuthService.prototype.switchSkinTheme = function (skinTheme) { return this.http.put("", null); }; LosAuthService.prototype.getUserSkin = function () { var _this = this; return new Observable(function (observable) { _this.getUserActive().subscribe(function (user) { if (user) { observable.next(user.skin); } else { observable.next(''); } observable.complete(); }); }); }; LosAuthService.prototype.setSkinLocal = function () { return new Observable(); }; LosAuthService.prototype.validateUserSkin = function () { return new Observable(); }; // private validateSkinUser(ActiveSkin: Skin): Skin { // let auth = this.storageService.getSessionObject('auth'); // let user = this.jwtHelper.decodeToken(auth.access_token); // if (user.id != ActiveSkin.UserID || user.skin != ActiveSkin.Skin) { // return this.loadSkinLocal(); // } // return ActiveSkin; // } // private validateSkinUser(ActiveSkin: Skin): Skin { // let auth = this.storageService.getSessionObject('auth'); // let user = this.jwtHelper.decodeToken(auth.access_token); // if (user.id != ActiveSkin.UserID || user.skin != ActiveSkin.Skin) { // return this.loadSkinLocal(); // } // return ActiveSkin; // } LosAuthService.prototype.getUserToken = // private validateSkinUser(ActiveSkin: Skin): Skin { // let auth = this.storageService.getSessionObject('auth'); // let user = this.jwtHelper.decodeToken(auth.access_token); // if (user.id != ActiveSkin.UserID || user.skin != ActiveSkin.Skin) { // return this.loadSkinLocal(); // } // return ActiveSkin; // } function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { observable.next(_this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token)); } else observable.next(''); observable.complete(); }); }; LosAuthService.prototype.getUserRooms = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { var userRooms = _this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token).salas; var rooms_1 = []; userRooms.forEach(function (item) { rooms_1.push(JSON.parse(item)); }); observable.next(rooms_1); } else observable.next([]); observable.complete(); }); }; LosAuthService.prototype.getUserRoomDefault = function () { var _this = this; return new Observable(function (observable) { if (sessionStorage.getItem(_this.authStorage) !== null) { observable.next(_this.jwtHelper.decodeToken(JSON.parse(sessionStorage.getItem(_this.authStorage)).access_token).sala_default_id); } else observable.next(''); observable.complete(); }); }; LosAuthService.prototype.setRoomActive = function (room) { var _this = this; return new Observable(function (observable) { sessionStorage.setItem(_this.roomStorage, room); observable.next(true); observable.complete(); }); }; LosAuthService.prototype.getRoomActive = function () { var _this = this; return new Observable(function (observable) { observable.next(sessionStorage.getItem(_this.roomStorage)); observable.complete(); }); }; LosAuthService.decorators = [ { type: Injectable }, ]; /** @nocollapse */ LosAuthService.ctorParameters = function () { return [ { type: HttpClient, }, ]; }; return LosAuthService; }()); export { LosAuthService }; //# sourceMappingURL=los-auth.service.js.map