Files
dashboard/mockData/accessManagementData.ts
Alberto-Audrix 32a36cceff
CI / lint-and-test (push) Canceled after 0s
first commit
2026-07-28 08:55:05 +07:00

341 lines
9.5 KiB
TypeScript

import { User, Group, Role, Permission, RolePermission } from '../types';
export const initialGroups: Group[] = [
{ id: 'group-1', name: 'Operasional Jawa Barat' },
{ id: 'group-2', name: 'Operasional Sumatra' },
{ id: 'group-3', name: 'Manajemen Pusat' },
{ id: 'group-4', name: 'Tim Kesehatan Hewan' },
{ id: 'group-5', name: 'Administrator Sistem' },
];
export const initialRoles: Role[] = [
{
id: 'role-1',
name: 'Administrator',
description: 'Akses penuh ke semua fitur dan pengaturan sistem.',
},
{
id: 'role-2',
name: 'Manajer Kandang',
description: 'Akses ke dashboard, laporan, dan manajemen untuk kandang tertentu.',
},
{
id: 'role-3',
name: 'Operator',
description: 'Akses terbatas untuk melihat data dan menangani notifikasi harian.',
},
{
id: 'role-4',
name: 'Dokter Hewan',
description: 'Akses ke data kesehatan, perilaku, dan mortalitas.',
},
{
id: 'role-5',
name: 'Hanya Lihat',
description: 'Akses hanya untuk melihat semua dashboard tanpa bisa mengubah apapun.',
},
];
export const initialUsers: User[] = [
{
id: 'user-1',
name: 'Admin Sistem',
email: 'admin@cp.co.id',
groupId: 'group-5',
roleId: 'role-1',
},
{
id: 'user-2',
name: 'Budi Hartono',
email: 'budi.h@cp.co.id',
groupId: 'group-1',
roleId: 'role-2',
},
{
id: 'user-3',
name: 'Siti Aminah',
email: 'siti.a@cp.co.id',
groupId: 'group-1',
roleId: 'role-3',
},
{
id: 'user-4',
name: 'Dr. Retno Wulandari',
email: 'retno.w@cp.co.id',
groupId: 'group-4',
roleId: 'role-4',
},
{
id: 'user-5',
name: 'Agus Susanto',
email: 'agus.s@cp.co.id',
groupId: 'group-2',
roleId: 'role-3',
},
{
id: 'user-6',
name: 'Direksi',
email: 'direksi@cp.co.id',
groupId: 'group-3',
roleId: 'role-5',
},
{
id: 'user-7',
name: 'Dr. Budi Santoso',
email: 'budi.s@cp.co.id',
groupId: 'group-4',
roleId: 'role-4',
},
];
export const allPermissions: Permission[] = [
// Dashboard
{
id: 'p-dash-view',
category: 'Dashboard Utama',
action: 'Lihat',
description: 'Dapat melihat dashboard utama.',
},
{
id: 'p-dash-report',
category: 'Dashboard Utama',
action: 'Buat Laporan AI',
description: 'Dapat membuat ringkasan laporan AI.',
},
// Chicken Counting
{
id: 'p-cc-view',
category: 'Hitung Ayam',
action: 'Lihat',
description: 'Dapat melihat dashboard penghitungan ayam.',
},
// Feed Sack Counting
{
id: 'p-fsc-view',
category: 'Hitung Karung',
action: 'Lihat',
description: 'Dapat melihat dashboard penghitungan karung pakan.',
},
// Behavior Analysis
{
id: 'p-ba-view',
category: 'Analisis Perilaku',
action: 'Lihat',
description: 'Dapat melihat dashboard analisis perilaku.',
},
// Weight Monitoring
{
id: 'p-wm-view',
category: 'Berat Ayam',
action: 'Lihat',
description: 'Dapat melihat dashboard pemantauan berat.',
},
{
id: 'p-ws-view',
category: 'Berat Ayam',
action: 'Lihat Standar',
description: 'Dapat melihat tabel standar bobot ayam.',
},
// Manual Weighing
{
id: 'p-mw-view',
category: 'Pencatatan Manual',
action: 'Lihat',
description: 'Dapat melihat data pencatatan timbangan manual.',
},
// Location Management
{
id: 'p-loc-view',
category: 'Manajemen Struktur',
action: 'Lihat',
description: 'Dapat melihat struktur peternakan.',
},
{
id: 'p-loc-manage',
category: 'Manajemen Struktur',
action: 'Kelola',
description: 'Dapat menambah, mengedit, dan menghapus lokasi, kandang, lantai.',
},
// IoT Device
{
id: 'p-iot-view',
category: 'Perangkat IoT',
action: 'Lihat',
description: 'Dapat melihat daftar perangkat IoT.',
},
{
id: 'p-iot-manage',
category: 'Perangkat IoT',
action: 'Kelola',
description: 'Dapat menambah, mengedit, dan menghapus perangkat IoT.',
},
// Network
{
id: 'p-net-view',
category: 'Manajemen Jaringan',
action: 'Lihat',
description: 'Dapat melihat dashboard jaringan.',
},
// Batch
{
id: 'p-batch-view',
category: 'Proses Batch',
action: 'Lihat',
description: 'Dapat memonitor proses batch.',
},
// Camera
{
id: 'p-cam-view',
category: 'Manajemen Kamera',
action: 'Lihat',
description: 'Dapat melihat daftar kamera.',
},
{
id: 'p-cam-manage',
category: 'Manajemen Kamera',
action: 'Kelola',
description: 'Dapat menambah, mengedit, dan menghapus kamera.',
},
// Access Management
{
id: 'p-access-view',
category: 'Manajemen Akses',
action: 'Lihat',
description: 'Dapat melihat pengguna, grup, dan peran.',
},
{
id: 'p-access-manage-users',
category: 'Manajemen Akses',
action: 'Kelola Pengguna',
description: 'Dapat menambah, mengedit, dan menghapus pengguna.',
},
{
id: 'p-access-manage-roles',
category: 'Manajemen Akses',
action: 'Kelola Peran',
description: 'Dapat mengedit hak akses untuk setiap peran.',
},
// New View Permissions
{
id: 'p-fw-view',
category: 'Pemborosan Pakan',
action: 'Lihat',
description: 'Dapat melihat dashboard pemborosan pakan.',
},
{
id: 'p-fs-view',
category: 'Penjadwalan Pakan',
action: 'Lihat',
description: 'Dapat melihat dashboard penjadwalan pakan.',
},
{
id: 'p-mcw-view',
category: 'Perbandingan Berat',
action: 'Lihat',
description: 'Dapat melihat dashboard perbandingan berat antar kandang.',
},
// ERP Integration
{
id: 'p-erp-view',
category: 'Integrasi ERP',
action: 'Lihat',
description: 'Dapat melihat dashboard integrasi ERP.',
},
// Documentation
{
id: 'p-docs-view',
category: 'Dokumentasi',
action: 'Lihat',
description: 'Dapat melihat dokumentasi proyek (SRS, PRD, TODO).',
},
// Vet Visit
{
id: 'p-vet-view',
category: 'Kunjungan Dokter Hewan',
action: 'Lihat',
description: 'Dapat melihat dasbor kunjungan dokter hewan.',
},
{
id: 'p-vet-manage',
category: 'Kunjungan Dokter Hewan',
action: 'Kelola',
description: 'Dapat menjadwalkan dan mengedit catatan kunjungan.',
},
// OCR Processing
{
id: 'p-ocr-view',
category: 'Pemrosesan OCR',
action: 'Lihat',
description: 'Dapat melihat dasbor pemrosesan dokumen.',
},
{
id: 'p-ocr-manage',
category: 'Pemrosesan OCR',
action: 'Kelola',
description: 'Dapat mengunggah dan memvalidasi dokumen.',
},
];
export const initialRolePermissions: RolePermission[] = [
// Administrator has all permissions
...allPermissions.map((p) => ({ roleId: 'role-1', permissionId: p.id })),
// Manajer Kandang
{ roleId: 'role-2', permissionId: 'p-dash-view' },
{ roleId: 'role-2', permissionId: 'p-dash-report' },
{ roleId: 'role-2', permissionId: 'p-cc-view' },
{ roleId: 'role-2', permissionId: 'p-fsc-view' },
{ roleId: 'role-2', permissionId: 'p-ba-view' },
{ roleId: 'role-2', permissionId: 'p-wm-view' },
{ roleId: 'role-2', permissionId: 'p-ws-view' },
{ roleId: 'role-2', permissionId: 'p-loc-view' },
{ roleId: 'role-2', permissionId: 'p-iot-view' },
{ roleId: 'role-2', permissionId: 'p-cam-view' },
{ roleId: 'role-2', permissionId: 'p-fw-view' },
{ roleId: 'role-2', permissionId: 'p-fs-view' },
{ roleId: 'role-2', permissionId: 'p-mcw-view' },
{ roleId: 'role-2', permissionId: 'p-erp-view' },
{ roleId: 'role-2', permissionId: 'p-vet-view' },
{ roleId: 'role-2', permissionId: 'p-vet-manage' },
{ roleId: 'role-2', permissionId: 'p-ocr-view' },
{ roleId: 'role-2', permissionId: 'p-ocr-manage' },
{ roleId: 'role-2', permissionId: 'p-mw-view' },
// Operator
{ roleId: 'role-3', permissionId: 'p-dash-view' },
{ roleId: 'role-3', permissionId: 'p-cc-view' },
{ roleId: 'role-3', permissionId: 'p-fsc-view' },
{ roleId: 'role-3', permissionId: 'p-ba-view' },
{ roleId: 'role-3', permissionId: 'p-wm-view' },
{ roleId: 'role-3', permissionId: 'p-ws-view' },
{ roleId: 'role-3', permissionId: 'p-fw-view' },
{ roleId: 'role-3', permissionId: 'p-fs-view' },
{ roleId: 'role-3', permissionId: 'p-vet-view' },
{ roleId: 'role-3', permissionId: 'p-ocr-view' },
// Dokter Hewan
{ roleId: 'role-4', permissionId: 'p-dash-view' },
{ roleId: 'role-4', permissionId: 'p-ba-view' },
{ roleId: 'role-4', permissionId: 'p-wm-view' },
{ roleId: 'role-4', permissionId: 'p-ws-view' },
{ roleId: 'role-4', permissionId: 'p-mcw-view' },
{ roleId: 'role-4', permissionId: 'p-vet-view' },
{ roleId: 'role-4', permissionId: 'p-vet-manage' },
{ roleId: 'role-4', permissionId: 'p-mw-view' },
// Hanya Lihat
{ roleId: 'role-5', permissionId: 'p-dash-view' },
{ roleId: 'role-5', permissionId: 'p-cc-view' },
{ roleId: 'role-5', permissionId: 'p-fsc-view' },
{ roleId: 'role-5', permissionId: 'p-ba-view' },
{ roleId: 'role-5', permissionId: 'p-wm-view' },
{ roleId: 'role-5', permissionId: 'p-ws-view' },
{ roleId: 'role-5', permissionId: 'p-loc-view' },
{ roleId: 'role-5', permissionId: 'p-iot-view' },
{ roleId: 'role-5', permissionId: 'p-net-view' },
{ roleId: 'role-5', permissionId: 'p-batch-view' },
{ roleId: 'role-5', permissionId: 'p-cam-view' },
{ roleId: 'role-5', permissionId: 'p-fw-view' },
{ roleId: 'role-5', permissionId: 'p-fs-view' },
{ roleId: 'role-5', permissionId: 'p-mcw-view' },
{ roleId: 'role-5', permissionId: 'p-vet-view' },
{ roleId: 'role-5', permissionId: 'p-ocr-view' },
{ roleId: 'role-5', permissionId: 'p-mw-view' },
];