User Management merupakan menu utama SIMPEG yang digunakan Admin untuk mengatur hak akses dan struktur peran (role). Menu ini berisi empat submenu: User Permission, User Feature, User Role, dan Role Permission.
Menu ini digunakan untuk mengajukan permohonan perubahan hak akses oleh pengguna.
Menu ini digunakan untuk menyetujui permohonan perubahan hak akses dari pengguna.
Menu ini digunakan untuk mengatur daftar role (Admin, ASN, Operator, dst.).
Menu ini digunakan untuk mengatur daftar fitur/menu yang bisa diberi hak akses.
Menu ini digunakan mengatur daftar hak akses per user per fitur.
Menu ini digunakan untuk mengatur template hak akses per role (digunakan untuk sinkronisasi massal).
Halaman ini digunakan untuk mengajukan perubahan role/hak akses user. Setiap user dapat diberikan izin spesifik untuk menggunakan role tertentu dalam SIMPEG.
Halaman ini digunakan untuk menyetujui/approval pengajuan perubahan role/hak akses user. Setiap user dapat diberikan izin spesifik untuk menggunakan role tertentu dalam SIMPEG.
Halaman ini digunakan untuk mengatur hak akses detail per pengguna. Setiap user dapat diberikan izin spesifik untuk menggunakan fitur tertentu dalam SIMPEG.
Halaman ini digunakan untuk mendefinisikan izin akses yang dimiliki oleh suatu role. Dengan mengatur izin di level role, semua user yang terkait otomatis mewarisi izin tersebut (kecuali ada override di User Permission).
Membuat template hak akses default untuk semua kombinasi Role × Feature dengan nilai awal:
can_view = true
can_create = can_update = can_delete = false
Membuat record permission user–feature untuk seluruh user (batch & insertOrIgnore). Nilai awal sama seperti template.
User::chunkById($perPage, function ($users) use (&$processed, $totalUsers, $startTime) {
$featureIds = Feature::pluck('id');
$data = [];
foreach ($users as $user) {
foreach ($featureIds as $featureId) {
$data[] = [
'user_id' => $user->id,
'feature_id' => $featureId,
'can_view' => 1,
'can_update' => 0,
'can_create' => 0,
'can_delete' => 0,
];
}
if (count($data) >= 500) {
FeatureUserPermissions::insertOrIgnore($data);
$data = [];
}
}
if (!empty($data)) {
FeatureUserPermissions::insertOrIgnore($data);
}
});
Sinkronisasi massal: menyalin nilai Role Template ke User Permission sesuai role user saat ini.
role_id
yang akan diproses.
User::with('role')->chunkById($perPage, function ($users) use (&$processed, &$updatedRecords, $totalUsers, $startTime, &$lastOutputTime, &$lastProcessedCount) {
foreach ($users as $user) {
if (!$user->role_id) { $processed++; continue; }
$result = DB::table('feature_user_permissions as fup')
->join('role_templates as rt', function ($join) use ($user) {
$join->on('rt.role_id', '=', DB::raw($user->role_id))
->on('fup.feature_id', '=', 'rt.feature_id');
})
->where('fup.user_id', $user->id)
->update([
'fup.can_view' => DB::raw('rt.can_view'),
'fup.can_create' => DB::raw('rt.can_create'),
'fup.can_update' => DB::raw('rt.can_update'),
'fup.can_delete' => DB::raw('rt.can_delete'),
]);
$updatedRecords += $result;
$processed++;
}
});
Halaman ini berisi daftar fitur yang tersedia dalam sistem, yang dapat dihubungkan ke user maupun role untuk menentukan batasan akses. Setiap baris fitur memiliki Group, Urutan, Nama Fitur, Kode, dan kolom Nav Menu (menentukan apakah fitur ini ditampilkan pada navigasi).
Contoh: kode = dasbor_admin
, nav_menu = 1
.
Perhatikan konsistensi Kode karena dipakai sebagai pengenal di hak akses.
Jika fitur sudah dipakai di permission, penghapusan dapat diblokir oleh integritas data.
dasbor_pensiun
, pdm_profil
, approval_pensiun
agar mudah difilter.
Halaman untuk menambah/mengelola role. Role digunakan sebagai template izin pada Role Permission dan dapat ditempel ke user di User Permission.
Role yang sudah dipakai user atau memiliki template permission biasanya tidak bisa dihapus sebelum dipindahkan/bersih.