Maison > développement back-end > tutoriel php > gestion des autorisations Laravel

gestion des autorisations Laravel

不言
Libérer: 2023-03-24 19:32:01
original
3056 Les gens l'ont consulté

Le contenu de cet article concerne la gestion des autorisations de Laravel, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Utilisez ce package :
https:/. / github.com/spatie/laravel-permission

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

Méthodes supplémentaires :

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

Recommandations associées :

Le modèle de modèle de Laravel est utilisé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal