Roles and Permissions
This document is the authoritative reference for all system roles and their permissions. Every role maps directly to an actor defined in the National Assembly Standing Orders (7th Edition) and is enforced at the API layer via Role-Based Access Control (RBAC) and a per-permission guard.
1. System Roles
| Role constant | Display name | NAE Standing Order authority |
|---|---|---|
superadmin | Super Administrator | System owner — not defined in Standing Orders |
admin | Administrator | System management — not defined in Standing Orders |
speaker | Speaker | S.O. 1, 4–12, 18, 78–79, 95, 97, 102, 106–112 |
deputy_speaker | Deputy Speaker | S.O. 13, 18 |
clerk | Clerk | S.O. 2, 2B, 3, 5(6), 10, 38–39, 521–524 |
member | Member of Parliament | S.O. 43, 47, 69, 78–82, 113, 219, 259F |
whip | Party Whip | S.O. 547–575 (Majority/Minority Whip) |
leader_majority | Leader of the Majority Party | S.O. 19, 19A, 97 |
leader_minority | Leader of the Minority Party | S.O. 20, 97 |
committee_chair | Chairperson of a Committee | S.O. 15–17, 178 |
hansard_editor | Hansard Editor | Internal — production of official record |
public | Public / Unauthenticated | S.O. 198, 252–254 (read-only public access) |
2. Role Descriptions and NAE Authority
Speaker (speaker)
The Speaker presides over all sittings of the National Assembly (S.O. 18). The Speaker's authority under the Standing Orders includes:
- Deciding all procedural questions not otherwise provided for (S.O. 1)
- Calling the House to order and adjourning sittings (S.O. 31)
- Granting or denying requests to speak, determining the order of speakers (S.O. 78–79)
- Activating and muting microphones via floor control (S.O. 79, 97)
- Closing debate and putting questions to the vote (S.O. 95)
- Naming and suspending Members for disorderly conduct (S.O. 107–110)
- Controlling broadcast of proceedings (S.O. 252)
Deputy Speaker (deputy_speaker)
Elected by the National Assembly (S.O. 13). Performs all Speaker functions when the Speaker is absent or when the Speaker vacates the Chair (S.O. 18). The Deputy Speaker holds the same in-session permissions as the Speaker.
Clerk (clerk)
The Clerk of the Assembly (S.O. 521–523) is the principal administrative officer. Clerk duties include:
- Obtaining coalition agreements from the Registrar of Political Parties (S.O. 2B)
- Administering Oaths or Affirmations to Members-elect (S.O. 3(3))
- Preparing and circulating the Order Paper (S.O. 38)
- Publishing the Weekly Programme (S.O. 39)
- Preparing ballot papers at least 2 hours before a Speaker election meeting (S.O. 5(6))
- Issuing ballot papers to Members and replacing spoiled ballots (S.O. 6)
- Sealing and taking custody of ballot papers (S.O. 10)
- Destroying ballot papers after 6 months (S.O. 10)
- Managing sitting creation, scheduling, and cancellation
- Managing petitions and documents tabled on the House
Member (member)
Any member of the National Assembly (S.O. 549). Members may:
- Request the floor and participate in debate (S.O. 78–82)
- Give notice of and move motions (S.O. 47)
- Submit questions (S.O. 42A)
- Make statements (S.O. 43)
- Introduce Public Bills (S.O. 113–114)
- Submit and present petitions (S.O. 219–220)
- Vote in divisions (S.O. 69–76)
- Declare interests before speaking on a matter (S.O. 90)
- Serve on committees (S.O. 173)
- Participate in Speaker elections (S.O. 5–7)
Whip (whip)
The Majority Party Whip (S.O. 547) and Minority Party Whip (S.O. 552) are Members designated by their respective parties to manage party discipline and speaking order. In the system, a Whip inherits all member permissions and additionally has visibility over the party's speaking queue management.
Leader of the Majority Party (leader_majority)
Defined in S.O. 532–536. Holds the same parliamentary permissions as a Member but receives an extended speaking time limit under S.O. 97 (60 minutes per contribution, versus 20 minutes for a regular Member).
Leader of the Minority Party (leader_minority)
Defined in S.O. 537–541. Same extended speaking time as the Leader of the Majority Party (S.O. 97 — 60 minutes).
Committee Chairperson (committee_chair)
Elected by the committee from among its members (S.O. 178). Chairs committee meetings, determines quorum (S.O. 178), and signs committee reports submitted to the House.
Hansard Editor (hansard_editor)
Responsible for producing, editing, and publishing the official verbatim record of proceedings. This role is internal and not directly defined in Standing Orders, but the obligation to keep a Hansard record is implied by Standing Order requirements for an official record.
Public (public)
Unauthenticated or public users. Access is limited to endpoints where Standing Orders mandate public transparency:
- Live broadcast of proceedings (S.O. 250, 252)
- Public access to proceedings (S.O. 253–254)
- Published petitions and order papers
3. Permission Matrix
The table below maps every permission constant to the roles that hold it. A tick (✓) means the role is granted that permission by default. The superadmin holds the all permission and is omitted from individual rows.
User Management
| Permission | admin | speaker | deputy_speaker | clerk | member | whip | leader_majority | leader_minority | committee_chair | hansard_editor | public |
|---|---|---|---|---|---|---|---|---|---|---|---|
user:create | ✓ | ||||||||||
user:read | ✓ | ✓ | ✓ | ✓ | |||||||
user:update | ✓ | ||||||||||
user:delete | ✓ |
Parliament Terms, Sessions and Calendar
| Permission | admin | clerk | member | public |
|---|---|---|---|---|
parliament:term:create | ✓ | ✓ | ||
parliament:term:read | ✓ | ✓ | ✓ | ✓ |
parliament:term:update | ✓ | ✓ | ||
parliament:term:delete | ✓ | |||
parliament:session:create | ✓ | ✓ | ||
parliament:session:read | ✓ | ✓ | ✓ | ✓ |
parliament:session:update | ✓ | ✓ | ||
parliament:session:delete | ✓ | |||
parliament:membership:create | ✓ | ✓ | ||
parliament:membership:read | ✓ | ✓ | ✓ | ✓ |
parliament:membership:update | ✓ | ✓ | ||
parliament:membership:delete | ✓ | |||
parliament:calendar:create | ✓ | ✓ | ||
parliament:calendar:read | ✓ | ✓ | ✓ | ✓ |
parliament:calendar:update | ✓ | ✓ | ||
parliament:calendar:delete | ✓ |
Weekly Programme (S.O. 39)
| Permission | admin | clerk | member | public |
|---|---|---|---|---|
weekly_programme:create | ✓ | ✓ | ||
weekly_programme:read | ✓ | ✓ | ✓ | ✓ |
weekly_programme:update | ✓ | ✓ | ||
weekly_programme:delete | ✓ |
Sittings (S.O. 26–33)
| Permission | admin | speaker | deputy_speaker | clerk | member | public |
|---|---|---|---|---|---|---|
sitting:create | ✓ | ✓ | ||||
sitting:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
sitting:update | ✓ | ✓ | ||||
sitting:delete | ✓ | |||||
sitting:start | ✓ | ✓ | ||||
sitting:adjourn | ✓ | ✓ | ||||
sitting:complete | ✓ | ✓ | ||||
sitting:cancel | ✓ | ✓ |
S.O. 31 — Adjournment is the Speaker's prerogative. Only the Speaker or Deputy Speaker may call the House to order or adjourn it.
Order Papers (S.O. 38)
| Permission | admin | speaker | clerk | member | public |
|---|---|---|---|---|---|
order_paper:create | ✓ | ✓ | |||
order_paper:read | ✓ | ✓ | ✓ | ✓ | ✓ |
order_paper:publish | ✓ | ✓ | ✓ |
S.O. 38 — The Clerk prepares and circulates the Order Paper. Primary Order Papers must be published at least 12 hours before the sitting; supplementary Order Papers at least 1 hour before.
Floor Control / Speaking (S.O. 78–82, 97)
| Permission | speaker | deputy_speaker | clerk | member | whip | leader_majority | leader_minority | committee_chair | public |
|---|---|---|---|---|---|---|---|---|---|
floor:request_speak | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
floor:grant_speak | ✓ | ✓ | |||||||
floor:deny_speak | ✓ | ✓ | |||||||
floor:list_requests | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
floor:mic_control | ✓ | ✓ |
Speaking time limits (S.O. 97):
| Speaker type | System constant | Time limit |
|---|---|---|
| Leader of Majority / Minority | LEADER_MAJORITY_MINORITY | 60 minutes |
| Regular Member (debate) | REGULAR_DEBATE | 20 minutes |
| Urgency motion mover (S.O. 33) | URGENCY_MOVER | 10 minutes |
| Other urgency speakers | URGENCY_OTHER | 5 minutes |
| Statement (S.O. 43) | STATEMENT | 3 minutes |
| Petition presenter (S.O. 225) | PETITION | 5 minutes |
| Point of Order | POINT_OF_ORDER | No formal limit — Speaker decides |
Queue ordering (S.O. 79): When two or more Members rise at the same time, the Speaker calls them in this order: Point of Order floats to the top; otherwise the Speaker determines priority. The system reflects this via SPEAKING_REQUEST_TYPE (POINT_OF_ORDER queue position = 0).
S.O. 81 — No Member may speak after the question has been put.
S.O. 82 — A Member may not speak twice to the same question (except to amendment, S.O. 82A).
Voting and Divisions (S.O. 69–76)
| Permission | speaker | deputy_speaker | clerk | member | whip | leader_majority | leader_minority | committee_chair |
|---|---|---|---|---|---|---|---|---|
vote:create | ✓ | ✓ | ||||||
vote:cast | ✓ | ✓ | ✓ | ✓ | ✓ | |||
vote:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
vote:tally | ✓ | ✓ | ✓ |
S.O. 69–70 — Voting is ordinarily by electronic means. A roll-call division may be claimed (S.O. 72). Decorum during division: no Member may enter, pass through, or leave the Chamber after the question is put (S.O. 76).
Motions (S.O. 46–60)
| Permission | admin | speaker | deputy_speaker | clerk | member | whip | leader_majority | leader_minority |
|---|---|---|---|---|---|---|---|---|
motion:create | ✓ | ✓ | ✓ | ✓ | ||||
motion:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
motion:update | ✓ | ✓ | ||||||
motion:approve | ✓ | ✓ | ||||||
motion:delete | ✓ | ✓ |
S.O. 47 — Notice of any motion must be given by a Member before it may be moved, except for motions that may be moved without notice under S.O. 52.
Committees (S.O. 171–202)
| Permission | admin | speaker | clerk | member | committee_chair |
|---|---|---|---|---|---|
committee:create | ✓ | ✓ | ✓ | ||
committee:read | ✓ | ✓ | ✓ | ✓ | ✓ |
committee:update | ✓ | ✓ | ✓ | ✓ | |
committee:delete | ✓ |
S.O. 178 — The quorum of a select committee is one-third of its membership. S.O. 173 — Members are nominated to committees. S.O. 184 — A Member adversely mentioned in a matter may not sit on the committee investigating it.
Petitions (S.O. 219–227)
| Permission | admin | speaker | clerk | member | public |
|---|---|---|---|---|---|
petition:read | ✓ | ✓ | ✓ | ✓ | ✓ |
petition:update | ✓ | ✓ | |||
petition:manage | ✓ | ✓ | ✓ |
S.O. 219 — Any person has the right to petition the National Assembly. S.O. 225 — The relevant committee must respond within 60 calendar days. S.O. 227 — The Assembly or committee must respond within 60 calendar days.
Questions (S.O. 42A–42G)
| Permission | admin | speaker | clerk | member |
|---|---|---|---|---|
question:submit | ✓ | |||
question:read | ✓ | ✓ | ✓ | ✓ |
question:admit | ✓ | ✓ | ||
question:answer | ✓ |
S.O. 42A — Notice of a question must be given at least three days before the sitting at which it is to be asked (ordinary questions). Urgent questions follow a separate procedure.
Statements (S.O. 43–44)
| Permission | admin | speaker | clerk | member | leader_majority | leader_minority |
|---|---|---|---|---|---|---|
statement:submit | ✓ | ✓ | ✓ | |||
statement:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
statement:debate | ✓ | ✓ | ✓ |
Debates
| Permission | admin | speaker | deputy_speaker | clerk | member | whip | leader_majority | leader_minority | committee_chair |
|---|---|---|---|---|---|---|---|---|---|
debate:create | ✓ | ✓ | ✓ | ✓ | |||||
debate:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
debate:participate | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
debate:manage | ✓ | ✓ |
Public Bills (S.O. 113–145)
| Permission | admin | speaker | clerk | member | whip | leader_majority | leader_minority |
|---|---|---|---|---|---|---|---|
bill:create | ✓ | ✓ | ✓ | ✓ | |||
bill:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
bill:update | ✓ | ✓ | |||||
bill:delete | ✓ | ||||||
bill:status:manage | ✓ | ✓ |
S.O. 113 — Bills may be introduced by any Member or by the Cabinet. S.O. 124 — Not more than one stage of a Bill may be taken at the same sitting.
Hansard (Official Record)
| Permission | admin | speaker | clerk | member | hansard_editor | public |
|---|---|---|---|---|---|---|
hansard:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
hansard:generate | ✓ | ✓ | ✓ |
Documents
| Permission | admin | speaker | clerk | member | hansard_editor |
|---|---|---|---|---|---|
document:upload | ✓ | ✓ | ✓ | ✓ | |
document:read | ✓ | ✓ | ✓ | ✓ | ✓ |
document:manage | ✓ | ✓ |
Financial Procedures (S.O. 232–241)
| Permission | admin | speaker | clerk | member | leader_majority |
|---|---|---|---|---|---|
financial:submit | ✓ | ✓ | ✓ | ||
financial:read | ✓ | ✓ | ✓ | ✓ | ✓ |
financial:approve | ✓ |
Broadcast and Public Access (S.O. 250–254)
| Permission | admin | speaker | deputy_speaker | clerk | member | public |
|---|---|---|---|---|---|---|
broadcast:start | ✓ | ✓ | ✓ | ✓ | ||
broadcast:stop | ✓ | ✓ | ✓ | ✓ | ||
broadcast:read | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
broadcast:redact | ✓ | ✓ |
S.O. 252 — The Speaker controls broadcasting and may order it discontinued. S.O. 253 — The public shall have access to proceedings of the National Assembly. S.O. 254 — The Speaker may exclude persons from the House or committee rooms.
Geographic Data
| Permission | admin | clerk | public |
|---|---|---|---|
geographic:create | ✓ | ||
geographic:read | ✓ | ✓ | ✓ |
geographic:update | ✓ | ||
geographic:delete | ✓ |
Member Profiles
| Permission | admin | clerk | member (own) |
|---|---|---|---|
member:profile:read | ✓ | ✓ | ✓ |
member:profile:update | ✓ | ✓ | |
member:profile:manage | ✓ | ✓ |
Speaker Election Permissions (S.O. 4–12B)
| Permission | clerk | member |
|---|---|---|
speaker:election:create | ✓ | |
speaker:election:read | ✓ | ✓ |
speaker:election:update | ✓ | |
speaker:election:delete | ✓ | |
speaker:nominate | ✓ | |
speaker:nomination:read | ✓ | ✓ |
speaker:nomination:withdraw | ✓ (own) | |
speaker:vote | ✓ | |
speaker:ballot:prepare | ✓ | |
speaker:ballot:issue | ✓ | |
speaker:ballot:replace | ✓ | |
speaker:ballot:seal | ✓ | |
speaker:ballot:destroy | ✓ | |
speaker:voting:open | ✓ | |
speaker:voting:close | ✓ | |
speaker:further:ballot | ✓ | |
speaker:tie:resolve | ✓ | |
speaker:results:read | ✓ | ✓ |
speaker:results:calculate | ✓ | |
speaker:oath:administer | ✓ | |
speaker:resignation:create | ✓ (own) | |
speaker:resignation:read | ✓ | ✓ |
speaker:resignation:notify | ✓ | |
speaker:removal:motion:create | ✓ | |
speaker:removal:motion:read | ✓ | ✓ |
speaker:removal:motion:schedule | ✓ | |
speaker:removal:motion:vote | ✓ | |
speaker:committee:create | ✓ | |
speaker:committee:investigate | ✓ (committee members) | |
speaker:committee:report | ✓ (committee members) |
S.O. 7(1) — A candidate for Speaker must receive at least two-thirds of all Members to be elected on the first ballot. S.O. 5(6) — The Clerk prepares ballot papers at least 2 hours before the meeting. S.O. 10 — Ballot papers are sealed and kept for 6 months, then destroyed by the Clerk.
System Administration
| Permission | superadmin | admin |
|---|---|---|
all | ✓ | |
system:audit | ✓ | ✓ |
system:settings | ✓ | ✓ |
system:backup | ✓ |
4. Managing Roles and Permissions via API
System administrators assign permissions to roles through the API. Permissions are then evaluated per-request by the PermissionsGuard.
| Operation | Method | Endpoint |
|---|---|---|
| List all roles | GET | /api/v1/roles |
| Create a role | POST | /api/v1/roles |
| Update a role's permissions | PUT | /api/v1/roles/:id |
| List all available permissions | GET | /api/v1/permissions |
| Assign role to user | POST | /api/v1/users/:id/roles |
5. Key Constraints from Standing Orders
| Rule | Standing Order | System enforcement |
|---|---|---|
| Only Speaker/Deputy Speaker may call House to order and adjourn | S.O. 31 | sitting:start, sitting:adjourn restricted to speaker and deputy_speaker |
| Only Speaker/Deputy Speaker may grant/deny floor | S.O. 78–79 | floor:grant_speak, floor:deny_speak restricted to speaker and deputy_speaker |
| Only Speaker/Deputy Speaker may control microphones | S.O. 79, 97 | floor:mic_control restricted to speaker and deputy_speaker |
| No Member may speak twice to the same question | S.O. 82 | Enforced in getSpeakingQueue — prior speaker check |
| No Member may speak after question put | S.O. 81 | Enforced at voting session creation — floor locked on vote:create |
| Leader of Majority/Minority has extended speaking time | S.O. 97 | SPEAKING_TIME_LIMITS.LEADER_MAJORITY_MINORITY = 3600 s applied on floor:grant_speak |
| Point of Order floats to top of queue | S.O. 79 | queuePosition = 0 for POINT_OF_ORDER request type |
| Ballot papers prepared 2 hours before Speaker election | S.O. 5(6) | speaker:ballot:prepare time-checked in service layer |
| Ballot papers destroyed after 6 months | S.O. 10 | speaker:ballot:destroy available to Clerk only |
| Order Paper published at least 12 h before sitting | S.O. 38 | timingWarning returned by order-papers/:id/publish |
| Supplementary Order Paper at least 1 h before sitting | S.O. 38 | Same timingWarning check, isSupplementary = true |
| Committee quorum is one-third of membership | S.O. 178 | committees/:id/quorum endpoint |
| Committee response to petition within 60 days | S.O. 225, 227 | Deadline tracked on Petition model |
| Gazette notice required for special sittings | S.O. 29 | gazetteNoticeRef required when type = SPECIAL |
| Public access to broadcast proceedings | S.O. 252–253 | broadcast:read and hansard:read granted to public |