feat: add spatie/laravel-permission & its implementation at panel

This commit is contained in:
idevakk
2025-09-28 23:18:06 +05:30
parent 122c4d8f89
commit af52ef6ba6
9 changed files with 475 additions and 5 deletions

View File

@@ -16,6 +16,7 @@ class DatabaseSeeder extends Seeder
// User::factory(10)->create();
$this->call([
RoleSeeder::class,
FilamentAdminSeeder::class,
]);
}

View File

@@ -6,6 +6,7 @@ use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Spatie\Permission\Models\Role;
class FilamentAdminSeeder extends Seeder
{
@@ -14,11 +15,13 @@ class FilamentAdminSeeder extends Seeder
*/
public function run(): void
{
User::factory()->create([
$user = User::factory()->create([
'name' => 'Admin',
'email' => 'admin@example.com',
'password' => Hash::make('password'),
'email_verified_at' => now(),
]);
$user->assignRole('admin');
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$role = Role::findOrCreate(name: 'admin', guardName: 'web');
Role::findOrCreate(name: 'user', guardName: 'web');
$permissionManageMails = Permission::findOrCreate(name: 'manage mails', guardName: 'web');
$role->givePermissionTo($permissionManageMails);
$permissionManageFilamentPanel = Permission::findOrCreate(name: 'manage panels', guardName: 'web');
$role->givePermissionTo($permissionManageFilamentPanel);
}
}