los-auth
Version:
Libreria de autenticacion para las aplicaciones internas de la empresa LOS
213 lines • 8.71 kB
JavaScript
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