這篇文章介紹的內容是關於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);