app.module.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { NgModule } from '@angular/core';
  2. import { BrowserModule } from '@angular/platform-browser';
  3. import { AppComponent } from './app.component';
  4. import { HomeComponent } from './home/home.component';
  5. import { StudentsComponent } from './students/students.component';
  6. import {RouterModule, Routes} from "@angular/router";
  7. import {HttpClientModule} from "@angular/common/http";
  8. import {FormsModule} from "@angular/forms";
  9. import {UserComponent} from "./user/user.component";
  10. import {AdminComponent} from "./admin/admin.component";
  11. import {LoginComponent} from "./login/login.component";
  12. import {RegisterComponent} from "./register/register.component";
  13. import { httpInterceptorProviders } from './auth/auth-interceptor';
  14. import {RoleGuard} from "./guards/role.guard";
  15. const routes: Routes = [
  16. { path: 'home', component: HomeComponent },
  17. { path: 'students', component: StudentsComponent },
  18. { path: 'user', component: UserComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_USER','ROLE_ADMIN'] },},
  19. { path: 'admin', component: AdminComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_ADMIN'] },},
  20. { path: 'auth/login', component: LoginComponent },
  21. { path: 'signup', component: RegisterComponent },
  22. { path: '', redirectTo: 'home', pathMatch: 'full' }
  23. ];
  24. @NgModule({
  25. declarations: [
  26. AppComponent,
  27. HomeComponent,
  28. StudentsComponent,
  29. LoginComponent,
  30. RegisterComponent,
  31. UserComponent,
  32. AdminComponent
  33. ],
  34. imports: [
  35. BrowserModule,
  36. // import HttpClientModule after BrowserModule.
  37. HttpClientModule,
  38. FormsModule,
  39. RouterModule.forRoot(routes)
  40. ],
  41. providers: [httpInterceptorProviders],
  42. bootstrap: [AppComponent]
  43. })
  44. export class AppModule { }