laravel 權限管理 常用命令


use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

$role = Role::create(['name' => 'writer']);
$permission = Permission::create(['name' => 'edit articles']);


$permissions = $user->permissions;  //分配給用戶的所有權限的列表

$permissions = $user->getAllPermissions();  //獲取用戶通過角色繼承的所有權限

$roles = $user->getRoleNames(); //獲取所有已定義的角色的集合

$users = User::role('writer')->get(); //僅返回具有“作者”角色的用戶

$users = User::permission('edit articles')->get(); //僅返回具有“編輯文章”權限的用戶



給權限:
$user->givePermissionTo('edit articles');

$user->givePermissionTo('edit articles', 'delete articles'); //一次賦予多個權限

$user->givePermissionTo(['edit articles', 'delete articles'])  //一次賦予多個權限的數組



撤消:
$user->revokePermissionTo('edit articles');

$user->syncPermissions(['edit articles', 'delete articles']);//一次性撤消 並添加新的權限

$user->hasPermissionTo('edit articles');  //是否有權限

$user->hasAnyPermission(['edit articles', 'publish articles', 'unpublish articles']);  //或者用戶是否有多個權限



分配角色:
$user->assignRole('writer');

$user->assignRole('writer', 'admin');    // 一次分配多個角色

$user->assignRole(['writer', 'admin']);  // 一次分配一個角色數組

$user->removeRole('writer');  

$user->syncRoles(['writer', 'admin']);  //所有當前角色將從用戶中刪除,並由給定的數組替換

$user ->getDirectPermissions()  //或$user -> permissions;  //直接權限

$user ->getPermissionsViaRoles();   //從用戶角色繼承的權限

$user ->getAllPermissions();  //所有適用於用戶的權限(繼承和直接)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM