getodk / getodk/central

Customizable user roles

Open
#737 0 comments 0 reactions 0 assignees View on GitHub
backend frontend
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.