Skip to main content

Who can do what in Administration

38 is the full count of things PTRS can do across four separate areas: managing users, importing data, organisations and sites, and your own account.

AreaActionsSetting
User management10Manage Users
Data import12Manage Location
Organisations and sites9View All Locations
Your own account7None at all, just being signed in

Who is admitted

Across these 38 actions, the pattern is richer than anywhere else in PTRS: some actions narrow their area's own setting, one widens it deliberately, and a whole area has no setting at all.

PatternCountWhere
The area's own setting is the whole answer28All of user management, most of data import, all of your own account
Restates the area's own setting explicitly4The four site-reading actions under organisations and sites
Narrows the area's setting5Two site-writing actions, and three account-location actions, all narrowed further
Widens deliberately, with no sign-in required at all1Downloading a blank import template
Widens by having no setting at every action in the area7The whole "your own account" area

Two things make this area's pattern the richest in the portal so far. It is the first area where something widens in two completely different ways: a genuine no-sign-in-required action, and a whole area with no setting at all. And having no setting is not the same as "administrators only": it admits every signed-in account of every role, including a guardian and a read-only account. One of those seven actions reads a record with no organisation boundary on it at all, covered below.

The third open, no-sign-in-required action in PTRS, and it earns its place

Downloading a blank import template is the third action anywhere in PTRS that needs no sign-in at all, and unlike the first two, this one is deliberate and cannot simply be tightened. The template is offered as a plain link, and a plain link carries no proof of who is asking, so requiring a sign-in would make the download fail outright.

What it actually exposes is a single header row and nothing else: the column names PTRS accepts for the six importable record types, the same names this very documentation already publishes. It touches no stored data of any kind.

The account table has no organisation boundary of its own

Every other kind of record in PTRS is automatically limited to its own organisation by one shared rule. The table holding PTRS account records is deliberately excluded from that rule, because one account can genuinely span more than one site, in a way the shared rule cannot express.

Nine of the ten user-management actions compensate by checking the organisation themselves, by hand, and reading a user's own activity checks it too before it reads anything. That is a real strength: this area knows the shared rule does not cover it, and works around that itself rather than trusting a protection that is not actually there.

One action does not: reading a single account by its own id has no organisation check and no setting on it at all. Nothing on any screen calls it today, and the ids it would need are long, unguessable values no other screen ever hands out, but the check itself is simply absent rather than passed.

The 38 actions

User management, 10 actions, all under Manage Users

Not one narrows or widens this area's own setting.

ActionWhat it doesReachable by
Read the user listA paged list for your organisation, with roles read from the sign-in service one account at a timeThe user list screen
Read one userOne account with sites, roles and a created dateThe user detail screen
Send an invitationCreates the sign-in account, assigns roles, requests the password email, writes the PTRS record and site assignmentsInvite User
Update a userUpdates email and display name on both sidesUser detail, Edit
Deactivate a userDisables the sign-in account, marks it inactive, removes site assignments, clears the remembered copy of their accessDeactivate User
Reactivate a userRe-enables the sign-in account and marks it active again. Does not restore site assignmentsReactivate User
Read assignable rolesRoles at or below your own levelThe role picker, the invite dialog
Assign a roleAdds one roleThe Roles card
Revoke a roleRemoves one roleThe Roles card
Read a user's activityPaged history for that accountUser detail

Data import, 12 actions, eleven under Manage Location

ActionWhat it doesReachable by
Upload a fileStores it and creates the jobStep 2
Validate a fileParses it, counts rows and columns, records warningsStep 2
Read field definitionsThe 64 fields the wizard can offerStep 1
Save field matchesReplaces the job's whole set of matchesStep 3
Suggest matchesFrom the column headers in your fileStep 3
Read a previewRuns 20 sample rows through your matchesStep 4
Run the importWrites the records, then removes the uploaded fileStep 6
Revert an importDeletes created records, partly restores merged onesStep 6
Read a summaryCounts, plus a breakdown by record typeStep 6
Read progressRows processed so farStep 6
Read import historyThe last 50 jobs for your organisationNothing reaches it, only a finished screen that no page in PTRS ever shows
Download a templateA two-line file naming the columns. Needs no sign-in at allStep 1, as a plain link

Organisations and sites, 9 actions, every one with its own setting

ActionSettingEffect on the areaReachable by
Read organisationsView All LocationsRestatesNothing reaches it
Read one organisationView All LocationsRestatesNothing reaches it
Read an organisation's sitesView All LocationsRestates34 places across the product
Read an organisation's membersView All LocationsRestatesNothing reaches it
Create a siteManage LocationNarrowsNothing reaches it
Update a siteManage LocationNarrowsNothing reaches it
Read an organisation's usersA staff-management settingNarrowsNothing reaches it
Read a user's sitesA staff-management settingNarrowsNothing reaches it
Set a user's sitesA staff-management settingNarrowsUser detail, Location Access, Save

Two of nine have anything calling them. The staff-management setting admits exactly the same roles as Manage Users, so the one reachable write here is available to precisely the audience already on the screen that calls it.

Reading organisations always returns exactly one row, your own organisation, in every installed copy of PTRS.

Your own account, 7 actions, no setting at all

ActionWhat it doesReachable by
Read your own detailsThe organisation, site and guardian context every screen depends onEvery page, on load
Read any account by idAny account record, by its own idNothing reaches it
Read your own preferencesTheme, language, layout, notificationsProfile, Preferences
Save your own preferencesWrites all fourProfile, Preferences
Save your own profileDisplay name, phone, birth date, addressProfile, Account
Change your own passwordChecks the old one, sets the new oneProfile, Security
Create or update an account from a sign-in identityCreates or updates a PTRS record from a bare sign-in identityNothing reaches it

Reading your own details and creating an account from a sign-in identity both run before PTRS has resolved any organisation context, so reading your own details resolves everything itself, directly, and says so plainly in its own notes. Creating an account this way has nowhere to get an organisation from and does not set one, which is exactly why an account created this way is refused everywhere else. See How a person becomes a PTRS user.

Summary

AreaActionsWith something calling themWithout
User management10100
Data import12111
Organisations and sites927
Your own account752
Total382810

User management is the first area in this whole portal with nothing unreachable at all, ten of ten reached from a real screen. Organisations and sites sits close to the opposite: seven complete, correctly built actions that nothing in the product asks for, including both of its writes for a site.

Requests that cannot return a correct answer

Four of the 28 reachable actions come back with something wrong, and one can fail outright.

ActionWhat happens
Upload a fileFails outright when your account has no reachable site at all
Upload a fileIgnores the site you picked and uses the first of your own reachable sites instead
Read the user list with a role filter setThe total and the page count are worked out before the filter runs, so both describe the unfiltered list
Read one userA "last signed in" value is declared and never actually filled in
Read a user's activityOne of its two matching rules can never match anything, since nothing ever writes the field it checks

The three gates, one screen at a time

Never assume the buttons you see match what PTRS will actually accept. On these screens they do not, in both directions.

ScreenWider navigation gateThe screen's own checkPTRS's own settingNet effect
User listRegional director and site director also let throughOrganisation administrator, super admin onlyOrganisation administrator, super adminCorrect. The wider two roles reach the screen and are shown a permission message
User detailSameSameSameCorrect, the same way
Data importSameOrganisation administrator, super admin onlySite director, organisation administrator, super adminWrong. A site director holds the setting PTRS actually checks, and the screen refuses to show it anyway
Your own profileNot gated at allNoneNoneCorrect, everyone, including a guardian

What each save actually checks

Fourteen of the 38 actions have a real check behind them. There is no check at all on any account's own device anywhere in PTRS, so these are the only field rules that exist.

ActionRule
Send an invitationEmail required, valid, up to 300 characters. First and last name required, up to 100. At least one role, and every one a role PTRS recognises
Update a userBoth ids required. When supplied, email must be valid and up to 300 characters, display name required and up to 200
Assign or revoke a roleBoth ids required. Role name required, up to 50 characters
Deactivate or reactivate a userBoth ids required. The self-check ("you cannot deactivate your own account") happens separately
Upload a fileA file, at least one record type, and a recognised duplicate choice are required. Size and format are checked separately, not by this rule
Save field matchesThe job id and its matches are required. Every match needs both a source and a target name. No two matches may target the same field
Create a siteFour fields required: an organisation, a name up to 200 characters, an address up to 500, and a type up to 100
Update a siteEvery field is checked only if supplied. A site's state is capped at 2 characters, unusually strict compared to the rest of this area
Create or update from a sign-in identityA sign-in reference, a valid email up to 300 characters, and a display name up to 200 are all required
Change your own passwordThe current password is required. The new one must be at least 8 characters and different from the old one. Anything beyond that is the sign-in service's own rule
Save your own preferencesTheme up to 50 characters, language up to 10, layout up to 5,000. None of the three is checked against a fixed list, so any value of the right length is accepted
Save your own profileWhen supplied: display name required up to 200, phone up to 30, address up to 500, country, state and city up to 100, postcode up to 20, and a birth date that cannot be in the future

Creating a site accepts three fields and fills four more on its own, setting two to blank and one to zero, and copying the state from the organisation. The organisation's own state field allows far more characters than a site's state field does, so an organisation whose state value is unusually long would produce sites that later refuse to accept that same value back.

ChoiceWhere its options come fromVerdict
Add a role, on a user's own recordPTRS itself, filtered to your levelMatches exactly, cannot offer a value PTRS would refuse
Roles, on the invite dialogThe same sourceMatches exactly, the same way
The role filter on the user listA fixed list of sevenMatches PTRS's own seven exactly. Both omit the OCCL auditor role, since neither sign-in environment defines it
Create New or Merge, on the import wizardA fixed pairMatches exactly. The behaviour behind the first choice is the opposite of what it describes, covered on the module landing page

No choice in this whole area ever offers a value PTRS does not recognise. That is the third area in a row this portal has found clean in this specific way, after Analytics and the Parent Portal.

What is remembered, and for how long

WhatHow longCleared by
A signed-in account's organisation and site accessA few minutesDeactivating, reactivating, or changing site access
A site list for an organisationLonger, about a quarter hourCreating or updating a site

Reading a site list checks its remembered copy before it checks that the organisation named even exists, so a fresh copy skips both that check and the usual organisation boundary. Reaching another organisation's site list that way needs its long, unguessable id, which nothing in this area will ever hand out, plus a copy that has not yet expired. It is recorded here because the order is wrong, not because it is something that can actually be exploited today.


Related

Checked against PTRS on 7 September 2026.