Resource

Who Can See What

Access control, end to end: composing a role out of the platform’s own actions, granting it to a person for a fixed window, the sidebar and the pages that change as a result, the trail that records every use — including the refusals — and what a school sees when our own support staff need to look.

School AdminOther Staff RolesLibrary StaffParent
Who Can See What

The question a school asks before any feature question

A school holds the most sensitive records most families ever hand over: a child’s medical notes, a family’s finances, a safeguarding concern, a staff disciplinary case. So the first serious question about any system is not what it can do — it is who in the building can open what, whether the answer survives contact with a real staff structure, and whether anybody could prove it afterwards. This walkthrough answers all three on the actual screens. It starts where permissions are composed, follows one grant to the person who receives it, shows the same product looking different in their hands because of it, and ends on the record — the trail, the refusals it keeps, and the strip across the top of the page that appears when the person reading a school’s records works for us.

On this page
Step 1 · School office

A role is a sentence, not a tier

Most systems ship three or four fixed roles and ask a school to file itself under one of them. Real schools do not fit: the bursar who also runs the school store, the deputy head who covers a form class, the librarian who is trusted with attendance and nothing else. Here a role is composed from the same action catalogue the platform enforces against — so what you can describe is exactly what the system can be asked to allow, and nothing is approximated.

1

Every role the school can grant, in one register

Roles that ship with the platform and roles the school composed itself sit in one list, marked as what they are. The system ones are preview-only — they are the vocabulary the product itself is built on and a school cannot quietly widen them; everything a school builds is its own to change.

System roles ship with EaseAcademia and can be read but not rewritten
Custom roles are the school’s, and are edited and withdrawn from here
Each row carries the number of distinct actions it actually grants — a wildcard counts as every operation it covers, not as one line
And how many people currently hold it, which is the number that decides whether a change is safe
Filter by system or custom, search by name, description or code
2

What a role actually grants, in words

Opening the Bursar shows the role as its clauses — a service, the specific actions inside it, and how far each reaches. This is the whole role, not a summary of it: the third clause is the honest one, because it says that a bursar may read a pupil’s name and guardian, and nothing else about the child.

Each clause anchors on one service and names the operations it grants inside it
“Everything in this service” is a real choice, and it is shown as such rather than as an unexplained asterisk
Reach is per clause: school-wide, the holder’s own form class, the classes they are assigned to, their department, or their own wards
The screen is the same one used to build a role, in read-only — so what you review and what you author cannot diverge
This dialog has its own address, so “here is what the Bursar can see” is a link you can send rather than a paragraph you have to write
3

Composing one, clause by clause

A blank role is a title and a first sentence. Add a clause, pick the service it is about, tick the operations inside it, and choose how far it reaches. Nothing here is free text and nothing is invented: every option is an action the platform’s own guard will be asked about at request time.

The service list is the platform’s action catalogue — a role cannot name a permission that does not exist
Operations are chosen individually, so “can read invoices but not void them” is a role, not a compromise
Reach is chosen per clause, so one role can be school-wide about one thing and class-scoped about another
A role can only reach the modules the school actually subscribes to — an add-on that is switched off has no actions to grant
Roles are composed here and granted separately, which is what lets one role serve forty people without forty decisions

Ready to run your school on this?

Every screen in “A role is a sentence, not a tier” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 2 · School office

Giving it to a person, and for how long

Composing a role changes nothing on its own. Access begins when a role is granted to a person, and the thing that goes wrong in every school is not the grant — it is the ungrant. The cover teacher goes back to their own class in January and keeps the form teacher’s reach until somebody remembers. So a grant here can carry its own end date, and the register keeps the ones that have ended.

1

The register of who holds what

One row per grant, per person: the role, whether it is permanent or dated, whether it is running yet, and the reason it was given. A revoked grant stays on the register, because revoking is not deleting and “who used to be able to do this” is a question schools are asked.

Permanent and time-bound grants side by side, with the dates that make the difference
Scheduled grants that have not started yet — access can be arranged in advance of a term
Expired grants close themselves on their end date; nobody has to remember
Revoked grants remain visible, with who withdrew them and when
A grant can be narrowed at the moment it is given — to named classes, or to named subjects — so one Subject Teacher role serves every teacher without any of them reaching the others’ pupils
2

One grant: a person, a role, a window, a reason

The form is deliberately four decisions, and the fourth is the one most systems leave out. A reason turns the register into something a governor can read a year later without having to reconstruct what the school was thinking in September.

Search the staff directory for the person — a grant is always to somebody the school already employs
Choose the role, or open the builder from here when nothing in the catalogue fits
Permanent, or dated: a start, an end, and both enforced rather than advisory
Narrow it to particular classes or subjects where the role supports that
Write down why. It costs a sentence now and answers a question later
3

Access as a thing you can watch, not just set

The reporting side of the same record: how many people hold each role, which grants are about to expire, and how the shape of access has moved over the term. A school that has been running for three years has drift, and drift is only visible in aggregate.

Who holds what, by role, at a glance
Grants expiring soon — the cover arrangements that are about to end
How grants have been added and withdrawn over time
The same reporting apparatus every other module uses, so it is arranged and read the same way

See this on your own school’s data.

Every screen in “Giving it to a person, and for how long” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 3 · An employee, before

The sidebar is the permission

Here is the part that cannot be shown from the administrator’s chair, and it is the part that matters: what the product looks like to somebody who has not been granted anything. Samuel is a member of staff at this school. Every employee gets this much on the day they are created, and until a role says otherwise, this is the whole product.

1

Everything an employee gets for existing

His own workspace: his day, his calendar, his payslips and invoices, his leave, his messages, his own record. No pupils, no classes, no finance, no clinic — not hidden behind a locked icon, not there at all. A permission he does not hold is not an upsell wall; it is an absence.

The staff self-service every employee has, whatever their role
No School HQ section, because nothing in it has been granted
Refusal happens server-side as well: the navigation reflects the grant rather than defining it, so an address typed by hand gets the same answer
This is the base platform — a school that buys no add-on at all still gives every employee this

Set this up for your team.

Every screen in “The sidebar is the permission” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 4 · An employee, after

One grant later

Tunde holds the same staff account as Samuel, plus one thing: the Librarian role. That single grant is the entire difference between the previous screen and this one — a School HQ section appeared in his sidebar, and behind it is the library desk. He did not get a different app, a different login, or a seat upgrade.

1

The desk the role opened

Issuing, returns, renewals, overdues — the library module’s own circulation screen, opened by an ordinary employee whose role happens to include it. His self-service is still there below it, unchanged, because he is still a member of staff first.

One login, two things in it: the self-service everybody has, and the module his role added
The rest of School HQ is not dimmed — it is simply not his; a module nobody granted him is not in his sidebar to be curious about
The Librarian role reaches the library completely and a pupil record barely: their name and class, so a loan can be issued to a person rather than to a number
Withdraw the grant and this screen goes with it, on the date the grant says

Ready to run your school on this?

Every screen in “One grant later” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 5 · A guardian

The two accounts no role describes

Roles answer “what may this employee do”. They are the wrong shape for the two largest groups of accounts a school has, because a parent’s reach is not a job — it is a relationship, and a pupil’s reach is themselves. Neither is granted by anybody, and neither can be widened by asking the system differently.

1

A guardian sees their children, and the set is the boundary

Ngozi is linked to two pupils, so her portal is about two pupils. There is no filter that widens it, no ward picker that lists the school, and no address she can type that reaches a third child — because the link between guardian and ward is the scope, applied where the data is read rather than where the page is drawn.

One account carries every ward the guardian is linked to, at this school
Adding or removing a ward is a change the school makes on the pupil’s record, and it is audited
The scope is enforced server-side, so a request for a child outside it is refused and recorded — the trail in the next phase has exactly that row on it
A pupil’s own account is the same idea with a set of one: their attendance, their results, their invoices, and no route to a classmate’s

See this on your own school’s data.

Every screen in “The two accounts no role describes” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 6 · School office

Everything it did — including what it was refused

Access control that cannot be inspected afterwards is a policy, not a control. The trail records consequential actions with who did them, what they touched and how it turned out — and it keeps the attempts that were denied, which is the half most systems discard and the only half that tells you a boundary is being tested.

1

The trail, in a school’s own words

Sentences, not identifiers. No resource types, no action codes and no opaque ids on the face of the page — the row reads as what happened, with the people and records it names resolved to their names. The technical rendering is still there, one click down, for the day somebody needs to trace a call.

Every row is a sentence a bursar or a governor can read without a glossary
Three tiers of significance — changes, record access, and system noise — so the page opens on what a person meant to do rather than on token refreshes
Filter by outcome, by what was affected, by date, or search by person
Export the filtered view as CSV or JSON, which is what an inspection actually asks for
Rows are chained and sequenced, so a gap or an alteration in the record is detectable rather than invisible
2

A refusal, expanded

This row is a subject teacher opening a pupil record for a class they do not teach. It failed, and it is on the record with the reason it failed — the role’s own reach. A trail that only holds successes cannot tell you the difference between a system nobody is testing and a system whose boundaries are being probed.

The refusal reason in the platform’s own terms: which grant fell short, and how
Who attempted it, under which roles, at what moment
Which pupil it was about — named, and distinct from the record that would have been written
The correlation id that ties every row of one request together
And the technical layer beneath: the raw action, the resource type, the id — present, but not in the reader’s face
3

The shape of activity, not just the list

Volume over time, denied actions, the most active accounts. A single denial is a mistyped address; forty from one account on a Sunday night is a conversation the school needs to have on Monday, and only the aggregate makes that visible.

Activity volume across the term, by day
Denied actions as their own series — the number that should stay near the floor
Most active actors, which finds both the diligent and the anomalous
Drawn from the same trail the list page shows, so the chart and the rows can never disagree

Set this up for your team.

Every screen in “Everything it did — including what it was refused” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Step 7 · School office

And when the people looking are us

Support work sometimes needs to see what a school sees. Every hosted system has this capability and most never mention it, which is the part schools object to when they find out. So: our support staff can open a read-only session inside a school, it is approved rather than self-served, it expires, and — the part that belongs on this page — the school is told while it is happening and keeps the record afterwards.

1

The school is told, on every page, for as long as it is true

This is an ordinary pupil register. The strip above it is what a school sees for the whole duration of a support session: who is reading, which case it is for, that it is read-only, and how many minutes are left, counting down. It is not in a menu and it is not in a notification that can be missed — it sits above the navigation, so it cannot be scrolled away from.

The operator is named. Not “platform support” — a person, with the case reference
Read-only is stated on the face of it, and enforced rather than promised
The clock is real and ticking; the session ends itself when it reaches zero
Leave ends the session server-side, not merely in the tab
The school can end it too — a session is a grant in the same register as any other, and it can be revoked
2

And it is on the school’s own trail, not ours

The session opened at 14:05 is a row on the school’s audit trail, with the reason it was opened and the approval behind it — and so is every record read inside it. The rows are attributed to a named person at EaseAcademia, not to the school account the session borrowed, which is the distinction that makes the record worth keeping.

The session start, with its case reference, its stated reason and its expiry
Every read performed inside it, on the same trail as everything else
Attributed to the operator, flagged as a platform actor — never merged into a school user’s activity
Exportable with the rest of the trail, so a school’s own compliance file holds our access as well as theirs
The session is initiated from our operator console, which no school account can reach — this page shows the half a school is entitled to see, which is the half that constrains us

Ready to run your school on this?

Every screen in “And when the people looking are us” is the live product, not a mockup. Create your school account, or have us walk you through it on a call.

Run your whole school on one connected platform

Start with the base package, switch on the modules you need, and give every parent, student and staff member a single place to log in.