70 lines
2.5 KiB
PHP
70 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Config;
|
|
|
|
use CodeIgniter\Config\BaseConfig;
|
|
|
|
/**
|
|
* Pemetaan fitur admin CI4 ke grup Ion Auth (nama grup, case-insensitive).
|
|
* Selaras `application/modules/admin/config/ci_bootstrap.php` — `page_auth` + useful_links.
|
|
*
|
|
* Daftar kosong = semua admin yang sudah login (filter authadmin) boleh mengakses.
|
|
*
|
|
* Grup `supervisor`: akses seperti HRD pada fitur terdaftar, tetapi data dibatasi ke cabang
|
|
* (`pegawai.kantor` sama dengan kantor pada baris pegawai pemegang token admin).
|
|
*
|
|
* Login `admin_auth_source` = `pegawai` (username/password sama aplikasi mobile, tanpa baris
|
|
* `admin_users` terhubung lewat `id_pegawai` + grup): hanya fitur di
|
|
* {@see self::$pegawaiPanelFeatures}. Bila pegawai punya akun Ion terhubung, login mobile
|
|
* memakai sesi `admin_users` + grup (supervisor, HRD, …) seperti login admin biasa.
|
|
*/
|
|
class AdminAccess extends BaseConfig
|
|
{
|
|
/**
|
|
* Fitur panel web yang boleh untuk login pegawai saja (bukan akun Ion `admin_users`).
|
|
*
|
|
* @var list<string>
|
|
*/
|
|
public array $pegawaiPanelFeatures = [
|
|
'dashboard',
|
|
'apk_link',
|
|
];
|
|
|
|
/**
|
|
* Kunci fitur (dipakai `canAccess('...')` dan controller).
|
|
*
|
|
* @var array<string, list<string>>
|
|
*/
|
|
public array $features = [
|
|
/** Referensi form pegawai (jabatan, unit, dll.) — semua sesi admin panel */
|
|
'references' => [],
|
|
'dashboard' => [],
|
|
'presensi' => [],
|
|
/** Management jadwal (master jam kerja) — hanya webmaster & HRD */
|
|
'presensi_jadwal' => ['webmaster', 'hrd'],
|
|
/** Hari libur perusahaan — hanya webmaster & HRD */
|
|
'presensi_libur' => ['webmaster', 'hrd'],
|
|
/** Master kantor, unit, jabatan, golongan, berita — hanya webmaster & HRD */
|
|
'perusahaan' => ['webmaster', 'hrd'],
|
|
/** Tambah pegawai (form create + API create) — hanya webmaster & HRD */
|
|
'pegawai_tambah' => ['webmaster', 'hrd'],
|
|
'pegawai' => ['webmaster', 'hrd', 'supervisor'],
|
|
'cuti' => ['webmaster', 'hrd', 'supervisor'],
|
|
'laporan' => ['webmaster', 'hrd', 'supervisor'],
|
|
'panel' => ['webmaster'],
|
|
'utilitas' => ['webmaster'],
|
|
/** Link APK sidebar — sama `useful_links` CI3 */
|
|
'apk_link' => [
|
|
'webmaster',
|
|
'penyelenggara',
|
|
'operator_cabang',
|
|
'operator_ranting',
|
|
'operator_sekolah',
|
|
'admin_soal',
|
|
'operator_soal',
|
|
],
|
|
];
|
|
}
|