diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 77c3123..1a85516 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,5 +1,10 @@ import { Component } from '@angular/core'; -import { Router, RouterOutlet } from '@angular/router'; +import { + ActivatedRoute, + NavigationEnd, + Router, + RouterOutlet, +} from '@angular/router'; import { HeaderComponent } from './shared/components/header/header.component'; import { SidebarComponent } from './shared/components/sidebar/sidebar.component'; import { LanguageService } from './services/language.service'; @@ -10,6 +15,7 @@ import { SharedService } from './services/shared.service'; import { ContactDeleteComponent } from './components/contacts/contact-delete/contact-delete.component'; import { OverlayComponent } from './shared/components/overlay/overlay.component'; import { FirebaseService } from './services/firebase.service'; +import { filter } from 'rxjs'; @Component({ selector: 'app-root', @@ -35,6 +41,7 @@ export class AppComponent { public langService: LanguageService, public sharedService: SharedService, private firebaseService: FirebaseService, + private route: ActivatedRoute, private router: Router ) { this.isLoggedIn = this.firebaseService.getCurrentUserId(); @@ -42,9 +49,23 @@ export class AppComponent { ngOnInit() { if (this.isLoggedIn === undefined) { - this.router.navigate(['/login']); + this.checkPwResetRoute(); } else { this.router.navigate(['/summary']); } } + + checkPwResetRoute() { + this.router.events + .pipe(filter((event) => event instanceof NavigationEnd)) + .subscribe(() => { + const urlTree = this.router.parseUrl(this.router.url); + + if ( + urlTree.root.children['primary']?.segments[0]?.path !== 'pw-reset' + ) { + this.router.navigate(['/login']); + } + }); + } } diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index 6550c31..3f1edd6 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -11,6 +11,7 @@ import { TaskEditOverlayComponent } from './shared/components/overlay/task-edit- import { LoginComponent } from './components/login/login.component'; import { RegisterComponent } from './components/login/register/register.component'; import { ForgotPwComponent } from './components/login/forgot-pw/forgot-pw.component'; +import { PwResetComponent } from './components/login/forgot-pw/pw-reset/pw-reset.component'; export const routes: Routes = [ { path: '', component: SummaryComponent }, @@ -19,6 +20,7 @@ export const routes: Routes = [ { path: 'login/privacy-policy', component: PrivacyPolicyComponent }, { path: 'register', component: RegisterComponent }, { path: 'forgot-pw', component: ForgotPwComponent }, + { path: 'pw-reset', component: PwResetComponent }, { path: 'summary', component: SummaryComponent }, { path: 'add-task', component: AddTaskComponent }, { path: 'add-task/:id', component: AddTaskComponent }, diff --git a/src/app/components/login/forgot-pw/pw-reset/pw-reset.component.html b/src/app/components/login/forgot-pw/pw-reset/pw-reset.component.html index 1600c84..57c3e2d 100644 --- a/src/app/components/login/forgot-pw/pw-reset/pw-reset.component.html +++ b/src/app/components/login/forgot-pw/pw-reset/pw-reset.component.html @@ -7,7 +7,9 @@ onsubmit="return false" >
-

{{ "login.login" | translate }}

+
+
{{ "forgotPW.forgot" | translate }}
+
@@ -17,7 +19,7 @@ id="password" name="password" #password="ngModel" - [type]="loginSerivce.passwordFieldType" + [type]="loginService.passwordFieldType" placeholder="{{ 'register.password' | translate }}" class="custom-input" autocomplete="new-password" @@ -33,8 +35,8 @@ } @else { }
@@ -49,7 +51,7 @@ id="passwordConfirm" name="passwordConfirm" #passwordConfirm="ngModel" - [type]="loginSerivce.passwordFieldType" + [type]="loginService.passwordFieldType" placeholder="{{ 'register.passwordConfirm' | translate }}" class="custom-input" autocomplete="new-password" @@ -65,8 +67,8 @@ } @else { }
@@ -82,10 +84,12 @@