...
The organization information, including the levels, will be available as fields in the form or part of the user credentials.
The Viewer role will be implemented in CHEFS before the RLS implementation.
Use Cases
Team Manager (Admin)
The user will log into CHEFS and assign permissions (add new user, modify existing user permission, remove user) per:
...
If the organization has multiple levels, then the user will be able to view and submit the data at each of the lower levels of the organization.
Form Designer and Owner (Form Developer)
The form developer will enable form permissions by record/submission using fields available in the form.
Solution Approach
Here bellow the high-level system design wireframe of the proposed solution to handle RLS
To accommodate this on DB level we need to add new table form_rls
as well as add new column to form
table - rls
as bool (false
as default) to make it easier to determine if we call list of submissions would we need additional filter by user’s field assignment.
Also, as a part of current solution will be implemented Viewer
role which is not exist yet in CHEFS currently. This way user with this role would only see the submission list without ability to update or delete them.