Skip to content

Commit c106688

Browse files
author
Bernardo-MG
committed
Updated guards
1 parent cd996f4 commit c106688

2 files changed

Lines changed: 34 additions & 68 deletions

File tree

Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,27 @@
1-
import { Injectable } from '@angular/core';
2-
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
3-
import { Observable } from 'rxjs';
1+
import { inject } from '@angular/core';
2+
import { Router } from '@angular/router';
43
import { SecurityContainer } from '../services/security-container.service';
54

65
/**
76
* Logged in guard. Allows access only if the user in session is logged in. Otherwise redirects
87
* to the login form.
98
*/
10-
@Injectable({
11-
providedIn: 'root'
12-
})
13-
export class LoggedInGuard implements CanActivate {
9+
export const LoggedInGuard = () => {
10+
const router = inject(Router);
11+
const securityContainer = inject(SecurityContainer)
12+
const logged = securityContainer.getStatus().logged;
13+
const loginRoute = '/login';
14+
let active;
1415

15-
/**
16-
* Login form route.
17-
*/
18-
private loginRoute = '/login';
19-
20-
constructor(
21-
private router: Router,
22-
private securityContainer: SecurityContainer
23-
) { }
24-
25-
canActivate(
26-
route: ActivatedRouteSnapshot,
27-
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
28-
const logged = this.securityContainer.getStatus().logged;
29-
let active;
30-
31-
if (logged) {
32-
// Logged in
33-
active = true;
34-
} else {
35-
// Not logged in
36-
// Redirect to login
37-
this.router.navigate([this.loginRoute], { queryParams: { returnUrl: state.url } });
38-
active = false;
39-
}
40-
41-
return active;
16+
if (logged) {
17+
// Logged in
18+
active = true;
19+
} else {
20+
// Not logged in
21+
// Redirect to login
22+
router.navigate([loginRoute], { queryParams: { returnUrl: router.routerState.snapshot.url } });
23+
active = false;
4224
}
4325

26+
return active;
4427
}
Lines changed: 17 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,27 @@
1-
import { Injectable } from '@angular/core';
2-
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
3-
import { Observable } from 'rxjs';
1+
import { inject } from '@angular/core';
2+
import { Router } from '@angular/router';
43
import { SecurityContainer } from '../services/security-container.service';
54

65
/**
76
* Logged out guard. Allows access only if the user in session is logged out. Otherwise redirects
87
* to the app root URL.
98
*/
10-
@Injectable({
11-
providedIn: 'root'
12-
})
13-
export class LoggedOutGuard implements CanActivate {
9+
export const LoggedOutGuard = () => {
10+
const router = inject(Router);
11+
const securityContainer = inject(SecurityContainer)
12+
const logged = securityContainer.getStatus().logged;
13+
const homeRoute = '/';
14+
let active;
1415

15-
/**
16-
* Application home route.
17-
*/
18-
private homeRoute = '/';
19-
20-
constructor(
21-
private router: Router,
22-
private securityContainer: SecurityContainer
23-
) { }
24-
25-
canActivate(
26-
route: ActivatedRouteSnapshot,
27-
state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
28-
const logged = this.securityContainer.getStatus().logged;
29-
let active;
30-
31-
if (logged) {
32-
// Logged in
33-
// Redirect to home
34-
active = false;
35-
this.router.navigate([this.homeRoute]);
36-
} else {
37-
// Not logged in
38-
active = true;
39-
}
40-
41-
return active;
16+
if (logged) {
17+
// Logged in
18+
// Redirect to home
19+
active = false;
20+
router.navigate([homeRoute]);
21+
} else {
22+
// Not logged in
23+
active = true;
4224
}
4325

26+
return active;
4427
}

0 commit comments

Comments
 (0)