Laravel 5.1 ACL使用spatie/lavel权限


Laravel 5.1 ACL using spatie/laravel-permission

我已经在laravel 5.1和4.2.11中阅读了有关策略和门的内容。laravel 5.1的新手。

我在laravel上有一个巨大的项目,我需要构建ACL或类似的东西。我尝试过使用这个名为spatie/laravel-permission的包,并成功地设置了它。

然后,我继续努力,试图弄清楚迁移已经创建,你可以从盒子里取出一些锅炉板。

虽然我没有理解,但如果管理员想通过控制器中的一些方法直接从前端分配多个角色和权限,该怎么办?

我尝试过从php artisan tinker分配多个角色和权限。

我有一个方法assignRole(),我想为管理员直接分配的用户分配多个角色和权限。

包中定义了assignRole()和givePermissions()方法,我该如何利用它们??

根据模型,我已经在我的模板中进行了尝试

@foreach($users as $user )
{{$user->email}}
@foreach($user->roles as $role)
{{$role->name}}
@endforeach
@foreach($user->permisssions as $permission )
{{$permission->name}}
@endforeach
@endforeach

这显示了经过身份验证的用户权限。

mycontroller.php

public function showRolesandpermission(){
$users = Auth::user();
return view("admin.assignrole", compact("users"));
}
public function update(Request $request, $id){
$user = User::whereID($id)->firstOrFail();

if(count($user)>0)
{
$roles = [];
$permissions = [];
foreach(Role::all() as $r)
            {
                $roles[$r->id] = $r->name;
            }
foreach(Permission::all() as $permissions)
            {
                $permissions[$permissions->id] = $permissions->name;
            }
$role1 = Request::get("role");
$perm = Request::get("permissions");
if(isset($role1) && isset($perm)){
$user->roles->update([
$request->name = $request->name
]);
$user->permissions->update([
$request->name = $request->name
]);
$user->save();
return redirect::back();
} 
}
}

我如何利用这一点,直接从前端编辑用户权限??我们如何使用类似多选的功能来更新用户角色和权限。

努力尝试,但很少提示会有帮助。

Checkout Laravel Backpack的权限管理器。它建立在spatie/lavevel权限之上,还提供了一个很好的GUI来管理权限。可能正是你所需要的。

https://github.com/Laravel-Backpack/permissionmanager