Peran, Hak Akses, dan Batasnya
Dua peran di DIMETIL, apa yang dapat dilakukan masing-masing, dan bagaimana pengamanannya bekerja.
Isi halaman ini
Sebelum bekerja dengan DIMETIL, pahami dulu siapa dapat melakukan apa. Ini penting bukan sekadar administratif — beberapa tindakan tidak dapat dibatalkan.
Dua peran
| Peran | Siapa | Dapat melakukan |
|---|---|---|
| pemilikUTTP | Pemilik alat, masyarakat | Mengajukan permohonan, memantau berkas, mengunduh SKHP miliknya sendiri |
| adminInstansi | Petugas Unit Metrologi Legal | Seluruh alur pelayanan: disposisi, penjadwalan, penerbitan SKHP, persuratan, laporan |
Tidak ada tingkatan di antara keduanya. Setiap petugas yang berperan adminInstansi memiliki kewenangan penuh atas modul kerja.
Bagaimana peran ditetapkan
Peran tidak dapat dipilih sendiri oleh siapa pun saat mendaftar. Setiap akun
baru otomatis berperan pemilikUTTP.
Menaikkannya menjadi adminInstansi hanya dapat dilakukan dari dasbor
Supabase oleh pengelola sistem — bukan dari dalam aplikasi. Ini disengaja:
seandainya ada celah pada aplikasi, penyerang tetap tidak dapat mengangkat
dirinya sendiri menjadi admin.
Langkah menaikkan peran ada pada panduan replikasi, bagian pemasangan.
Mengapa halaman masuk tidak menanyakan peran
Halaman masuk hanya meminta e-mail dan kata sandi. Tidak ada pilihan "masuk sebagai admin".
Sistem mengenali sendiri peran akun setelah kredensialnya sah, lalu membuka halaman yang sesuai. Menanyakan peran kepada pengguna tidak menambah keamanan sama sekali — perannya toh ditentukan basis data, bukan pilihan di layar — dan justru mengumumkan susunan peran internal kepada siapa pun yang membuka halaman masuk.
Pengamanan berlapis
Keamanan DIMETIL tidak bertumpu pada satu titik:
| Lapis | Yang dijaga |
|---|---|
| Middleware | Seluruh halaman /dashboard menolak yang belum masuk |
| Guard tiap alamat data | Setiap permintaan data memeriksa peran secara terpisah |
| Aturan basis data | Kolom peran tak dapat diubah pengguna, walau permintaannya dipalsukan |
Artinya: menyembunyikan tombol bukan pengaman. Tombol yang disembunyikan hanya memudahkan tampilan; penolakan sesungguhnya terjadi di server.
Jejak audit
Tindakan yang paling menentukan dicatat lengkap dengan waktu dan pelakunya:
- Perubahan status permohonan (disposisi)
- Penghapusan permohonan
- Penyuntingan data SKHP
Catatan itu tersimpan pada lembar AuditLog di basis data. Tujuannya bukan mengawasi petugas, melainkan menjawab pertanyaan "kapan ini berubah, dan atas dasar apa" ketika ada yang perlu ditelusuri.
Yang tidak dapat dibatalkan
Akun petugas baru
Petugas baru mendaftar sendiri lewat halaman pendaftaran seperti masyarakat biasa, lalu perannya dinaikkan oleh pengelola sistem. Tidak ada pembuatan akun langsung dari dalam aplikasi.
Bila seorang petugas berhenti atau pindah tugas, turunkan perannya kembali
menjadi pemilikUTTP — jangan menghapus akunnya, karena jejak audit yang
merujuk padanya masih diperlukan.
