Browse Source

feature(core): add throw error when access not granted

pull/1653/head
mehmet-erim 7 years ago
parent
commit
aae372ca99
  1. 10
      npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts
  2. 2
      npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts

10
npm/ng-packs/packages/core/src/lib/guards/permission.guard.ts

@ -3,6 +3,8 @@ import { ActivatedRouteSnapshot, CanActivate } from '@angular/router';
import { Store } from '@ngxs/store';
import { Observable } from 'rxjs';
import { ConfigState } from '../states';
import { tap } from 'rxjs/operators';
import { RestOccurError } from '../actions';
@Injectable({
providedIn: 'root',
@ -12,6 +14,12 @@ export class PermissionGuard implements CanActivate {
canActivate({ data }: ActivatedRouteSnapshot): Observable<boolean> {
const resource = data.requiredPolicy as string;
return this.store.select(ConfigState.getGrantedPolicy(resource));
return this.store.select(ConfigState.getGrantedPolicy(resource)).pipe(
tap(access => {
if (!access) {
this.store.dispatch(new RestOccurError({ status: 403 }));
}
}),
);
}
}

2
npm/ng-packs/packages/theme-shared/src/lib/handlers/error.handler.ts

@ -53,7 +53,7 @@ export class ErrorHandler {
const { payload: err = {} as HttpErrorResponse | any } = res;
const body = snq(() => (err as HttpErrorResponse).error.error, DEFAULTS.defaultError.message);
if (err.headers.get('_AbpErrorFormat')) {
if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {
const confirmation$ = this.showError(null, null, body);
if (err.status === 401) {

Loading…
Cancel
Save