User Access
Kelola User, Role, dan Permission dalam satu tempat — tambah anggota tim, tentukan hak akses berbasis Role, dan kendalikan siapa dapat melakukan apa di Lenz Dashboard.
Pengenalan
User Access adalah modul administrasi di Lenz Dashboard yang memungkinkan admin untuk mengelola siapa saja yang dapat mengakses sistem dan apa yang boleh mereka lakukan. Modul ini menerapkan model RBAC (Role-Based Access Control): setiap User mendapatkan satu Role, dan setiap Role memiliki sekumpulan Permission atas Resource tertentu.
Model Akses: User → Role → Permission → Resource
Setiap entitas dalam sistem terhubung dalam rantai berikut:
- User — akun yang dapat login ke Lenz Dashboard. Setiap User memiliki tepat satu Role.
- Role — kumpulan aturan akses yang menentukan hak seorang User. Role dapat digunakan oleh banyak User sekaligus.
- Permission — empat tindakan yang dapat diizinkan atau ditolak per Resource:
can_create,can_read,can_update,can_delete. - Resource — fitur atau halaman di Lenz Dashboard (misalnya
streams,events,manage_users).
Halaman User Access dapat diakses melalui /user-access dan hanya tampil bagi User yang memiliki Permission can_read pada Resource manage_roles atau manage_users.
Hanya User dengan Role yang memiliki akses ke manage_roles dan manage_users yang dapat membuka halaman ini. Jika halaman tidak dapat diakses, hubungi administrator sistem Anda.
Diagram Model RBAC
Alur kerja pemberian akses:
- Admin membuat Role baru dan mengisi Permission untuk setiap Resource yang relevan.
- Admin membuat User baru dan memilih Role yang sesuai.
- Saat User login, sistem membaca Permission dari Role-nya dan menampilkan hanya fitur yang diizinkan.
Cara Menggunakan
Menambah User Baru
Buka tab Manajemen Pengguna
Akses halaman /user-access dari sidebar Lenz Dashboard. Pilih tab Manajemen Pengguna (ikon Users) di bagian atas halaman.

Klik "Tambah Pengguna"
Klik tombol Tambah Pengguna di atas tabel. Dialog Buat Pengguna Baru terbuka sebagai wizard dua langkah: Langkah 1 dari 2 — Detail Pengguna, lalu Langkah 2 dari 2 — Akses Situs. Langkah kedua baru terbuka setelah langkah pertama diisi dan Anda menekan Lanjut.

Isi informasi User
Pada tab Detail Pengguna, lengkapi semua field berikut:
| Field | Keterangan |
|---|---|
| Nama Lengkap | Nama tampilan User di sistem |
| Nama Pengguna | Username untuk login (unik) |
| Alamat email (unik, digunakan untuk identifikasi) | |
| Peran | Role yang akan ditetapkan ke User ini |
| Kata Sandi | Minimal 8 karakter |
| Konfirmasi Kata Sandi | Harus sama dengan kata sandi di atas |
Tetapkan Akses Situs
Klik Lanjut untuk membuka Akses Situs dan pilih instance, situs, atau stream tertentu yang boleh diakses User ini.
Jika tidak ada satu pun situs/stream yang dipilih, User (non-superadmin) tidak mendapat akses ke stream atau site apa pun — bukan mengikuti batasan bawaan dari Peran-nya. Akses Situs adalah lapisan pembatas terpisah dari Peran dan harus diisi eksplisit agar User dapat melihat data.
Perbedaan keduanya penting: Peran menentukan apa yang boleh dilakukan (membaca event, menghapus stream), sedangkan Akses Situs menentukan di lokasi mana hal itu berlaku.
Simpan User
Klik Buat Pengguna. Jika berhasil, User baru akan muncul di tabel dan dapat langsung login menggunakan kredensial yang ditetapkan.
Mengedit dan Menghapus User
- Edit: Klik ikon menu (titik tiga) pada baris User di tabel → pilih Edit. Anda dapat mengubah nama, email, username, Role, dan Situs. Password hanya dapat diubah melalui opsi Ganti Kata Sandi yang terpisah.
- Hapus: Klik ikon menu → pilih Hapus Pengguna. Tindakan ini permanen dan tidak dapat dibatalkan.
Menghapus User akan menghapus akun secara permanen. Pastikan Anda tidak menghapus User yang sedang aktif mengelola data penting di sistem.
Membuat Role Baru
Buka tab Manajemen Peran
Di halaman /user-access, pilih tab Manajemen Peran (ikon ShieldCheck).
Klik "Tambah Peran"
Dialog Buat Peran Baru terbuka dengan dua tab: Detail Peran untuk informasi dasar, dan Izin untuk matriks Permission.

Isi nama dan halaman default
| Field | Keterangan |
|---|---|
| Nama Peran | Nama deskriptif, misalnya "Operator CCTV" atau "Analis Forensik" |
| Halaman Beranda | Halaman pertama yang dibuka User dengan Peran ini setelah login. Pilih halaman yang memang diizinkan oleh Peran ini, agar pengguna tidak mendarat di halaman terlarang. |
Atur Permission per Resource
Buka tab Izin. Setiap Resource tampil sebagai satu baris yang dapat dibentangkan; di dalamnya ada empat hak — Create, Read, Update, dan Delete — yang dicentang sendiri-sendiri. Penghitung 0/4 di sebelah nama Resource menunjukkan berapa hak yang aktif, tombol Pilih Semua mencentang keempatnya sekaligus, dan kotak Cari sumber daya... di atas daftar menyaringnya.
Peran tetap dapat disimpan meski semua Permission-nya 0/4 — sistem tidak mewajibkan minimal satu Permission dipilih. Peran seperti ini valid tetapi tidak berguna: User yang memakainya tidak bisa mengakses fitur apa pun.

Simpan Peran
Klik Buat Peran. Peran baru langsung tersedia saat membuat atau mengedit User.
Mengubah Role pada User yang Sudah Ada
- Buka tab Manajemen Pengguna.
- Cari User yang ingin diubah Role-nya menggunakan kolom pencarian.
- Klik ikon menu → Edit.
- Ubah field Peran ke Role yang baru.
- Klik Simpan Perubahan.
Perubahan Role berlaku saat sesi User berikutnya (atau segera jika User me-refresh halaman).
Tipe Permission dan Resource
Setiap Role memiliki matriks Permission yang mengontrol tindakan (can_create, can_read, can_update, can_delete) terhadap Resource berikut:
Kategori Video & Streaming
| Resource | Deskripsi |
|---|---|
streams | Manajemen kamera dan stream video |
video_management | Pengelolaan rekaman dan video |
media_server | Konfigurasi media server |
recorded_streams | Akses ke stream yang direkam |
Kategori Face Recognition
| Resource | Deskripsi |
|---|---|
enrollment_face | Pendaftaran wajah ke database |
face_search | Pencarian wajah di event historis |
face_searching_logs | Log hasil pencarian wajah |
face_tracking | Pelacakan wajah real-time |
Kategori Plate Recognition
| Resource | Deskripsi |
|---|---|
enrollment_plate | Pendaftaran plat nomor ke database |
plate_search | Pencarian plat nomor di event historis |
plate_tracking | Pelacakan plat nomor real-time |
plate_searching_logs | Log hasil pencarian plat nomor |
Kategori Event & Alert
| Resource | Deskripsi |
|---|---|
events | Akses ke data event deteksi |
alert_rules | Konfigurasi aturan alert |
alert_history | Riwayat alert yang telah terpicu |
Kategori Sites & Infrastruktur
| Resource | Deskripsi |
|---|---|
sites | Manajemen lokasi/situs |
floorplans | Denah lantai dan peta lokasi |
remotes | Manajemen remote/node |
layout_templates | Template tampilan layar |
Kategori User Management
| Resource | Deskripsi |
|---|---|
manage_roles | Membuat, mengedit, menghapus Role |
manage_users | Membuat, mengedit, menghapus User |
Kategori Sistem & Pengaturan
| Resource | Deskripsi |
|---|---|
settings | Konfigurasi sistem |
licenses | Manajemen lisensi |
api_keys | Manajemen API Key |
model_api_keys | API Key untuk model AI |
vpn_accounts | Akun VPN |
whitelisted_ips | Daftar IP yang diizinkan |
auto_search | Fitur pencarian otomatis |
Kategori Logging & Monitoring
| Resource | Deskripsi |
|---|---|
audit_log | Log aktivitas sistem |
log_history | Riwayat log |
statistics | Data statistik dan analitik |
monitoring_resource | Pemantauan resource server |
Kategori Fitur Khusus & Otomasi
| Resource | Deskripsi |
|---|---|
smart_search | Pencarian cerdas lintas fitur |
notifications | Manajemen notifikasi |
workflows | Alur kerja otomatis |
credentials | Manajemen kredensial |
centralize_enrollment | Enrollment terpusat |
passenger_analysis_unit | Analisis penumpang |
person_reid | Pengenalan ulang orang (person re-identification) lintas kamera |
Untuk integrator: Daftar resource di atas adalah string yang dikenali oleh backend API. Saat memanggil POST /api/roles atau PUT /api/roles/{id}, kirim setiap entry pada array permissions dengan field resource_name berisi salah satu key di atas, ditambah empat boolean can_create, can_read, can_update, can_delete. Resource yang tidak dikenali akan ditolak server.
Mengelola User & Role pada Federation
Pada deployment Federation, halaman User Access menampilkan pemilih Instance di bagian atas (Core atau salah satu remote instance). Pilih instance untuk membuat, mengedit, atau menghapus User dan Role langsung pada instance tersebut tanpa login terpisah — User dan Role yang dibuat lewat jalur ini ditandai label "via Core" pada kolom Asal.
Untuk resolusi Permission lintas instance, Lenz Dashboard menyertakan header X-User-Permissions (JWT yang ditandatangani Federation Module) saat meneruskan request ke remote instance. Header ini berisi snapshot Permission User yang sedang login sehingga setiap remote instance dapat memvalidasi akses tanpa perlu mereplikasi tabel User. Detail format JWT dan alur validasi tersedia di panduan Otentikasi.
Fitur Utama
CRUD User Lengkap
Tambah, edit, lihat detail, ganti password, dan hapus User.
Manajemen Role
Buat Role kustom dengan nama dan halaman default. Role kustom dapat diedit dan dihapus; Role bawaan sistem (default/superadmin) terkunci dari kedua tindakan tersebut.
Matriks Permission Granular
Kendalikan akses hingga level tindakan (Buat/Baca/Perbarui/Hapus) per Resource. Setiap Resource dapat dikonfigurasi secara independen.
Impor & Ekspor User
Impor banyak User sekaligus dari file CSV dengan validasi otomatis, deteksi duplikat, dan laporan hasil impor yang detail.
Filter & Pencarian
Cari User berdasarkan nama atau email. Filter berdasarkan status online/offline.
Route Guard Berbasis RBAC
Halaman secara otomatis menyesuaikan tab yang ditampilkan berdasarkan Permission User yang sedang login — tab yang tidak bisa diakses tidak akan muncul.
Manajemen Multi-Instance (Federation)
Pada deployment Federation, kelola User dan Role di Core maupun remote instance langsung dari satu halaman lewat pemilih Instance.
Tips & Troubleshooting
Selanjutnya
API Key
Buat dan kelola API Key untuk akses programmatic ke Lenz API tanpa menggunakan kredensial User.
Otentikasi
Pelajari mekanisme otentikasi JWT, refresh Token, dan cara mengintegrasikan login ke aplikasi Anda.
Audit Log
Pantau seluruh aktivitas User di sistem — siapa mengubah apa, kapan, dan dari mana.
Memulai
Kembali ke panduan memulai untuk gambaran umum arsitektur dan alur setup awal Lenz Dashboard.