Initial commit: Struktur aplikasi ilycats
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Role;
|
||||
use App\Models\User;
|
||||
use App\Models\RolePermission;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoleAndUserSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// 1. Definisikan Modul yang ada di aplikasi ilycats
|
||||
$modules = [
|
||||
'cats' => 'Manajemen Kucing',
|
||||
'matting' => 'Breeding & Matting',
|
||||
'treatments'=> 'Rekam Medis',
|
||||
'inventory' => 'Logistik & Stok',
|
||||
'users' => 'Manajemen User',
|
||||
'roles' => 'Hak Akses',
|
||||
'logs' => 'Audit Trail',
|
||||
'settings' => 'Pengaturan Sistem'
|
||||
];
|
||||
|
||||
DB::transaction(function () use ($modules) {
|
||||
// 2. Buat Role Admin
|
||||
$adminRole = Role::updateOrCreate(
|
||||
['slug' => 'admin'],
|
||||
['name' => 'Administrator']
|
||||
);
|
||||
|
||||
// Berikan Admin akses FULL ke semua modul
|
||||
foreach ($modules as $slug => $label) {
|
||||
RolePermission::updateOrCreate([
|
||||
'role_id' => $adminRole->id,
|
||||
'module_slug' => $slug,
|
||||
], [
|
||||
'can_read' => 1, 'can_create' => 1, 'can_update' => 1, 'can_delete' => 1
|
||||
]);
|
||||
}
|
||||
|
||||
// 3. Buat Role Staff
|
||||
$staffRole = Role::updateOrCreate(
|
||||
['slug' => 'staff'],
|
||||
['name' => 'Staff Operasional']
|
||||
);
|
||||
|
||||
// Berikan Staff akses terbatas (Hanya Operasional & Tanpa Delete)
|
||||
$staffModules = ['cats', 'matting', 'treatments', 'inventory'];
|
||||
foreach ($staffModules as $slug) {
|
||||
RolePermission::updateOrCreate([
|
||||
'role_id' => $staffRole->id,
|
||||
'module_slug' => $slug,
|
||||
], [
|
||||
'can_read' => 1, 'can_create' => 1, 'can_update' => 1, 'can_delete' => 0
|
||||
]);
|
||||
}
|
||||
|
||||
// 4. Buat User Admin Pertama (Agar bisa login)
|
||||
User::updateOrCreate(
|
||||
['email' => 'admin@ilycats.com'],
|
||||
[
|
||||
'name' => 'Super Admin',
|
||||
'password' => Hash::make('password123'), // Silakan ganti nanti
|
||||
'role_id' => $adminRole->id,
|
||||
'role' => 'admin', // Menjaga kompatibilitas kode lama Anda
|
||||
]
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user