app.module.ts 2.6 KB

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