DependencyTrack / DependencyTrack/dependency-track
DTrack v4 Portfolio Access Control allows Teams to create parent projects outside their assigned project
- Dominant language
- Java
- Stars
- 4.2k
- Forks
- 811
- Avg merge
- 8h 39m
- Merged PRs (30d)
- 237
Description
### Current Behavior
In Portfolio Access Control, when assigning a Team "Project access" to one or more projects, the permission PROJECT_CREATION_UPLOAD allows Teams to noy only create new child projects within their assigned project, but also to create an arbitrary number of new, top-level parent projects in DTrack. Shouldn't they just be able to create children within the project(s) assigned to that Team?
Related: #1127
### Steps to Reproduce
1. Install DTrack v4.12.x
2. Create a Team
3. Assign permissions to the team including PROJECT_CREATION_UPLOAD
4. Create a parent project for the team
5. Assign the Team access to that parent project
6. Login as a member of that team
7. Upload SBOMs not specifying a parent project ID, which will create new parent projects
### Expected Behavior
Teams should only be able to create projects within their assigned parent projects. There could be a new permission to create new parent projects outside of their assigned projects (PARENT_PROJECT_CREATION_UPLOAD?). Or, alternatively, Teams could be given access to a default "DTrack Root" project if they need to create new top-level parents.
### Dependency-Track Version
4.x
### Browser
Microsoft Edge
### Checklist
- [x] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/main/CONTRIBUTING.md#filing-issues)
- [x] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this defect was already reported
Contributor guide
Research direction
Reproduce the behavior in Dependency-Track v4.12.x using the listed team, permission, project-access, and SBOM-upload steps, then trace the authorization entry point handling PROJECT_CREATION_UPLOAD when no parent project ID is supplied. Done means team members can create child projects only within assigned parent projects, while the intended behavior for new top-level parents is clarified and covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authorization, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100