Skip to main content

Pendahuluan

Modul Organisasi membantu Anda mengelola tim sekolah dengan sistem role-based access control (RBAC) dan permission yang fleksibel.

Konsep Organisasi

Organisasi

Satu organisasi = satu sekolah dengan:
  • Data terisolasi sepenuhnya
  • Member/staff sendiri
  • Billing sendiri
  • Domain sendiri (custom + subdomain cekolah.com)

Struktur Organisasi

Organisasi (Sekolah)
├── Owner (1 atau lebih)
├── Admin
├── Teachers
├── Staff
├── Parents (segera)
└── Students (segera)

Role & Permissions

Built-in Roles

Owner
  • Akses penuh ke semua fitur
  • Kelola billing dan subscription
  • Kelola anggota organisasi
  • Tidak bisa remove diri sendiri
  • Punya 1 owner minimal per org
Admin
  • Akses penuh ke fitur operasional
  • Kelola member (invite, remove, role)
  • Kelola data (HRIS, siswa, jadwal, dll)
  • Tidak bisa ubah billing
  • Tidak bisa hapus owner
Member
  • Akses sesuai permission yang diberikan
  • Default: limited access
  • Bisa lihat data diri sendiri
  • Bisa update profil sendiri

Custom Roles

Buat role custom sesuai kebutuhan:
  1. Buka Settings → Roles & Permissions
  2. Klik Create Custom Role
  3. Isi:
    • Nama role: “Guru Senior”, “Koordinator HRIS”, dll
    • Deskripsi
    • Pilih permissions (checkboxes)
  4. Simpan
Contoh custom role:
  • Guru Senior: lihat & edit HRIS, jadwal
  • Koordinator Akademik: manage siswa, jadwal, nilai
  • HR Staff: manage HRIS, rekrutmen (read-only kehadiran)

Manajemen Anggota

Invite Member

  1. Buka Settings → Members
  2. Klik Invite Member
  3. Isi:
    • Email address
    • Nama (opsional, bisa edit nanti)
    • Role: Owner, Admin, atau custom role
  4. Klik Send Invite
Sistem mengirim email invite ke alamat tersebut. Penerima bisa:
  • Click link untuk create akun
  • Atau join jika sudah punya akun Cekolah

Manage Member

  1. Buka Settings → Members
  2. Lihat daftar semua member:
    • Email
    • Nama
    • Role
    • Status (active, pending invite, etc)
    • Join date
  3. Untuk setiap member:
    • Change Role - Ubah role member
    • Change Permissions - Ubah permission granular
    • Remove - Hapus dari organisasi
    • Resend Invite - Jika pending

Remove Member

  1. Klik member yang ingin dihapus
  2. Klik Remove from Organization
  3. Confirm removal
  4. Member kehilangan akses semua data org
Catatan: Data milik member (created records) tetap ada, hanya akses yang dicabut.

Permission System

Permission Levels

Cekolah memiliki permission granular per modul: HRIS Module:
  • hris.employees.view - Lihat data karyawan
  • hris.employees.create - Tambah karyawan
  • hris.employees.edit - Edit karyawan
  • hris.employees.delete - Hapus karyawan
  • hris.recruitment.* - Semua permission recruitment
  • etc
Student Module:
  • students.view - Lihat siswa
  • students.manage - Kelola siswa
  • students.enroll - Enroll siswa
  • etc
Attendance Module:
  • attendance.view_all - Lihat semua kehadiran
  • attendance.approve - Approve izin/cuti
  • attendance.manage_calendar - Kelola kalender
  • etc

Set Custom Permission

Untuk fine-grained control:
  1. Buka Settings → Members
  2. Klik member
  3. Klik Custom Permissions
  4. Check/uncheck permission sesuai kebutuhan
  5. Simpan
Contoh: Guru Senior
  • ✅ HRIS: view, create, edit (not delete)
  • ✅ Schedule: manage
  • ✅ Attendance: view_all
  • ❌ Billing: none
  • ❌ Settings: none

Permission Templates

Preset permission untuk common roles:
RoleHRISStudentsScheduleAttendanceRecruitmentBilling
TeacherViewViewManage ownView own--
HR StaffFull--ManageFull-
CoordinatorViewFullFullFull--
AdminFullFullFullFullFull-
OwnerFullFullFullFullFullFull

Access Control Examples

Skenario 1: Guru

Guru hanya bisa:
  • Lihat dan kelola jadwal mengajar
  • Submit attendance (check-in)
  • View data siswa di kelas mereka
  • Upload nilai (segera)
Setup:
  • Role: Teacher (predefined)
  • Atau custom dengan permission terbatas

Skenario 2: HR Manager

HR manager bisa:
  • Manage semua data HRIS (create, edit, delete)
  • Kelola rekrutmen
  • Tidak bisa kelola siswa/jadwal
  • Tidak bisa akses billing
Setup:
  • Role: Custom “HR Manager”
  • Permissions: HRIS full, Recruitment full, siswa read-only

Skenario 3: Koordinator Akademik

Akademik coordinator:
  • Manage siswa & enrollment
  • Manage jadwal & kurikulum
  • View HRIS (guru/staff)
  • Approve attendance izin
  • Tidak bisa akses karyawan edit
Setup:
  • Role: Custom “Koordinator Akademik”
  • Permissions: Students full, Schedule full, HRIS limited, Attendance approve

Activity & Audit

Activity Log

Track semua aktivitas member:
  1. Buka Settings → Activity Log
  2. Lihat:
    • Who: Member mana yang action
    • What: Aksi apa (create, edit, delete)
    • When: Kapan
    • Target: Data apa yang di-action
    • Details: Perubahan detail
  3. Filter by:
    • Member
    • Modul (HRIS, Students, dll)
    • Aksi (create, update, delete)
    • Date range

Export Audit Log

Untuk compliance/audit:
  1. Klik Export
  2. Format: CSV, PDF
  3. Date range
  4. Download laporan

Multi-Organization

User dapat member di multiple organization:
  1. Switch between org di dropdown
  2. Access berbeda per organization
  3. Billing separate per org
  4. Activity log separate

Security

Session Management

  • Each device = separate session
  • Logout dari satu device tidak affect device lain
  • Admin dapat force logout user dari settings
  • Session timeout otomatis (idle 30 min)

Password & 2FA

  • Member manage password di settings profil
  • Optional 2FA untuk security extra
  • Password reset via email

Data Privacy

  • Member hanya see data sesuai permission
  • Database query di-filter by org & permission
  • Audit log mencatat semua access

Tips & Best Practices

  • ✅ Use roles yang sudah ada (Owner, Admin, Member)
  • ✅ Buat custom role hanya jika perlu
  • ✅ Assign least privilege (minimal permission needed)
  • ✅ Review member permission secara berkala
  • ✅ Remove member yang tidak lagi aktif
  • ✅ Monitor activity log untuk suspicious activity
  • ✅ Keep owner/admin count minimal (security)

Troubleshooting

  • Cek role dan permission member
  • Pastikan permission sudah include fitur yang diakses
  • Refresh halaman member
  • Clear cache browser
  • Hubungi admin untuk update permission
  • Cek apakah owner (tidak bisa remove diri sendiri)
  • Punya owner minimal 1 di org
  • Jika member adalah owner lain, tidak bisa remove
  • Hubungi support jika perlu
  • Cek email yang diinvite
  • Lihat folder spam/promotions
  • Resend invite dari settings
  • Cek email address typo
  • Member bisa direct login jika sudah punya akun

Related Pages: