2017-04-05 5 views
3

In meinem Controller möchte ich Zugriffsmethoden wie Benutzerrolle für zB wenn Benutzerrolle Admin ist, dann muss er auf alle Methoden des Controllers zugreifen, wenn Benutzerrolle Autor ist dann hat er Zugriff auf Index, erstellen und zeigen Methode und Wenn Rolle Benutzer ist, hat er nur Zugriff auf den Index und die Methode show.Wie kann ich Controller-Methoden nach Benutzerrolle in Laravel verwalten?

+1

Überprüfen Laravel Dokument: http://www.laravel.com/docs/5.4/authorization –

+0

Verwenden Sie ein Paket für die Rollenverwaltung? –

+0

@IvankaTodorova nein Ich erstelle Pivot-Tabelle für Benutzerrolle und Prüfrolle im Modell. –

Antwort

1

Sie können einen Blick auf Gates (docs) werfen.

In Ihrem App\Providers\AuthServiceProvider add:

Gate::define('create-post', function ($user) { 
    return $user->isAuthor(); //Here you should check the users role 
}); 

Und dann in Ihrer Methode der Steuerung create():

if (Gate::allows('create-post', $post)) { 
    // The current user can create posts... 
} 

Die beiden anderen Methoden: index() und show() auf beiden Rollen zur Verfügung stehen, so gibt es keine Massnahme erforderlich.

+0

danke für das Lehren neu, aber ich muss diese Bedingung in jeder Methode des Controllers hinzufügen, und ich möchte wie von Konstruktor verwalten, damit Sie eine Idee haben, die Controller vom Konstruktor verwalten. –

Verwandte Themen