Skip to content

Commit 310bb4f

Browse files
authored
Create 2025-06-30-user-roles.md (#158)
* Create 2025-06-30-user-roles.md * Update 2025-06-30-user-roles.md fix typos * updated date
1 parent ebcbeaf commit 310bb4f

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
---
2+
title: User roles
3+
description: Looking at user roles and permissions
4+
date: 2025-07-07
5+
tags:
6+
- service
7+
- workflows
8+
- users
9+
- permissions
10+
- service design
11+
---
12+
13+
Following on from the workshop and design work we did around [workflows and approvals](/select-people-for-invitation/workflows/), we looked more closely at what user roles we would need in the service.
14+
15+
## Research
16+
17+
User research told us that safety and accuracy are paramount (ensuring the right people will be invited and will receive the correct invitation), and that the users needed the service to retain a 2-step approval process.
18+
19+
## Flexible approach
20+
21+
Whilst we have a good understanding of the current ways of working, we don't know the exact shape and size of future teams of users.
22+
23+
Therefore, flexibility became a key design consideration. We listed a number of principles that would give us the flexibility to support the current users but also future users:
24+
25+
- users can belong to 1 or more teams
26+
- users can have 1 or more roles per team
27+
- iterations need to be approved before being executed (either dry or live run)
28+
- a user cannot request approval from themself (even if they have the "approve" role)
29+
- output files cannot be released to NHS Notify until the summary report has been approved
30+
31+
## Breakdown of tasks
32+
33+
We broke down the tasks required in the end-to-end journey and based on what we'd learned in research, looked at where they could be grouped against a single role, and where a separation of roles would be required.
34+
35+
| Task | No role | Read | Write | Approve | Release | Admin |
36+
| -------- | ------- | ------- | ------- | ------- | ------- | ------- |
37+
| Contact SPI team | yes | yes | yes | yes | yes | yes |
38+
| View how to guide | yes | yes | yes | yes | yes | yes |
39+
| View release notes | yes | yes | yes | yes | yes | yes |
40+
| Access SPI | no | yes | yes | yes | yes | yes |
41+
| Open a campaign and view details | no | yes | yes | yes | yes | no |
42+
| Create or edit a campaign | no | no | yes | no | no | no |
43+
| Request approval for an iteration | no | no | yes | no | no | no |
44+
| Approve an iteration | no | no | no | yes | no | no |
45+
| Send an iteration for dry run | no | no | yes | no | no | no |
46+
| Send an iteration for live run | no | no | yes | no | no | no |
47+
| View summary report | no | yes | yes | yes | yes | no |
48+
| Approve or reject a summary report | no | no | no | yes | no | no |
49+
| Release output files to NHS Notify | no | no | no | no | yes | no |
50+
| Manage users within a team (future use case) | no | no | no | no | no | yes |
51+
52+
## An example of how we thought about separation of roles
53+
54+
We should not group "approving" and "releasing output files" into 1 role because the person approving the summary report might not also be the person who gives the go ahead to release the files to NHS Notify. There are often other operational considerations e.g. NHS Notify capacity, time we want invites to begin, capacity in downstream systems etc.
55+
56+
In other words, approving that the invitation configuration looks correct is not the same as saying we're ready for invitations to start flowing.
57+
58+
## How this design is flexible
59+
60+
The design to allow users multiple roles provides a great degree of flexibility in team design e.g.:
61+
62+
- the approver could also be the releaser if required, but they don't have to be
63+
- a user could have different roles in different teams e.g. in team 1 they could be "approver" and "releaser" but in team 2 they might only have the "read" role
64+
- it will be easy to add new roles in the future to support new features or changes to the service.

0 commit comments

Comments
 (0)