1. 程式人生 > >laravel 權限管理 常用命令

laravel 權限管理 常用命令

perm lar rem class 直接 用戶角色 log pos 列表

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(); //所有適用於用戶的權限(繼承和直接)

laravel 權限管理 常用命令