diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d76cb94..ca7d8a5 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -4,7 +4,9 @@ // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; -use \App\Models\User; +use App\Models\User; +use Spatie\Permission\Models\Role; +use Spatie\Permission\Models\Permission; class DatabaseSeeder extends Seeder { @@ -13,15 +15,33 @@ class DatabaseSeeder extends Seeder */ public function run(): void { + $role = Role::create(['name' => 'all access']); + $permissions = json_decode( + file_get_contents(__DIR__.'/permissions.json'), + false + ); + foreach($permissions->data as $key => $permission) + { + $p = Permission::create(['name' => $permission]); + $role->givePermissionTo($p); + } + + $email = 'admin@example.com'; + $user = User::where( + 'email', $email + )->first(); if ( - null !== User::where( - 'email', $email - )->first() + null !== $user ) { + echo 'Not creating a user because user with admin@example.com already exists'. + PHP_EOL; + $user->assignRole('all access'); return; } - User::factory()->count(1) + echo 'Creating user with email admin@example.com'.PHP_EOL; + $user = User::factory()->count(1) ->create(compact('email')); + $user[0]->assignRole('all access'); } } diff --git a/database/seeders/permissions.json b/database/seeders/permissions.json new file mode 100644 index 0000000..1ce79e4 --- /dev/null +++ b/database/seeders/permissions.json @@ -0,0 +1,16 @@ +{ + "data": [ + "create clients", + "edit clients", + "delete clients", + "view clients", + "create logs", + "edit logs", + "delete logs", + "view logs", + "create users", + "edit users", + "delete users", + "view users" + ] +} \ No newline at end of file