Anzeigen verschiedener Inhalte in einer einzelnen Ansicht, basierend auf der Rolle des Benutzers

Nehmen wir an, wir haben ein Menü in meiner eckigen SPA-Anwendung. Jetzt möchte ich, dass die grundlegenden Optionen allen Benutzern angezeigt werden, z. B. zu Hause, über uns, Möglichkeiten für Spediteure usw.

Ich möchte auch mehrere andere Optionen haben, wie z. B. Benutzer verwalten, Beiträge verwalten usw., die nur einem Administrator angezeigt werden.

Angenommen, wir haben einen API-Zugriffspunkt, der mir die Benutzerrolle zur Verfügung stellt, oder besser gesagt, die Benutzerrolle befindet sich innerhalb des Objekts, das von / api / users / me abgerufen wurde.

Wie lassen sich diese Verwaltungstools am besten kapseln, damit sie von regulären Benutzern angezeigt werden?

Gibt es eine Art Vererbung zwischen Ansichten? Wie in Django? Gibt es eine Möglichkeit, die DOM-Elemente vor nicht autorisierten Benutzern zu verbergen? (Ja, ich weiß, dass es sich um Clients handelt).

Ich würde es wirklich vorziehen, keine unterschiedlichen Ansichten für das Menü zu verwenden, da es eine generische Komponente sein soll.

Ich nehme an, wenn die Antwort auf alle meine vorherigen Fragen Nein lautet, bleibt die Frage: Was ist die beste Implementierung dafür? Eine benutzerdefinierte Direktive ("E" + "A") lautet:

<limitedAccss admin>Edit page</limitedAccess>
 <limitedAccss user>view page</limitedAccess>

oder vielleicht einfach die reguläre ng-show mit einer bedingung für das benutzerobjekt benutzen ?.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage