|
| 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