我已将kodeine用于Laravel用户角色和权限。安装和所有迁移都没问题。让我烦恼的唯一问题是在哪里进行角色分配:
$user->assignRole($roleAdmin);
我尝试在postLogin
内创建AuthController
,但我相信创建此功能会覆盖Laravel内置的身份验证。我对内置身份验证没有任何问题,我的问题是找到为当前登录用户分配角色和权限的最佳位置。
答案 0 :(得分: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');
});
}