Skip to content

Commit

Permalink
Environment listo
Browse files Browse the repository at this point in the history
  • Loading branch information
alesyt0h committed Aug 29, 2021
1 parent 9909d61 commit 2375bc1
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 39 deletions.
21 changes: 16 additions & 5 deletions src/app/guards/auth.guard.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, Router } from '@angular/router';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, Router, CanLoad, Route, UrlSegment, UrlTree } from '@angular/router';
import { UsuarioService } from '../services/usuario.service';
import { tap } from 'rxjs/operators';
import { Observable } from 'rxjs';

@Injectable({
providedIn: 'root'
})
export class AuthGuard implements CanActivate {
export class AuthGuard implements CanActivate, CanLoad {

constructor( private _uS: UsuarioService,
private _router: Router){}

canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot){

canLoad(route: Route, segments: UrlSegment[]): Observable<boolean> {
return this._uS.validarToken()
.pipe(
tap(estaAutenticado => {
if (!estaAutenticado){
this._router.navigateByUrl('/login')
}
})
)
}

canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot){

return this._uS.validarToken()
.pipe(
Expand Down
46 changes: 46 additions & 0 deletions src/app/pages/child-routes.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { AdminGuard } from '../guards/admin.guard';

import { DashboardComponent } from './dashboard/dashboard.component';
import { Grafica1Component } from './grafica1/grafica1.component';
import { ProgressComponent } from './progress/progress.component';
import { AccountsSettingsComponent } from './accounts-settings/accounts-settings.component';
import { PromesasComponent } from './promesas/promesas.component';
import { RxjsComponent } from './rxjs/rxjs.component';
import { PerfilComponent } from './perfil/perfil.component';

// Mantenimientos
import { UsuariosComponent } from './mantenimientos/usuarios/usuarios.component';
import { MedicosComponent } from './mantenimientos/medicos/medicos.component';
import { HospitalesComponent } from './mantenimientos/hospitales/hospitales.component';
import { MedicoComponent } from './mantenimientos/medicos/medico.component';
import { BusquedaComponent } from './busqueda/busqueda.component';

const childRoutes: Routes = [

{ path: '', component: DashboardComponent, data: { titulo: 'Dashboard' } },
{ path: 'account-settings', component: AccountsSettingsComponent, data: { titulo: 'Account Settings' } },
{ path: 'buscar/:termino', component: BusquedaComponent, data: { titulo: 'Búsquedas' } },
{ path: 'charts', component: Grafica1Component, data: { titulo: 'Charts' } },
{ path: 'perfil', component: PerfilComponent, data: { titulo: 'Perfil de usuario' } },
{ path: 'progress', component: ProgressComponent, data: { titulo: 'Progresss' } },
{ path: 'promesas', component: PromesasComponent, data: { titulo: 'Promesas' } },
{ path: 'rxjs', component: RxjsComponent, data: { titulo: 'RxJS' } },

// Mantenimientos
{ path: 'hospitales', component: HospitalesComponent, data: { titulo: 'Mantenimiento de Hospitales' } },
{ path: 'medicos', component: MedicosComponent, data: { titulo: 'Mantenimiento de Médicos' } },
{ path: 'medico/:id', component: MedicoComponent, data: { titulo: 'Mantenimiento de Médicos' } },

// Rutas de Admin
{ path: 'usuarios', canActivate: [AdminGuard] ,component: UsuariosComponent, data: { titulo: 'Mantenimiento de Usuarios' } },

]

@NgModule({
imports: [RouterModule.forChild(childRoutes)],
exports: [RouterModule]
})
export class ChildRoutesModule { }
34 changes: 2 additions & 32 deletions src/app/pages/pages-routing.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,16 @@ import { RouterModule, Routes } from '@angular/router';

import { AuthGuard } from '../guards/auth.guard';

import { DashboardComponent } from './dashboard/dashboard.component';
import { Grafica1Component } from './grafica1/grafica1.component';
import { PagesComponent } from './pages.component';
import { ProgressComponent } from './progress/progress.component';
import { AccountsSettingsComponent } from './accounts-settings/accounts-settings.component';
import { PromesasComponent } from './promesas/promesas.component';
import { RxjsComponent } from './rxjs/rxjs.component';
import { PerfilComponent } from './perfil/perfil.component';

// Mantenimientos
import { UsuariosComponent } from './mantenimientos/usuarios/usuarios.component';
import { MedicosComponent } from './mantenimientos/medicos/medicos.component';
import { HospitalesComponent } from './mantenimientos/hospitales/hospitales.component';
import { MedicoComponent } from './mantenimientos/medicos/medico.component';
import { BusquedaComponent } from './busqueda/busqueda.component';
import { AdminGuard } from '../guards/admin.guard';

const routes: Routes = [
{
path: 'dashboard',
component: PagesComponent,
canActivate: [AuthGuard],
children: [
{ path: '', component: DashboardComponent, data: { titulo: 'Dashboard' } },
{ path: 'account-settings', component: AccountsSettingsComponent, data: { titulo: 'Account Settings' } },
{ path: 'buscar/:termino', component: BusquedaComponent, data: { titulo: 'Búsquedas' } },
{ path: 'charts', component: Grafica1Component, data: { titulo: 'Charts' } },
{ path: 'perfil', component: PerfilComponent, data: { titulo: 'Perfil de usuario' } },
{ path: 'progress', component: ProgressComponent, data: { titulo: 'Progresss' } },
{ path: 'promesas', component: PromesasComponent, data: { titulo: 'Promesas' } },
{ path: 'rxjs', component: RxjsComponent, data: { titulo: 'RxJS' } },

// Mantenimientos
{ path: 'hospitales', component: HospitalesComponent, data: { titulo: 'Mantenimiento de Hospitales' } },
{ path: 'medicos', component: MedicosComponent, data: { titulo: 'Mantenimiento de Médicos' } },
{ path: 'medico/:id', component: MedicoComponent, data: { titulo: 'Mantenimiento de Médicos' } },

// Rutas de Admin
{ path: 'usuarios', canActivate: [AdminGuard] ,component: UsuariosComponent, data: { titulo: 'Mantenimiento de Usuarios' } },
]
canLoad: [],
loadChildren: () => import('./child-routes.module').then(m => m.ChildRoutesModule)
}
];

Expand Down
2 changes: 1 addition & 1 deletion src/app/services/modal-imagen.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export class ModalImagenService {
private _ocultarModal: boolean = true;
public tipo!: 'usuarios' | 'medicos' | 'hospitales';
public id: string = '';
public img?: string = 'no-image';
public img?: string = '';

public nuevaImagen: EventEmitter<string> = new EventEmitter<string>()

Expand Down
2 changes: 1 addition & 1 deletion src/environments/environment.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

export const environment = {
production: true,
base_url: 'http://localhost:3000/api'
base_url: 'https://angularadvanced-adminpro.herokuapp.com/api'
};

0 comments on commit 2375bc1

Please sign in to comment.