51 changed files with 899 additions and 260 deletions
@ -0,0 +1,36 @@ |
|||||
|
import { inject } from "@angular/core"; |
||||
|
import { |
||||
|
ActivatedRoute, |
||||
|
ActivatedRouteSnapshot, |
||||
|
CanActivateChildFn, |
||||
|
CanActivateFn, |
||||
|
Route, |
||||
|
Router, |
||||
|
RouterStateSnapshot, |
||||
|
} from "@angular/router"; |
||||
|
import { ClientAccountDTO } from "@cdk/dtos"; |
||||
|
import { ApiService } from "@cdk/services"; |
||||
|
import { NgxPermissionsService } from "ngx-permissions"; |
||||
|
|
||||
|
export const PermissionLoadGuard: CanActivateFn = async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { |
||||
|
const permissionsService = inject(NgxPermissionsService); |
||||
|
const api = inject(ApiService); |
||||
|
const auth = localStorage.getItem(api.accountKey); |
||||
|
|
||||
|
if (auth) { |
||||
|
try { |
||||
|
const authData = JSON.parse(auth) as ClientAccountDTO; |
||||
|
if (Array.isArray(authData.roleItems)) { |
||||
|
const permissionList = authData.roleItems; |
||||
|
const permissions = permissionList.reduce((a, c) => { |
||||
|
if (c.itemType === "管理端") { |
||||
|
return a.concat(String(c.id)); |
||||
|
} |
||||
|
return a; |
||||
|
}, [] as string[]); |
||||
|
permissionsService.loadPermissions(permissions); |
||||
|
} |
||||
|
} catch (error) {} |
||||
|
} |
||||
|
return true; |
||||
|
}; |
Before Width: | Height: | Size: 948 B After Width: | Height: | Size: 66 KiB |
File diff suppressed because one or more lines are too long
@ -0,0 +1,4 @@ |
|||||
|
<div class="pt-20"> |
||||
|
<nz-result nzStatus="403"></nz-result> |
||||
|
<h2 class=" text-center">你没有此页面的访问权限。</h2> |
||||
|
</div> |
@ -0,0 +1,14 @@ |
|||||
|
import { ActivatedRoute, Router } from "@angular/router"; |
||||
|
import { Component, OnInit } from "@angular/core"; |
||||
|
import { NgxPermissionsService } from "ngx-permissions"; |
||||
|
|
||||
|
@Component({ |
||||
|
selector: "app-forbidden", |
||||
|
templateUrl: "./forbidden.component.html", |
||||
|
styleUrls: ["./forbidden.component.less"], |
||||
|
}) |
||||
|
export class ForbiddenComponent implements OnInit { |
||||
|
constructor(private perm: NgxPermissionsService, private router: Router, private route: ActivatedRoute) {} |
||||
|
|
||||
|
async ngOnInit() {} |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
<div class="mt-20"> |
||||
|
<nz-result nzStatus="404"></nz-result> |
||||
|
<h2 class="text-center"> |
||||
|
此页面未找到。 |
||||
|
</h2> |
||||
|
</div> |
@ -0,0 +1,10 @@ |
|||||
|
import { Component } from '@angular/core'; |
||||
|
|
||||
|
@Component({ |
||||
|
selector: 'app-notfound', |
||||
|
templateUrl: './notfound.component.html', |
||||
|
styleUrls: ['./notfound.component.less'] |
||||
|
}) |
||||
|
export class NotfoundComponent { |
||||
|
|
||||
|
} |
@ -0,0 +1,36 @@ |
|||||
|
import { inject } from "@angular/core"; |
||||
|
import { |
||||
|
ActivatedRoute, |
||||
|
ActivatedRouteSnapshot, |
||||
|
CanActivateChildFn, |
||||
|
CanActivateFn, |
||||
|
Route, |
||||
|
Router, |
||||
|
RouterStateSnapshot, |
||||
|
} from "@angular/router"; |
||||
|
import { ClientAccountDTO } from "@cdk/dtos"; |
||||
|
import { ApiService } from "@cdk/services"; |
||||
|
import { NgxPermissionsService } from "ngx-permissions"; |
||||
|
|
||||
|
export const PermissionLoadGuard: CanActivateFn = async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => { |
||||
|
const permissionsService = inject(NgxPermissionsService); |
||||
|
const api = inject(ApiService); |
||||
|
const auth = localStorage.getItem(api.accountKey); |
||||
|
|
||||
|
if (auth) { |
||||
|
try { |
||||
|
const authData = JSON.parse(auth) as ClientAccountDTO; |
||||
|
if (Array.isArray(authData.roleItems)) { |
||||
|
const permissionList = authData.roleItems; |
||||
|
const permissions = permissionList.reduce((a, c) => { |
||||
|
if (c.itemType === "业务端") { |
||||
|
return a.concat(String(c.id)); |
||||
|
} |
||||
|
return a; |
||||
|
}, [] as string[]); |
||||
|
permissionsService.loadPermissions(permissions); |
||||
|
} |
||||
|
} catch (error) {} |
||||
|
} |
||||
|
return true; |
||||
|
}; |
Before Width: | Height: | Size: 948 B After Width: | Height: | Size: 66 KiB |
Loading…
Reference in new issue