Browse Source

Cambios de testing 3

JeanBenitez 3 years ago
parent
commit
75a8156d06

+ 12 - 14
vacaciones/src/app/auth/admin.guard.ts

@@ -18,31 +18,29 @@ import * as sodium from 'libsodium-wrappers';
 export class AdminGuard implements CanActivate {
   
   constructor(private _iamService: IAMService, private router: Router, private _encService:ENCService) {}
-
   async canActivate(
     route: ActivatedRouteSnapshot,
     state: RouterStateSnapshot,
    
   ):Promise<boolean> {
+    
     let usuario:USERInterface = JSON.parse(localStorage.getItem('TIMUSERENC')!);
+    
     const sleep = (ms:number) => new Promise(resolve => setTimeout(resolve, ms))
     await sleep(600);
       
     if (usuario != null) {
       let perfil_des =  this._encService.desencriptar(usuario.PERFIL);
-      switch (perfil_des) {
-        case "Administrador":
-          return true;
-        case "Usuario":
-          if(window.location.pathname == "/admin/mesmav"){
-            this.router.navigate(['/mesmav']);
-          }else{
-            this.router.navigate(['/mesmpr']);
-          }
-          return false;
-        default:
-          this.router.navigate(['/iam']);
-          return false;
+
+      if(perfil_des === "1"){
+        return true;
+      }else{
+        if(window.location.pathname == "/admin/mesmav"){
+          this.router.navigate(['/mesmav']);
+        }else{
+          this.router.navigate(['/mesmpr']);
+        }
+        return false;
       }
     } else {      
       this.router.navigate(['/iam']);

+ 27 - 14
vacaciones/src/app/auth/auth.guard.ts

@@ -11,6 +11,7 @@ import { BehaviorSubject, firstValueFrom, lastValueFrom, Observable, Subscriptio
 import { USERInterface } from '../interfaces/user-interface';
 import { ENCService } from '../services/enc/enc.service';
 import { IAMService } from '../services/iam/iam.service';
+import { LocalstorageService } from '../services/localstorage.service';
 import { MCOMAUService } from '../services/mco/mcomau/mcomau.service';
 import { WebSocketService } from '../services/socket/web-socket.service';
 import { ValidationsService } from '../services/validations.service';
@@ -25,32 +26,44 @@ export class AuthGuard implements CanActivate {
   user_local: string = "";
   private empresas_arr: any[] = [];
 
+  public aux_test: any;
   constructor(
-    private _IAMService: IAMService,
-    private _encService: ENCService,
     private router: Router,
-    private _snackBar: MatSnackBar,
-    private webSocketService: WebSocketService,
-    private _mcomauService: MCOMAUService,
-    private _validationService: ValidationsService
+    public setUserStorage: LocalstorageService
+
   ) { }
 
-  async canActivate(
+  canActivate(
     route: ActivatedRouteSnapshot,
     state: RouterStateSnapshot
   ) {
+    console.log("AuthGuard");
+    
     let bloq = false;
+    let time:boolean = false;
+
+    let rfc_local = localStorage.getItem('RFCEMPRESA')!;
+    let user_local = localStorage.getItem('TIMUSERENC')!;
+    
+    /* this.user_local = this.setUserStorage.getUserStorage()!; */
 
-    this.rfc_local = localStorage.getItem('RFCEMPRESA')!;
-    this.user_local = localStorage.getItem('TIMUSERENC')!;
-    setInterval(() => {
+    
+    
+    this.aux_test = setInterval(() => {
       let jwt_local = localStorage.getItem('jwt');
-      if (jwt_local !== "" && jwt_local !== undefined && jwt_local !== null) {
-        localStorage.setItem('RFCEMPRESA', this.rfc_local);
-        localStorage.setItem('TIMUSERENC', this.user_local);
+      console.log(user_local);
+      
+      if (jwt_local !== null ) {
+        localStorage.setItem('RFCEMPRESA', rfc_local);
+        localStorage.setItem('TIMUSERENC', user_local);
       }
-    }, 500);
+    }, 1000);
 
+    /* const sleep = (ms:number) => new Promise(resolve => setTimeout(resolve, ms))
+    await sleep(10000); */
+    
+    
+    time = false;
     //Se checa si existe una sesión y si no hubo cambios
     let isLoggedIn = localStorage.getItem('jwt') != null;
     if (isLoggedIn && !bloq) {

+ 7 - 4
vacaciones/src/app/auth/user.guard.ts

@@ -32,8 +32,11 @@ export class UserGuard implements CanActivate {
   }
 
   async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
-    
+    /* console.log("UserGuard");
+    console.log(localStorage.getItem('TIMUSERENC')); */
+
     let rfc_local = localStorage.getItem('RFCEMPRESA');
+    
 
     if (rfc_local === null || rfc_local === undefined) {
       localStorage.setItem('RFCEMPRESA', 'ITTEC');
@@ -67,13 +70,13 @@ export class UserGuard implements CanActivate {
     let perfil = await this._encService.desencriptar2(obj_user.PERFIL);
 
     // Si existe datos en la url del correo, ir a MESMAV según su PERFIL
-    if (exist_data_email && perfil === 'Administrador') {
+    if (exist_data_email && perfil === "1") {
       let solicitud = url.split(';data=')[1];
       return this.router.navigate([
         '/admin/mesmav',
         { solicitud_datos: solicitud },
       ]);
-    } else if (exist_data_email && perfil === 'Usuario') {
+    } else if (exist_data_email && perfil !== "1") {
       let solicitud = url.split(';data=')[1];
       return this.router.navigate([
         '/admin/mesmav',
@@ -82,7 +85,7 @@ export class UserGuard implements CanActivate {
     }
 
     // Si el usuario de perfil Administrador quiere acceder,, negar el paso y redigirlo a sus interfaces
-    if (perfil === 'Administrador') {
+    if (perfil === "1") {
       return this.router.navigate(['/admin/mesmav']);
     }
     

+ 2 - 2
vacaciones/src/app/components/mco/mco.component.html

@@ -11,7 +11,7 @@
         <div>
           <span class="nombre-menu">{{ usuario_session.NOMBRE }}</span>
           <br />
-          <span class="rol-menu">Administrador</span>
+          <span class="rol-menu">{{ perfil }}</span>
         </div>
       </div>
      
@@ -147,7 +147,7 @@
         <div>
           <span class="nombre-menu">{{ usuario_session.NOMBRE }}</span>
           <br />
-          <span class="rol-menu">Administrador</span>
+          <span class="rol-menu">{{ perfil }}</span>
         </div>
       </div>
       <div></div>

+ 2 - 0
vacaciones/src/app/components/mco/mco.component.ts

@@ -24,6 +24,7 @@ export class MCOComponent implements AfterViewInit {
 
   empresa:string = "";
   razonSocial: string = ""
+  public perfil : string;
   constructor( 
     private router: Router, 
     private breakpointObserver:BreakpointObserver, 
@@ -37,6 +38,7 @@ export class MCOComponent implements AfterViewInit {
 
     this.empresa = this._encService.desencriptar( this.usuario_session.RFCEMPRESA);
     this.razonSocial = this._encService.desencriptar(this.usuario_session.RAZONSOCIAL);
+    this.perfil = this._encService.desencriptar(this.usuario_session.NOMBREPERFIL);
   }
 
   ngAfterViewInit(): void {

+ 2 - 2
vacaciones/src/app/components/mes/mes.component.html

@@ -11,7 +11,7 @@
         <div>
           <span class="nombre-menu">{{ usuario_session.NOMBRE }}</span>
           <br />
-          <span class="rol-menu">Administrador</span>
+          <span class="rol-menu">{{ perfil }}</span>
         </div>
       </div>
     </div>
@@ -97,7 +97,7 @@
         <div>
           <span class="nombre-menu">{{ nombreUsuario }}</span>
           <br />
-          <span class="rol-menu">Usuario Estandar</span>
+          <span class="rol-menu">{{ perfil }}</span>
         </div>
       </div>
       <div></div>

+ 2 - 1
vacaciones/src/app/components/mes/mes.component.ts

@@ -26,7 +26,7 @@ export class MESComponent implements AfterViewInit {
   usuario_session:USERInterface = JSON.parse(localStorage.getItem('TIMUSERENC')!);
   empresa:string = "";
   razonSocial: string = "";
-
+  public perfil : string;
   public activateMenu( response:Boolean ){
     this.isLoggedIn = response;
   }
@@ -37,6 +37,7 @@ export class MESComponent implements AfterViewInit {
     this.nombreUsuario = this.usuario_session.NOMBRE;
     this.razonSocial = this._encService.desencriptar(this.usuario_session.RAZONSOCIAL);
     this.empresa = this._encService.desencriptar( this.usuario_session.RFCEMPRESA);
+    this.perfil = this._encService.desencriptar(this.usuario_session.NOMBREPERFIL);
   }
 
   ngAfterViewInit(): void {

+ 0 - 1
vacaciones/src/app/components/mes/mesmhs/mesmhs-form/mesmhs-form.component.ts

@@ -25,7 +25,6 @@ export class MESMHSFORMComponent implements OnInit {
     @Inject(MAT_DIALOG_DATA) public data: any,
     private _mesmhsService: MESMHSService
   ) {
-    console.log(this.data.item);
 
     this.formGroup = this.createFormGroup();
   }

+ 8 - 3
vacaciones/src/app/components/mes/mesmhs/mesmhs.component.ts

@@ -47,10 +47,15 @@ export class MESMHSComponent implements AfterViewInit {
   ) {
     this.usuario_session = JSON.parse(localStorage.getItem('TIMUSERENC')!);
 
-    this.isAdmin =
-      this._encService.desencriptar(
+    this.isAdmin = this._encService.desencriptar(
         JSON.parse(localStorage.getItem('TIMUSERENC')!).PERFIL
-      ) == 'Administrador';
+      ) == "1";
+
+      console.log(this._encService.desencriptar(JSON.parse(localStorage.getItem('TIMUSERENC')!).PERFIL));
+      
+      console.log(localStorage.getItem('TIMUSERENC'));
+      
+
     if (this.isAdmin) {
       this.displayedColumns = [
         'no',

+ 3 - 5
vacaciones/src/app/components/mes/mesmre/mesmre.component.ts

@@ -111,13 +111,13 @@ export class MESMREComponent implements AfterViewInit {
     if (
       this._encService.desencriptar(
         JSON.parse(localStorage.getItem('TIMUSERENC')!).PERFIL
-      ) == 'Administrador'
+      ) === "1"
     ) {
       this.role = 'Administrador';
     } else if (
       this._encService.desencriptar(
         JSON.parse(localStorage.getItem('TIMUSERENC')!).PERFIL
-      ) == 'Usuario'
+      ) !== "1"
     ) {
 
       this.opcionesSolicitudes = this.opcionesSolicitudes.slice(0, 1);
@@ -174,7 +174,7 @@ export class MESMREComponent implements AfterViewInit {
     if (
       this._encService.desencriptar(
         JSON.parse(localStorage.getItem('TIMUSERENC')!).PERFIL
-      ) == 'Administrador'
+      ) == "1"
     ) {
       await lastValueFrom(this.__mesmreService.consultarTodos()).then(
         (res: any) => {
@@ -690,8 +690,6 @@ export class MESMREComponent implements AfterViewInit {
     this.dataSource = new MatTableDataSource<MESMREInterface>(this.solicitudes);
     this.selection = new SelectionModel<MESMREInterface>(true, solicitudes);
 
-    console.log(this.dataSource);
-
     
     this.dataSource.filterPredicate = function (
       data: MESMREInterface,

+ 1 - 0
vacaciones/src/app/interfaces/iam/response-login.ts

@@ -8,6 +8,7 @@ export interface ResponseLogin {
         CORREO: string,
         NOMBRE: string,
         PERFIL: string,
+        NOMBREPERFIL: string;
         TOKEN: string,
         ESTATUS: string,
         POLITICA: string

+ 10 - 9
vacaciones/src/app/interfaces/user-interface.ts

@@ -1,11 +1,12 @@
 export interface USERInterface{
-    CORREO: string,
-    IDUSUARIO: string,
-    NOMBRE: string,
-    PERFIL: string,
-    RFCEMPRESA: string,
-    RFCUSUARIO: string,
-    TOKEN:string,
-    POLITICA: string,
-    RAZONSOCIAL: string
+    CORREO: string;
+    IDUSUARIO: string;
+    NOMBRE: string;
+    PERFIL: string;
+    NOMBREPERFIL: string;
+    RFCEMPRESA: string;
+    RFCUSUARIO: string;
+    TOKEN:string;
+    POLITICA: string;
+    RAZONSOCIAL: string;
 }

+ 21 - 11
vacaciones/src/app/services/iam/iam.service.ts

@@ -7,6 +7,8 @@ import { IAMInterface } from 'src/app/interfaces/iam/iam-interface';
 import { ENCService } from '../enc/enc.service';
 import { WebSocketService } from '../socket/web-socket.service';
 import { ResponseData } from 'src/app/interfaces/response-data';
+import { LocalstorageService } from '../localstorage.service';
+import { AuthGuard } from 'src/app/auth/auth.guard';
 
 @Injectable({
   providedIn: 'root',
@@ -22,7 +24,9 @@ export class IAMService implements OnInit {
     private _snackBar: MatSnackBar,
     private router: Router,
     private _encService: ENCService,
-    private webSocketService: WebSocketService
+    private webSocketService: WebSocketService,
+    public setUserStorage: LocalstorageService,
+    private test: AuthGuard
   ) {
     this.getIPAddress();
   }
@@ -55,18 +59,15 @@ export class IAMService implements OnInit {
             if (rfc_empresa == localStorage.getItem('RFCEMPRESA')) {
               switch (status) {
                 case 'Activo':
+
+                  console.log(data!.response);
+                  
                   this.current_user = JSON.stringify(data!.response);
                   this.jwt = data!.response.TOKEN;
-
-                  let jwt_local = localStorage.getItem('jwt');
-                  let TIMUSERENC_local = localStorage.getItem('TIMUSERENC');
-
+                  
                   localStorage.setItem('jwt', data!.response.TOKEN);
-                  localStorage.setItem(
-                    'TIMUSERENC',
-                    JSON.stringify(data!.response)
-                  );
-
+                  localStorage.setItem('TIMUSERENC',JSON.stringify(data?.response));
+                  this.sendService(data?.response)
                   this.userType(perfil, solicitud_datos);
 
                   break;
@@ -104,6 +105,10 @@ export class IAMService implements OnInit {
     }
   }
 
+  sendService(data:any){
+    this.setUserStorage.setUserStorage(JSON.stringify(data));
+
+  }
   private snackAlert(mensaje: string) {
     this._snackBar.open(mensaje, 'Cerrar', {
       duration: 4000,
@@ -127,6 +132,10 @@ export class IAMService implements OnInit {
   }
 
   public logout(): void {
+    
+    console.log(this.test.aux_test);
+    
+    clearInterval(this.test.aux_test);
     let rfc = localStorage.getItem('RFCEMPRESA');
     if (rfc === null || rfc === undefined || rfc === '') {
       localStorage.setItem('RFCEMPRESA', 'ITTEC');
@@ -139,7 +148,8 @@ export class IAMService implements OnInit {
   }
 
   private userType(perfil: string, solicitud_datos: string) {
-    if (perfil == 'Administrador') {
+    
+    if (perfil == "1") {
       if (solicitud_datos == '') {
         this.router.navigate(['/admin/mesmpr']);
       } else {

+ 16 - 0
vacaciones/src/app/services/localstorage.service.spec.ts

@@ -0,0 +1,16 @@
+import { TestBed } from '@angular/core/testing';
+
+import { LocalstorageService } from './localstorage.service';
+
+describe('LocalstorageService', () => {
+  let service: LocalstorageService;
+
+  beforeEach(() => {
+    TestBed.configureTestingModule({});
+    service = TestBed.inject(LocalstorageService);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});

+ 23 - 0
vacaciones/src/app/services/localstorage.service.ts

@@ -0,0 +1,23 @@
+import { Injectable } from '@angular/core';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class LocalstorageService {
+
+  constructor() { 
+
+  }
+
+  public arrayDelService: any;
+
+
+
+  getUserStorage(){
+    return this.arrayDelService;
+  }
+
+  setUserStorage(str:any){
+    this.arrayDelService = str;
+  }
+}

+ 0 - 1
vacaciones/src/app/services/mes/mesmsv/mesmsv.service.ts

@@ -11,7 +11,6 @@ import { IAMService } from '../../iam/iam.service';
 export class MESMSVService {
 
   private _url = 'https://qasirh.ittec.mx/v1/public/api/MESMSV';
-  usuario_session:USERInterface = JSON.parse(localStorage.getItem('usuario')!); 
   jwt = localStorage.getItem('jwt');
   header = new HttpHeaders().set('Authorization', 'Bearer ' + this.jwt);