JB Nizet が最も近い回答をしました。
ユーザーがログインするたびに、すべてのアクセス許可がバックエンドからフロントエンドに送信され、localStorage 配列に格納されるようにしました。
次に、Angular2 アプリにグローバル サービス クラスを挿入しました。
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;
}
}
これは、コンポーネントに注入して、アプリのどこからでも呼び出すことができます
<div *ngIf="_permissionsEngine.hasPermission('add_users')"></div>
これが誰かを助けることを願っています!