JB Nizet 가장 가까운 답을했다.
사용자가 로그인 할 때마다 자신의 모든 권한이 백엔드에서 프론트 엔드로 전송되어 localStorage 배열에 저장되도록 만들었습니다.
그때 나는이 사람을 도움이 같은
로
import { Injectable, Inject } from '@angular/core';
import { Observable } from "rxjs/Observable";
import globals = require('./../globals');
import { ShoppingCart } from './../Models/ShoppingCart';
@Injectable()
export class PermissionsEngine {
private userPermissions: Array<String> = Array<String>();
private permissionsString = "";
constructor() {
this.calcPermissions();
}
calcPermissions() {
this.permissionsString = localStorage.getItem("permissions");
if (this.permissionsString) {
this.userPermissions = this.permissionsString.split(",");
} else {
this.userPermissions = new Array<String>();
}
}
hasPermission(_slug: string) {
if (this.userPermissions.indexOf(_slug) != -1) {
return true;
}
return false;
}
}
이 구성 요소에 주입 앱 어디서나 호출 할 수 있습니다 내 angular2 응용 프로그램에
<div *ngIf="_permissionsEngine.hasPermission('add_users')"></div>
희망을 글로벌 서비스 클래스를 주입!
에서 사용자 정의를 통해 비슷한 방식으로
can
파이프를 수행하는 서비스를 정의하고,이를 필요로하는 구성 요소를 주입 : 당신은 아우렐 리아 응용 프로그램에서의 통합에 대해 읽을 수 있습니다. https://angular.io/docs/ts/latest/guide/dependency-injection.html –authGuard를 사용하지 않는 이유는 무엇입니까? http://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html – cptnk
인증 프로그램을 구현했지만 전체 앱에서 사용자를 차단하고 싶지는 않지만 대신 버튼과 같은 모든 사람이 볼 수 있습니다. –