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

Add roles for different user actions (permission groups) #703

Open
mihow opened this issue Jan 28, 2025 · 0 comments · May be fixed by #693
Open

Add roles for different user actions (permission groups) #703

mihow opened this issue Jan 28, 2025 · 0 comments · May be fixed by #693
Assignees
Labels
backend enhancement New feature or request

Comments

@mihow
Copy link
Collaborator

mihow commented Jan 28, 2025

Currently read, write & delete permissions are determined only by whether a user is a member or owner of a project (and or is_staff or superuser across the whole system)

Implementing roles means adding custom permission for certain actions like adding species identifications or importing data. A moth expert will likely have the ability to add species identifications in multiple projects, even if they can't edit other parts of the project.

Here are some notes about the potential roles / permission groups.

This will also require a user interface where project managers can update membership themselves (follow-up ticket, stay in the Django admin for now)


NOT IN PROJECT.MEMBERS()
Public browsing (anonymous user, not a member of any project)
Can view project data (if not private project)

YES IN PROJECT.MEMBERS()

Browsing role (no special permissions)
Can view private project data
Get email notifications about project

IN PERMISSION GROUP

Research role (login required)
Can trigger exports for downloading data
(could potentially export data from private projects they are a member of)

Identifier Role
Permission to make identifications
Allowed to update the Identifications model
Is member of the current identification’s Project
Current identification belongs to project that user is a member of

ML / Data manager role
Permissions to process images (run ML jobs)
Allowed to create a Job
Can delete occurrences

Project manager role
Setting up project, registering deployments (“stations”)
Permission to import/sync data
Adding cover images, writing public description of project
Managing project members

@mihow mihow added this to the Permissions & Private Projects milestone Jan 28, 2025
@f-PLT f-PLT linked a pull request Feb 4, 2025 that will close this issue
7 tasks
@f-PLT f-PLT added enhancement New feature or request backend labels Feb 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants