Customizable user roles
- Dominant language
- JavaScript
- Stars
- 226
- Forks
- 235
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 19
Description
We know that there is interest in user roles beyond the ones we currently offer. We're tracking specific ideas for additional roles at #736. One option is that we simply add new fixed user roles, but another idea is that we add the ability for users to create their own roles. For each role, users would specify a name and a list of verbs that the role should confer.
## Implied verbs
One piece of complexity in this area is that currently, some verbs imply other verbs:
- `form.list` implies `open_form.list`: if you can `form.list`, you can do everything that `open_form.list` grants. Similarly, `form.read` implies `open_form.read`. See getodk/central-backend#968
- The ability to update generally provides the ability to read. https://github.com/getodk/central-backend/pull/1205#issuecomment-2389967002
We would want to make these verb implications clear in Frontend. One approach that we've discussed to make verb implications more explicit is getodk/central-backend#1205. That PR adds a database table for verbs, as well as a table for verb implications. If such a table existed, then one idea is that Backend could return a list of verb implications to Frontend.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with issue #736 and the referenced backend discussions in #968 and pull request #1205 to understand the proposed roles and verb implications. Then determine whether the agreed scope is fixed roles or user-defined roles, and how Frontend should present implications returned by Backend. The issue does not define a concrete completion condition.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- authorization, backend, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100