Home > Backend Development > PHP Tutorial > laravel permission management

laravel permission management

不言
Release: 2023-03-24 19:32:01
Original
3055 people have browsed it

The content of this article is about laravel permission management, which has certain reference value. Now I share it with everyone. Friends in need can refer to it

Use this package:
https:// github.com/spatie/laravel-permission

Chinese translation:
https://laravel-china.org/topics/8018/extension-recommendation-role-and-authority-control-in-spatielaravel -permission-laravel-applications

Supplementary methods:

#获取所有拥有这个权限的用户:
$users = User::role($role_name)->get();
Copy after login
$role=Role::find($role_id);
#获取这个角色已经有的权限
$permissions = $role->permissions;
#获取这个角色没有的权限
$diffpermissions = Permission::whereNotIn('id', $permissions->pluck('id'))->get();
Copy after login
#清除现有权限及缓存,并重新分配权限,权限可以是数组$role->syncPermissions($permissions);
Copy after login
#获取一个用户的所有权限,$user是User的一个实例$permissions = $user->getAllPermissions();
Copy after login
#给用户分配角色,使其继承这个角色的的权限。
$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(); // 返回一个集合
Copy after login
#可以使用下面其中一种方法将多个权限同步赋予到一个角色:
$role->syncPermissions($permissions);
$permission->syncRoles($roles);
#可以使用以下其中一种方法通过角色去删除权限:
$role->revokePermissionTo($permission);$permission->removeRole($role);
Copy after login

Related recommendations:

laravel template yeild use

The above is the detailed content of laravel permission management. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template