Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Permissions] User Roles #7416

Open
2 tasks
ridz1208 opened this issue Mar 31, 2021 · 0 comments
Open
2 tasks

[Permissions] User Roles #7416

ridz1208 opened this issue Mar 31, 2021 · 0 comments
Assignees
Labels
Category: Feature PR or issue that aims to introduce a new feature Proposal PR or issue suggesting an improvement that can be accepted, rejected or altered
Milestone

Comments

@ridz1208
Copy link
Collaborator

ridz1208 commented Mar 31, 2021

Based on the feedback from the focus group LORIS meeting.

This feature allows managers/coordinators to assign permissions to users based on their roles in the study. Roles are a pre-configured set of permissions automatically assigned when the user is given a new role.

What needs to be done?

  1. Create a roles configuration module. This module allows a front end user to create, modify or delete roles and alter role-permission associations from a centralized place.
    • This module needs to be intelligent enough to know how to update the existing data when roles are altered. For example, if existing users in the database are given a certain role and a new permission is later added to that role, it is this module's responsibility to handle the update of the user's permissions who currently have that role. this process should be explicit (The user making the changes in the module should be offered a popup to display which users need to be updated to get the new permission and alternatively which should instead see their role revoked)
    • This module should be intelligent enough to evaluate the state of the database and automatically offer to fix discrepancies. For example, If a permission get added to a role directly in SQL (bypassing the module's "ad permission" functionality), the module should offer an analyzer to evaluate which user's roles no longer match their permissions and offer solutions to fix these issues
  2. Implement the UI in the user_accounts module. The scope of the module above is limited to roles, role-permission associations and database integrity; a user interface to allow managers to assign roles to user should be implemented and added to the user_accounts module.
    • N.B. This feature has been attempted before and making this interface intuitive was a considerable challenge. For this reason we suggest the following behaviour. Role assignment for users should be done using an "Add Role" button which displays the roles available and a submit button should be clicked after having selected a role. Any auto-submission without an explicit button click runs the risk of users accidentally assigning the wrong roles and undoing that by revoking the role which in turn alters the edited user's permissions and risking them losing permissions they already had without the role.

This feature mostly involves front-end work and presents some logical challenges, proper design before implementation will be necessary.

Parent task: #7346

Old deprecated implementation:

@ridz1208 ridz1208 added Category: Feature PR or issue that aims to introduce a new feature Proposal PR or issue suggesting an improvement that can be accepted, rejected or altered labels Mar 31, 2021
@LeighMac LeighMac moved this to Need Design Meeting in LORIS RoadMap Jan 25, 2022
@ridz1208 ridz1208 assigned regisoc and unassigned CamilleBeau Oct 10, 2023
@regisoc regisoc mentioned this issue Oct 18, 2023
14 tasks
@regisoc regisoc mentioned this issue Nov 3, 2023
11 tasks
@regisoc regisoc moved this from Need Design Meeting to In Progress in LORIS RoadMap Jan 9, 2024
@driusan driusan added this to the 27.0.0 milestone Feb 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Feature PR or issue that aims to introduce a new feature Proposal PR or issue suggesting an improvement that can be accepted, rejected or altered
Projects
Status: In Progress
Development

No branches or pull requests

4 participants