diff --git a/rossa-tech-cli/src/app/auth/pageSecurity.service.ts b/rossa-tech-cli/src/app/auth/pageSecurity.service.ts new file mode 100644 index 0000000..7b080e5 --- /dev/null +++ b/rossa-tech-cli/src/app/auth/pageSecurity.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from "@angular/core"; +import { Router } from "@angular/router"; +import { HttpErrorResponse } from "@angular/common/http"; + +@Injectable({ + providedIn: "root", +}) +export class PageSecurityService { + constructor(private router: Router) {} + + public gotoLoginPage() { + this.router.navigate(["/login"]); + } + + public checkPageSecurityError(httpError: HttpErrorResponse) { + if (!httpError || httpError.status == null) { + throw new Error("Invalid http error object."); + } + + if (httpError.status === 401) { + this.gotoLoginPage(); + } + + if (httpError.status === 403) { + this.router.navigate(["/accessDenied"]); + } + } +}