Ich habe ein neues eckiges 2-Projekt gestartet, in meiner Anwendung haben 3 Arten von Benutzern (admin, Kunde und Firma). Wie kann man Kunden vom Zugriff auf Admin-Benutzermenüs einschränken?Wie man Menü basierend auf Benutzerrollen in Winkel 2 2
Antwort
Sie sollten die ActivatedRoute Schnittstelle implementieren Navigation zu einer bestimmten URL/Ressource enter link description here
Sie sollten zwei Dinge beschränken tun: 1. Sichern Sie Ihre Routen durch diese Menüpunkte zugegriffen werden 2. Setzen Sie diese nicht machen Menüelemente für Benutzer, die keinen Zugriff darauf haben sollen.
Berechtigungen können datenbankgesteuert sein. Sie können Routen mit Wächtern in Winkel 2 schützen, und Menüelemente können beim Rendern mit der Anweisung ng-if eingeschränkt werden.
https://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html
Ich mag auf eine Datenbank mein Menü Stimmen zu halten. Dies gibt mir sicherere Serversteuerelemente, die Berechtigungen für Benutzerebenen behandeln, die Aktionen erlauben/verweigern. Wenn Sie daran interessiert sind nur in der Client-Seite sind, können Sie einfach eine Variable auf dem Routing-Modul hinzufügen:
{ path: 'profile/:user_level', component: ProfileComponent }
Dann können Sie die Unterschiede innerhalb Ihrer Komponenten implementieren. Wie kann sichergestellt werden, dass ein Benutzer nur Inhalte für sein Level sehen kann? Implementieren Sie einfach ein Steuerelement, das überprüft, ob der Sitzungsbenutzer versucht, einen Inhalt anzuzeigen, der nicht für ihn bestimmt ist. (Beispiel innerhalb ProfileComponent)
this.user_level= + params['user_level'];
this.utilityService.checkUserLevel(this.user_level);
UtilityService:
checkUserLevel(url_liv_serial: number) {
let utente: Utente = JSON.parse(localStorage.getItem('currentUser'));
if (url_liv_serial < utente.ute_liv_serial) {
this.router.navigate(['/login']);
let snackBarRef = this.snackBar.open('Access denied', 'Close', {
duration: Constants.short_time_sb
});
}
}
können Sie ngx-permissions Bibliothek verwenden. Es unterstützt Lazy Loading, isoliert Lazy Loading, dann sonst Syntax. Ladebibliothek
@NgModule({
imports: [
NgxPermissionsModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
Lastrollen
this.ngxRolesService.addRole('GUEST',() => {
return true;
});
Sichere Wurzel
const appRoutes: Routes = [
{ path: 'home',
component: HomeComponent,
canActivate: [NgxPermissionsGuard],
data: {
permissions: {
only: 'GUEST'
}
}
},
];
Eine detaillierte Dokumentation finden Sie auf WIKI Seite finden
- 1. Seitenzugriff basierend auf Benutzertyp in Winkel 2
- 2. Validierung basierend auf Tastendruck in Winkel 2
- 3. Wie Zahl formatiert werden basierend auf Benutzergebietsschema in Winkel 2
- 4. Wie in Winkel 2
- 5. wie in Winkel 2
- 6. Debugging Winkel 2 Leistung
- 7. Wie kann ein dynamisches Menü in Winkel 2 erstellt werden?
- 8. Get Index Wert basierend auf Bedingung in Winkel 2 Vorlage
- 9. Unterschiede zwischen Winkel 2, Winkel 2 Universal
- 10. Werkstoff- und Winkel 2
- 11. Wie in Winkel 2 Karma
- 12. wie mit Winkel 2
- 13. Wie man verspricht mit Winkel 2 Meteor
- 14. Wie in Winkel 2 Stil
- 15. Wie document.body in Winkel 2
- 16. Formcontrol in Winkel 2
- 17. Wie benutze ich das kendo-ui Menü mit Winkel 2?
- 18. Bildabmessung in Winkel 2
- 19. Buttons in Winkel 2
- 20. Schienen Upgrade auf Winkel 2
- 21. Winkel 2 - jquery nicht definiert ist in .Net Winkel 2
- 22. Internationalisierung in Winkel 2
- 23. Wie Winkel 1.3.4 und Winkel 2 zusammen
- 24. beobachtbare in Winkel 2
- 25. Warnmeldung in Winkel 2
- 26. Wie überprüft man das Element im Ansichtsfenster auf Winkel 2?
- 27. Wie Zufallszahl Eingabeformular Gruppenindex auf Winkel 2
- 28. NgIF Analog in Winkel 2
- 29. Winkel 2 Sichtbarkeit des Prüfteils
- 30. Benutzerdefiniertes sidenav in winkel 2