欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

laravel权限管理

程序员文章站 2022-04-11 20:34:23
...

这篇文章介绍的内容是关于laravel权限管理,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

用这个包:
https://github.com/spatie/laravel-permission

中文翻译:
https://laravel-china.org/topics/8018/extension-recommendation-role-and-authority-control-in-spatielaravel-permission-laravel-applications

补充的方法:

#获取所有拥有这个权限的用户:
$users = User::role($role_name)->get();
$role=Role::find($role_id);
#获取这个角色已经有的权限
$permissions = $role->permissions;
#获取这个角色没有的权限
$diffpermissions = Permission::whereNotIn('id', $permissions->pluck('id'))->get();
#清除现有权限及缓存,并重新分配权限,权限可以是数组$role->syncPermissions($permissions);
#获取一个用户的所有权限,$user是User的一个实例$permissions = $user->getAllPermissions();
#给用户分配角色,使其继承这个角色的的权限。
$user->assignRole('writer');
#给角色分配权限
$res = $role->givePermissionTo($permissions);
#给用户分配权限,三种方式都可以
$user->givePermissionTo('edit articles');
// You can also give multiple permission at once$user->givePermissionTo('edit articles', 'delete articles');
// You may also pass an array$user->givePermissionTo(['edit articles', 'delete articles']);
// 获取所有已定义的角色的集合
$roles = $user->getRoleNames(); // 返回一个集合
#可以使用下面其中一种方法将多个权限同步赋予到一个角色:
$role->syncPermissions($permissions);
$permission->syncRoles($roles);
#可以使用以下其中一种方法通过角色去删除权限:
$role->revokePermissionTo($permission);$permission->removeRole($role);

相关推荐:

laravel的模板yeild使用

以上就是laravel权限管理的详细内容,更多请关注其它相关文章!