63 lines
1.7 KiB
PHP
63 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class RolesAndAdminSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$roleNames = [
|
|
'administrator',
|
|
'pengurus_ibadah',
|
|
'petugas_pendataan',
|
|
'pemangku_kebijakan',
|
|
];
|
|
|
|
foreach ($roleNames as $name) {
|
|
Role::firstOrCreate(['name' => $name, 'guard_name' => 'web']);
|
|
}
|
|
|
|
$users = [
|
|
[
|
|
'email' => 'admin@webgis.local',
|
|
'name' => 'Administrator',
|
|
'role' => 'administrator',
|
|
'password' => 'admin123',
|
|
],
|
|
[
|
|
'email' => 'pengurus@webgis.local',
|
|
'name' => 'Pengurus Ibadah',
|
|
'role' => 'pengurus_ibadah',
|
|
'password' => 'password123',
|
|
],
|
|
[
|
|
'email' => 'petugas@webgis.local',
|
|
'name' => 'Petugas Pendataan',
|
|
'role' => 'petugas_pendataan',
|
|
'password' => 'password123',
|
|
],
|
|
[
|
|
'email' => 'kebijakan@webgis.local',
|
|
'name' => 'Pemangku Kebijakan',
|
|
'role' => 'pemangku_kebijakan',
|
|
'password' => 'password123',
|
|
],
|
|
];
|
|
|
|
foreach ($users as $data) {
|
|
$user = User::firstOrCreate(
|
|
['email' => $data['email']],
|
|
[
|
|
'name' => $data['name'],
|
|
'password' => bcrypt($data['password']),
|
|
]
|
|
);
|
|
$user->syncRoles([$data['role']]);
|
|
}
|
|
}
|
|
}
|