From 81bdb69aace553b57c09ee338c25708cac5bab8a Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Fri, 3 Apr 2020 02:40:45 +0200 Subject: [PATCH] Using a module for the authentification --- src/app/app-routing.module.ts | 56 ++++----- src/app/app.component.ts | 4 +- src/app/app.module.ts | 86 ++----------- .../{ => auth}/account/account.component.html | 0 .../{ => auth}/account/account.component.scss | 0 .../{ => auth}/account/account.component.ts | 2 +- src/app/auth/auth-routing.module.ts | 19 +++ src/app/auth/auth.module.ts | 115 ++++++++++++++++++ src/app/{services => auth}/auth.service.ts | 0 .../autologin/autologin.component.html | 0 .../autologin/autologin.component.scss | 0 .../autologin/autologin.component.ts | 2 +- src/app/{ => auth}/login/login.component.html | 0 src/app/{ => auth}/login/login.component.scss | 0 src/app/{ => auth}/login/login.component.ts | 3 +- .../{ => auth}/logout/logout.component.html | 0 .../{ => auth}/logout/logout.component.scss | 0 src/app/{ => auth}/logout/logout.component.ts | 0 src/app/{ => auth}/misc/auth.pipe.ts | 3 +- .../misc}/authenticated-guard.service.ts | 6 +- .../misc/authorizer-interceptor.service.ts | 0 .../unauthorized/unauthorized.component.html | 0 .../unauthorized/unauthorized.component.scss | 0 .../unauthorized/unauthorized.component.ts | 2 +- 24 files changed, 176 insertions(+), 122 deletions(-) rename src/app/{ => auth}/account/account.component.html (100%) rename src/app/{ => auth}/account/account.component.scss (100%) rename src/app/{ => auth}/account/account.component.ts (96%) create mode 100644 src/app/auth/auth-routing.module.ts create mode 100644 src/app/auth/auth.module.ts rename src/app/{services => auth}/auth.service.ts (100%) rename src/app/{ => auth}/autologin/autologin.component.html (100%) rename src/app/{ => auth}/autologin/autologin.component.scss (100%) rename src/app/{ => auth}/autologin/autologin.component.ts (90%) rename src/app/{ => auth}/login/login.component.html (100%) rename src/app/{ => auth}/login/login.component.scss (100%) rename src/app/{ => auth}/login/login.component.ts (93%) rename src/app/{ => auth}/logout/logout.component.html (100%) rename src/app/{ => auth}/logout/logout.component.scss (100%) rename src/app/{ => auth}/logout/logout.component.ts (100%) rename src/app/{ => auth}/misc/auth.pipe.ts (90%) rename src/app/{misc/guards => auth/misc}/authenticated-guard.service.ts (91%) rename src/app/{ => auth}/misc/authorizer-interceptor.service.ts (100%) rename src/app/{ => auth}/unauthorized/unauthorized.component.html (100%) rename src/app/{ => auth}/unauthorized/unauthorized.component.scss (100%) rename src/app/{ => auth}/unauthorized/unauthorized.component.ts (87%) diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index ab69098c..ae3a3235 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,42 +1,34 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; -import { BrowseComponent } from './browse/browse.component'; -import { CollectionComponent } from "./collection/collection.component"; -import { NotFoundComponent } from './not-found/not-found.component'; -import { PlayerComponent } from "./player/player.component"; -import { SearchComponent } from "./search/search.component"; -import { CollectionResolverService } from "./services/collection-resolver.service"; -import { LibraryResolverService } from './services/library-resolver.service'; -import { PeopleResolverService } from "./services/people-resolver.service"; -import { SearchResolverService } from "./services/search-resolver.service"; -import { ShowResolverService } from './services/show-resolver.service'; -import { StreamResolverService } from "./services/stream-resolver.service"; -import { ShowDetailsComponent } from './show-details/show-details.component'; -import {LoginComponent} from "./login/login.component"; -import {UnauthorizedComponent} from "./unauthorized/unauthorized.component"; -import {LogoutComponent} from "./logout/logout.component"; -import {AutologinComponent} from "./autologin/autologin.component"; -import {AuthGuard} from "./misc/guards/authenticated-guard.service"; +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {BrowseComponent} from './browse/browse.component'; +import {CollectionComponent} from "./collection/collection.component"; +import {NotFoundComponent} from './not-found/not-found.component'; +import {PlayerComponent} from "./player/player.component"; +import {SearchComponent} from "./search/search.component"; +import {CollectionResolverService} from "./services/collection-resolver.service"; +import {LibraryResolverService} from './services/library-resolver.service'; +import {PeopleResolverService} from "./services/people-resolver.service"; +import {SearchResolverService} from "./services/search-resolver.service"; +import {ShowResolverService} from './services/show-resolver.service'; +import {StreamResolverService} from "./services/stream-resolver.service"; +import {ShowDetailsComponent} from './show-details/show-details.component'; +import {AuthGuard} from "./auth/misc/authenticated-guard.service"; const routes: Routes = [ - { path: "browse", component: BrowseComponent, pathMatch: "full", resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "browse/:library-slug", component: BrowseComponent, resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "show/:show-slug", component: ShowDetailsComponent, resolve: { show: ShowResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "collection/:collection-slug", component: CollectionComponent, resolve: { collection: CollectionResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "people/:people-slug", component: CollectionComponent, resolve: { collection: PeopleResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "watch/:item", component: PlayerComponent, resolve: { item: StreamResolverService }, canLoad: [AuthGuard.forPermissions("play")], canActivate: [AuthGuard.forPermissions("play")] }, - { path: "search/:query", component: SearchComponent, resolve: { items: SearchResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")] }, - { path: "login", component: LoginComponent }, - { path: "logout", component: LogoutComponent }, - { path: "autologin", component: AutologinComponent }, - { path: "unauthorized", component: UnauthorizedComponent }, - { path: "**", component: NotFoundComponent } + {path: "browse", component: BrowseComponent, pathMatch: "full", resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "browse/:library-slug", component: BrowseComponent, resolve: { shows: LibraryResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "show/:show-slug", component: ShowDetailsComponent, resolve: { show: ShowResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "collection/:collection-slug", component: CollectionComponent, resolve: { collection: CollectionResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "people/:people-slug", component: CollectionComponent, resolve: { collection: PeopleResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "watch/:item", component: PlayerComponent, resolve: { item: StreamResolverService }, canLoad: [AuthGuard.forPermissions("play")], canActivate: [AuthGuard.forPermissions("play")]}, + {path: "search/:query", component: SearchComponent, resolve: { items: SearchResolverService }, canLoad: [AuthGuard.forPermissions("read")], canActivate: [AuthGuard.forPermissions("read")]}, + {path: "**", component: NotFoundComponent} ]; @NgModule({ imports: [RouterModule.forRoot(routes, { - scrollPositionRestoration: "enabled" + scrollPositionRestoration: "enabled", })], exports: [RouterModule], providers: [ diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 27f33a2d..908ec056 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -3,10 +3,10 @@ import { HttpClient } from '@angular/common/http'; import { Event, Router, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router'; import * as $ from "jquery"; import { Location } from "@angular/common"; -import {AuthService} from "./services/auth.service"; import {MatDialog} from "@angular/material/dialog"; -import {AccountComponent} from "./account/account.component"; import {Account} from "../models/account"; +import {AccountComponent} from "./auth/account/account.component"; +import {AuthService} from "./auth/auth.service"; @Component({ selector: 'app-root', diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f0653d9c..4382ce92 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,5 +1,5 @@ -import {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http'; -import {APP_INITIALIZER, ChangeDetectorRef, NgModule} from '@angular/core'; +import {HttpClientModule} from '@angular/common/http'; +import {NgModule} from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatRippleModule } from '@angular/material/core'; @@ -23,34 +23,17 @@ import { PlayerComponent } from './player/player.component'; import { SearchComponent } from './search/search.component'; import { ShowDetailsComponent } from './show-details/show-details.component'; import { ShowsListComponent } from './shows-list/shows-list.component'; -import { LoginComponent } from './login/login.component'; import {FormsModule, ReactiveFormsModule} from "@angular/forms"; import { MatInputModule } from "@angular/material/input"; import { MatFormFieldModule } from "@angular/material/form-field"; import {MatTabsModule} from "@angular/material/tabs"; import {PasswordValidator} from "./misc/password-validator"; import {MatCheckboxModule} from "@angular/material/checkbox"; -import { - AuthModule, - ConfigResult, - OidcConfigService, - OidcSecurityService, - OpenIdConfiguration -} from "angular-auth-oidc-client"; -import { AccountComponent } from './account/account.component'; -import { UnauthorizedComponent } from './unauthorized/unauthorized.component'; -import { LogoutComponent } from './logout/logout.component'; import {MatDialogModule} from '@angular/material/dialog'; import {FallbackDirective} from "./misc/fallback.directive"; -import {AuthGuard} from "./misc/guards/authenticated-guard.service"; -import { AutologinComponent } from './autologin/autologin.component'; -import {AuthorizerInterceptor} from "./misc/authorizer-interceptor.service"; -import { AuthPipe } from './misc/auth.pipe'; +import {AuthModule} from "./auth/auth.module"; +import {AuthRoutingModule} from "./auth/auth-routing.module"; -export function loadConfig(oidcConfigService: OidcConfigService) -{ - return () => oidcConfigService.load_using_stsServer(window.location.origin); -} @NgModule({ declarations: [ @@ -64,18 +47,13 @@ export function loadConfig(oidcConfigService: OidcConfigService) SearchComponent, PeopleListComponent, ShowsListComponent, - LoginComponent, PasswordValidator, - AccountComponent, - UnauthorizedComponent, - LogoutComponent, - FallbackDirective, - AutologinComponent, - AuthPipe + FallbackDirective ], imports: [ BrowserModule, HttpClientModule, + AuthRoutingModule, AppRoutingModule, BrowserAnimationsModule, MatSnackBarModule, @@ -95,56 +73,8 @@ export function loadConfig(oidcConfigService: OidcConfigService) FormsModule, MatTabsModule, MatCheckboxModule, - AuthModule.forRoot() - ], - entryComponents: [ - AccountComponent - ], - providers: [ - OidcConfigService, - { - provide: APP_INITIALIZER, - useFactory: loadConfig, - deps: [OidcConfigService], - multi: true - }, - AuthGuard.guards, - { - provide: HTTP_INTERCEPTORS, - useClass: AuthorizerInterceptor, - multi: true - } + AuthModule ], bootstrap: [AppComponent] }) -export class AppModule -{ - constructor(private oidcSecurityService: OidcSecurityService, private oidcConfigService: OidcConfigService, http: HttpClient) - { - this.oidcConfigService.onConfigurationLoaded.subscribe((configResult: ConfigResult) => - { - const config: OpenIdConfiguration = { - stsServer: configResult.customConfig.stsServer, - redirect_url: "/", - post_logout_redirect_uri: "/logout", - client_id: 'kyoo.webapp', - response_type: "code", - trigger_authorization_result_event: true, - scope: "openid profile offline_access kyoo.read kyoo.play", - silent_renew: false, - silent_renew_url: "/silent", - use_refresh_token: false, - start_checksession: true, - - forbidden_route: '/Forbidden', - unauthorized_route: '/Unauthorized', - log_console_warning_active: true, - log_console_debug_active: true - }; - - this.oidcSecurityService.setupModule(config, configResult.authWellknownEndpoints); - }); - - http.get("/api/account/default-permissions").subscribe((result: string[]) => AuthGuard.defaultPermissions = result); - } -} +export class AppModule { } diff --git a/src/app/account/account.component.html b/src/app/auth/account/account.component.html similarity index 100% rename from src/app/account/account.component.html rename to src/app/auth/account/account.component.html diff --git a/src/app/account/account.component.scss b/src/app/auth/account/account.component.scss similarity index 100% rename from src/app/account/account.component.scss rename to src/app/auth/account/account.component.scss diff --git a/src/app/account/account.component.ts b/src/app/auth/account/account.component.ts similarity index 96% rename from src/app/account/account.component.ts rename to src/app/auth/account/account.component.ts index 9e0e026d..9c53e56b 100644 --- a/src/app/account/account.component.ts +++ b/src/app/auth/account/account.component.ts @@ -1,7 +1,7 @@ import {Component, ElementRef, Inject, ViewChild} from '@angular/core'; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog"; -import {Account} from "../../models/account"; import {HttpClient} from "@angular/common/http"; +import {Account} from "../../../models/account"; @Component({ diff --git a/src/app/auth/auth-routing.module.ts b/src/app/auth/auth-routing.module.ts new file mode 100644 index 00000000..20253f5d --- /dev/null +++ b/src/app/auth/auth-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from "@angular/router"; +import {UnauthorizedComponent} from "./unauthorized/unauthorized.component"; +import {LoginComponent} from "./login/login.component"; +import {LogoutComponent} from "./logout/logout.component"; +import {AutologinComponent} from "./autologin/autologin.component"; + +const routes: Routes = [ + {path: "login", component: LoginComponent}, + {path: "logout", component: LogoutComponent}, + {path: "autologin", component: AutologinComponent}, + {path: "unauthorized", component: UnauthorizedComponent}, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AuthRoutingModule { } diff --git a/src/app/auth/auth.module.ts b/src/app/auth/auth.module.ts new file mode 100644 index 00000000..62484903 --- /dev/null +++ b/src/app/auth/auth.module.ts @@ -0,0 +1,115 @@ +import {APP_INITIALIZER, NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {AccountComponent} from "./account/account.component"; +import {AuthPipe} from "./misc/auth.pipe"; +import {AutologinComponent} from "./autologin/autologin.component"; +import {UnauthorizedComponent} from "./unauthorized/unauthorized.component"; +import {LogoutComponent} from "./logout/logout.component"; +import {LoginComponent} from "./login/login.component"; +import {ConfigResult, OidcConfigService, OidcSecurityService, OpenIdConfiguration, AuthModule as OidcModule} from "angular-auth-oidc-client"; +import {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from "@angular/common/http"; +import {AuthGuard} from "./misc/authenticated-guard.service"; +import {AuthorizerInterceptor} from "./misc/authorizer-interceptor.service"; +import {MatFormFieldModule} from "@angular/material/form-field"; +import {MatIconModule} from "@angular/material/icon"; +import {MatInputModule} from "@angular/material/input"; +import {AppComponent} from "../app.component"; +import {MatDialogModule} from "@angular/material/dialog"; +import {MatButtonModule} from "@angular/material/button"; +import {BrowserModule} from "@angular/platform-browser"; +import {AppRoutingModule} from "../app-routing.module"; +import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; +import {MatSnackBarModule} from "@angular/material/snack-bar"; +import {MatProgressBarModule} from "@angular/material/progress-bar"; +import {MatSelectModule} from "@angular/material/select"; +import {MatMenuModule} from "@angular/material/menu"; +import {MatSliderModule} from "@angular/material/slider"; +import {MatTooltipModule} from "@angular/material/tooltip"; +import {MatRippleModule} from "@angular/material/core"; +import {MatCardModule} from "@angular/material/card"; +import {FormsModule, ReactiveFormsModule} from "@angular/forms"; +import {MatTabsModule} from "@angular/material/tabs"; +import {MatCheckboxModule} from "@angular/material/checkbox"; + +export function loadConfig(oidcConfigService: OidcConfigService) +{ + return () => oidcConfigService.load_using_stsServer(window.location.origin); +} + +@NgModule({ + declarations: [ + AutologinComponent, + AuthPipe, + AccountComponent, + UnauthorizedComponent, + LogoutComponent, + LoginComponent, + ], + imports: [ + CommonModule, + MatButtonModule, + MatIconModule, + MatSelectModule, + MatMenuModule, + MatSliderModule, + MatTooltipModule, + MatRippleModule, + MatCardModule, + MatInputModule, + MatFormFieldModule, + MatDialogModule, + FormsModule, + MatTabsModule, + MatCheckboxModule, + OidcModule.forRoot() + ], + entryComponents: [ + AccountComponent + ], + providers: [ + OidcConfigService, + { + provide: APP_INITIALIZER, + useFactory: loadConfig, + deps: [OidcConfigService], + multi: true + }, + AuthGuard.guards, + { + provide: HTTP_INTERCEPTORS, + useClass: AuthorizerInterceptor, + multi: true + } + ] +}) +export class AuthModule +{ + constructor(private oidcSecurityService: OidcSecurityService, private oidcConfigService: OidcConfigService, http: HttpClient) + { + this.oidcConfigService.onConfigurationLoaded.subscribe((configResult: ConfigResult) => + { + const config: OpenIdConfiguration = { + stsServer: configResult.customConfig.stsServer, + redirect_url: "/", + post_logout_redirect_uri: "/logout", + client_id: 'kyoo.webapp', + response_type: "code", + trigger_authorization_result_event: true, + scope: "openid profile offline_access kyoo.read kyoo.play", + silent_renew: false, + silent_renew_url: "/silent", + use_refresh_token: false, + start_checksession: true, + + forbidden_route: '/Forbidden', + unauthorized_route: '/Unauthorized', + log_console_warning_active: true, + log_console_debug_active: true + }; + + this.oidcSecurityService.setupModule(config, configResult.authWellknownEndpoints); + }); + + http.get("/api/account/default-permissions").subscribe((result: string[]) => AuthGuard.defaultPermissions = result); + } +} diff --git a/src/app/services/auth.service.ts b/src/app/auth/auth.service.ts similarity index 100% rename from src/app/services/auth.service.ts rename to src/app/auth/auth.service.ts diff --git a/src/app/autologin/autologin.component.html b/src/app/auth/autologin/autologin.component.html similarity index 100% rename from src/app/autologin/autologin.component.html rename to src/app/auth/autologin/autologin.component.html diff --git a/src/app/autologin/autologin.component.scss b/src/app/auth/autologin/autologin.component.scss similarity index 100% rename from src/app/autologin/autologin.component.scss rename to src/app/auth/autologin/autologin.component.scss diff --git a/src/app/autologin/autologin.component.ts b/src/app/auth/autologin/autologin.component.ts similarity index 90% rename from src/app/autologin/autologin.component.ts rename to src/app/auth/autologin/autologin.component.ts index 952b7242..a019789e 100644 --- a/src/app/autologin/autologin.component.ts +++ b/src/app/auth/autologin/autologin.component.ts @@ -1,5 +1,5 @@ import {Component, OnInit} from '@angular/core'; -import {AuthService} from "../services/auth.service"; +import {AuthService} from "../auth.service"; @Component({ selector: 'app-autologin', diff --git a/src/app/login/login.component.html b/src/app/auth/login/login.component.html similarity index 100% rename from src/app/login/login.component.html rename to src/app/auth/login/login.component.html diff --git a/src/app/login/login.component.scss b/src/app/auth/login/login.component.scss similarity index 100% rename from src/app/login/login.component.scss rename to src/app/auth/login/login.component.scss diff --git a/src/app/login/login.component.ts b/src/app/auth/login/login.component.ts similarity index 93% rename from src/app/login/login.component.ts rename to src/app/auth/login/login.component.ts index e1c3daa3..04ae4068 100644 --- a/src/app/login/login.component.ts +++ b/src/app/auth/login/login.component.ts @@ -3,7 +3,6 @@ import {ActivatedRoute, Router} from "@angular/router"; import {catchError} from "rxjs/operators"; import {EMPTY} from "rxjs"; import {HttpClient} from "@angular/common/http"; -import {MatSnackBar} from "@angular/material/snack-bar"; @Component({ selector: 'app-login', @@ -20,7 +19,7 @@ export class LoginComponent loginErrors: [{code: string, description: string}]; registerErrors: [{code: string, description: string}]; - constructor(private router: Router, private route: ActivatedRoute, private http: HttpClient, private snackBar: MatSnackBar) + constructor(private router: Router, private route: ActivatedRoute, private http: HttpClient) { if (this.route.snapshot.queryParams["ReturnUrl"]) this.redirectURI = this.route.snapshot.queryParams["ReturnUrl"]; diff --git a/src/app/logout/logout.component.html b/src/app/auth/logout/logout.component.html similarity index 100% rename from src/app/logout/logout.component.html rename to src/app/auth/logout/logout.component.html diff --git a/src/app/logout/logout.component.scss b/src/app/auth/logout/logout.component.scss similarity index 100% rename from src/app/logout/logout.component.scss rename to src/app/auth/logout/logout.component.scss diff --git a/src/app/logout/logout.component.ts b/src/app/auth/logout/logout.component.ts similarity index 100% rename from src/app/logout/logout.component.ts rename to src/app/auth/logout/logout.component.ts diff --git a/src/app/misc/auth.pipe.ts b/src/app/auth/misc/auth.pipe.ts similarity index 90% rename from src/app/misc/auth.pipe.ts rename to src/app/auth/misc/auth.pipe.ts index 46584cd1..37607129 100644 --- a/src/app/misc/auth.pipe.ts +++ b/src/app/auth/misc/auth.pipe.ts @@ -1,5 +1,4 @@ import {Injector, Pipe, PipeTransform} from '@angular/core'; -import {AuthService} from "../services/auth.service"; import {HttpClient, HttpHeaders} from "@angular/common/http"; import {OidcSecurityService} from "angular-auth-oidc-client"; @@ -8,7 +7,7 @@ import {OidcSecurityService} from "angular-auth-oidc-client"; }) export class AuthPipe implements PipeTransform { - private oidcSecurity: OidcSecurityService + private oidcSecurity: OidcSecurityService; constructor(private injector: Injector, private http: HttpClient) {} diff --git a/src/app/misc/guards/authenticated-guard.service.ts b/src/app/auth/misc/authenticated-guard.service.ts similarity index 91% rename from src/app/misc/guards/authenticated-guard.service.ts rename to src/app/auth/misc/authenticated-guard.service.ts index c9852a43..3bb01338 100644 --- a/src/app/misc/guards/authenticated-guard.service.ts +++ b/src/app/auth/misc/authenticated-guard.service.ts @@ -1,4 +1,4 @@ -import { Injectable } from '@angular/core'; +import {Injectable} from '@angular/core'; import { CanActivate, CanLoad, @@ -9,8 +9,8 @@ import { UrlTree, Router } from '@angular/router'; -import { Observable } from 'rxjs'; -import {AuthService} from "../../services/auth.service"; +import {Observable} from 'rxjs'; +import {AuthService} from "../auth.service"; @Injectable({providedIn: "root"}) export class AuthGuard diff --git a/src/app/misc/authorizer-interceptor.service.ts b/src/app/auth/misc/authorizer-interceptor.service.ts similarity index 100% rename from src/app/misc/authorizer-interceptor.service.ts rename to src/app/auth/misc/authorizer-interceptor.service.ts diff --git a/src/app/unauthorized/unauthorized.component.html b/src/app/auth/unauthorized/unauthorized.component.html similarity index 100% rename from src/app/unauthorized/unauthorized.component.html rename to src/app/auth/unauthorized/unauthorized.component.html diff --git a/src/app/unauthorized/unauthorized.component.scss b/src/app/auth/unauthorized/unauthorized.component.scss similarity index 100% rename from src/app/unauthorized/unauthorized.component.scss rename to src/app/auth/unauthorized/unauthorized.component.scss diff --git a/src/app/unauthorized/unauthorized.component.ts b/src/app/auth/unauthorized/unauthorized.component.ts similarity index 87% rename from src/app/unauthorized/unauthorized.component.ts rename to src/app/auth/unauthorized/unauthorized.component.ts index 0464fe46..fad930c3 100644 --- a/src/app/unauthorized/unauthorized.component.ts +++ b/src/app/auth/unauthorized/unauthorized.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import {AuthService} from "../services/auth.service"; +import {AuthService} from "../auth.service"; @Component({ selector: 'app-unauthorized',