Field notes

School portal permissions.

Plan access around people, records and responsibilities, then test the boundaries on the server.

Model actions, records and context

A role label by itself is not a complete permission rule. Define the action, the record and the context. A teacher may be allowed to enter attendance for an assigned class but not edit fee records. A parent may see their own child's information but not another family's details.

Write these rules in a matrix and review exceptions explicitly. Staff moving between classes or schools, guardians with several children and finance-specific responsibilities can change the context without changing the basic role name.

Keep the school boundary explicit

In a multi-school application, identifying a logged-in user is only the first step. Every request also needs an authorised school context. Selecting a school in the interface should not be sufficient to grant access to its records.

The backend should validate access to the requested operation and data. Hiding a menu item is useful interface design, but it does not protect an endpoint that still accepts the request. Default-deny behaviour and server-side authorisation are established access-control principles.

Test the requests that must fail

A permission test plan should include attempts to access another school, another student's record and an operation reserved for a different responsibility. Test read, write, export and background-processing paths; permission rules can be lost where data leaves the main screen.

  • Parent A cannot read Parent B's child record
  • A teacher cannot edit financial records without an explicitly granted responsibility
  • A school-specific export cannot include another school's records
  • Changing an identifier in a request does not change the user's authority
  • Revoked access stops working in the applicable sessions and workflows

Document assumptions and review change

This is an architectural checklist, not an audit of AogsiERP or a guarantee of security. A working implementation needs code review and tests against the actual data model. Log relevant administrative changes without exposing sensitive student data in general application logs.

The useful deliverable is a permission matrix tied to acceptance tests. That gives product, design and development a shared way to discuss access changes before they become inconsistent screens and endpoints.