app.module.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 { AddStudentDialog, StudentsComponent } from './students/students.component';
  6. import { RouterModule, Routes } from "@angular/router";
  7. import { HttpClientModule } from "@angular/common/http";
  8. import { FormsModule, ReactiveFormsModule } from "@angular/forms";
  9. import { LoginComponent } from "./login/login.component";
  10. import { RegisterComponent } from "./register/register.component";
  11. import { httpInterceptorProviders } from './auth/auth-interceptor';
  12. import { RoleGuard } from "./guards/role.guard";
  13. import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
  14. import { MaterialModule } from "./material/material.module";
  15. import { AddSubjectDialog, SubjectListComponent } from './subject/subject-list/subject-list.component';
  16. import { StudentSelectionDialog, SubjectDetailsComponent } from './subject/subject-details/subject-details.component';
  17. import { SubjectForStudentComponent } from './subject/subject-for-student/subject-for-student.component';
  18. const routes: Routes = [
  19. { path: 'home', component: HomeComponent },
  20. { path: 'students', component: StudentsComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_ADMIN'] }, },
  21. { path: 'subjects', component: SubjectListComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_ADMIN'] }, },
  22. { path: 'subjects/:id', component: SubjectDetailsComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_ADMIN'] }, },
  23. { path: 'student/subjects', component: SubjectForStudentComponent, canActivate: [RoleGuard], data: { roles: ['ROLE_USER'] }, },
  24. { path: 'auth/login', component: LoginComponent },
  25. { path: 'auth/signup', component: RegisterComponent },
  26. { path: '', redirectTo: 'home', pathMatch: 'full' }
  27. ];
  28. @NgModule({
  29. declarations: [
  30. AppComponent,
  31. HomeComponent,
  32. StudentsComponent,
  33. LoginComponent,
  34. RegisterComponent,
  35. SubjectListComponent,
  36. AddSubjectDialog,
  37. SubjectDetailsComponent,
  38. AddStudentDialog,
  39. StudentSelectionDialog,
  40. SubjectForStudentComponent,
  41. ],
  42. imports: [
  43. BrowserModule,
  44. HttpClientModule,
  45. FormsModule,
  46. RouterModule.forRoot(routes),
  47. BrowserAnimationsModule,
  48. MaterialModule,
  49. ReactiveFormsModule
  50. ],
  51. providers: [httpInterceptorProviders, AppComponent],
  52. bootstrap: [AppComponent]
  53. })
  54. export class AppModule {
  55. }