Spatie Permission 怎麼使用?

使用 Spatie Laravel-permission 進行權限管理,需先透過 Composer 安裝套件並執行遷移。接著,在 User 模型中引入 HasRoles 特徵 (Trait),即可透過建立角色 (Role) 與權限 (Permission) 並指派給使用者來完成設定。

以下為完整的實作步驟:

1. 安裝與初始化

透過終端機執行 Composer 指令進行安裝,並發布設定檔與資料庫遷移檔:

composer require spatie/laravel-permission
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan migrate

2. 模型設定

在您的 User 模型中,引入 HasRoles

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;

    // ...
}

3. 建立角色與權限

使用套件提供的 RolePermission 模型來建立資料:

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

// 建立角色
$role = Role::create(['name' => 'Writer']);

// 建立權限
$permission = Permission::create(['name' => 'edit articles']);

4. 指派權限與角色

將權限賦予角色,並將角色指派給使用者:

// 將權限賦予角色
$role->givePermissionTo($permission);

// 將角色賦予使用者
$user = User::find(1);
$user->assignRole('Writer');

5. 權限檢查 (驗證)

設定完成後,您可以輕鬆檢查使用者是否具備特定角色或權限:

// 檢查使用者是否擁有特定角色
if ($user->hasRole('Writer')) {
    // 執行對應動作
}

// 檢查使用者是否擁有特定權限
if ($user->hasPermissionTo('edit articles')) {
    // 執行對應動作
}

發佈留言