ZSchool4u Docs
Open app

Roles & permissions

ZSchool4u ships 16 seeded system roles. Platform roles run the SaaS. School roles run one tenant. Parent and student use family portals (web + APK).

For the one-page decision matrix, start with Who does what.

Hierarchy mind map

Workflow guides (primary school roles)

| Role | Guide | One-line job | | --- | --- | --- | | school_admin | School Admin | Full school CRUD, fee masters, Approvals checker | | accountant | Accountant | Fee counter, Account Section, submit approvals | | principal | Principal | Academics & leave; no Account Section / Approvals on web | | vice_principal | Vice Principal | Like principal + Teacher Salary | | class_teacher / teacher | Class Teacher | Attendance, homework, marks for assigned classes | | parent | Parent portal | Child fees, results, leave, chat | | student | Student portal | Own attendance, timetable, results, fees view |

Role cards (school)

School Admin (school_admin)

  • Owns the school tenant: employees, students, classes, fee structure, attendance, exams, timetable, messages.
  • Only role that clears the Approvals queue (approve / reject).
  • Writes Income/Expense to the ledger immediately; can edit/delete IE entries.
  • Has Account Section and Admin Settings and Plan & Billing.

Accountant (accountant)

  • Day-to-day fee collect, dues, daily collection, ledgers, salary pay (default menus).
  • Submits discounts / voids / overrides / IE creates for approval (maker).
  • Sees My Approval Requests, not the school-wide Approvals inbox.
  • Cannot delete students or employees (hard block). Cannot edit/delete live IE rows (school_admin only).

Principal (principal)

  • Leadership: attendance, exams, academic year, messages, leave, complaints.
  • Employees / students menus are read-only (no enroll / add employee tools).
  • No Account Section and No Approvals on web — hand fees to Accountant / Admin.

Vice Principal (vice_principal)

  • Same pattern as Principal, plus Teacher Salary pay flow.

Class Teacher (class_teacher / teacher)

  • Class-scoped portal only. Not whole-school fee masters or Approvals.

Parent & Student

  • Family portals for fees/receipts, results, notices, leave (parent), timetable (student).

Default role menus are a starting pack. When School Admin adds or edits an employee, they can grant sidebar menu IDs (effective_menu_ids).

  • Backend APIs gate sensitive actions with those menus (collect fee, pay salary, etc.).
  • A few actions stay hard-denied for accountant even if ACL is generous (e.g. delete student / delete employee).
  • Extra seeded roles (hr_manager, receptionist, transport_manager, librarian) rely mainly on ACL + light defaults — use Who does what when designing logins.

All seeded roles

| Role name | Display | Scope | Typical use | | --- | --- | --- | --- | | platform_owner | Platform Owner | Platform | Full SaaS control | | developer_team | Developer Team | Platform | Internal engineering | | support_team | Support Team | Platform | Support tooling | | super_admin | Super Admin | Platform | Schools registry, school admins | | school_admin | School Admin | School | Full school CRUD + Approvals + settings | | principal | Principal | School | Leadership; read-only people lists; no Approvals / Account Section | | vice_principal | Vice Principal | School | Like principal + Teacher Salary | | hr_manager | HR Manager | School | Staff-creatable; ACL-driven | | accountant | Accountant | School | Fees, Account Section, submit approvals | | receptionist | Receptionist | School | Staff-creatable; limited menus | | transport_manager | Transport Manager | School | Staff-creatable | | librarian | Librarian | School | Staff-creatable | | teacher | Teacher | School | Maps to class-teacher portal | | class_teacher | Class Teacher | School | Class-scoped teaching | | parent | Parent | School | Child portal + APK | | student | Student | School | Student portal + APK |

Permission highlights

  • Approvals queue — school_admin clears; accountant submits only.
  • Account Section — school_admin + accountant (principal / VP do not get it on web).
  • Admin Settings / fee masters — school_admin (+ leadership settings for principal/VP).
  • Fee collect — school_admin + accountant (and ACL holders of collect menu).
  • Parent suspend / strong discipline — school_admin / principal paths — not accountant alone.