2015-06-19 184 views
0

我已經使用kodeine Laravel用戶角色和權限。安裝和所有遷移沒有問題。一個困擾我的唯一的事情就是讓角色分配:Kodeine角色和權限分配Laravel 5

$user->assignRole($roleAdmin);

我試圖創建一個postLoginAuthController裏面,但我相信創造這個功能將覆蓋Laravel內置的身份驗證。我對內置身份驗證沒有任何問題,我的問題是找到爲當前登錄用戶分配角色和權限的最佳位置。

回答

0

您可以通過添加事件處理程序(或5.1中的「偵聽器」)來實現。當用戶通過身份驗證時,會觸發一個auth.login事件。在EventServiceProvider::boot()中或在自定義偵聽器類中添加該事件的偵聽器。

看到:login event handling in laravel 5

編輯:如果你想只有在用戶創建的,而不是每次登錄添加權限,你想要的事件是App\User::created代替,像這樣在app/Providers/EventServiceProvider.php

public function boot(DispatcherContract $events) 
{ 
    parent::boot($events); 

    // after a user is created, see if we can attach a school to them 
    \App\User::created(function($user) 
    { 
     $user->assignRole('admin'); 
    }); 
}