apache / apache/dolphinscheduler
[DSIP-93][API] Project add owner permissions to resource permissions, enable resource transfer to users, and modify and delete user logic
- Dominant language
- Java
- Stars
- 14.5k
- Forks
- 5.1k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 29
Description
### Search before asking
- [x] I had searched in the [DSIP](https://github.com/apache/dolphinscheduler/issues/14102) and found no similar DSIP.
### Motivation
At present, the project does not support transferring users, please refer to the following issue #15925;
Project permissions are associated with project creators, in order to decouple project creators from project permissions and increase project owner permissions;
### Design Detail
1. Front end:
Add the "Grant Owner Permissions" button for authorization
2. Backend:
(1) On the basis of the previous permissions, add the owner permission OWNER_PERMISSION=99 to have all permissions. Replace the project creator and modify the verification logic of the previous project creator
(2) Transfer authorization logic before reusing permissions, transfer project permissions, increase owner permissions for target users, and revoke all permissions for source users; The source user and target user belong to the same tenant
### Compatibility, Deprecation, and Migration Plan
The creator of the historical data creation project needs to add owner permissions
### Test Plan
Modify test cases
When creating a project, the creator defaults to having owner's permissions
When deleting or editing a project, verify that the creator has been changed to verify the owner's permissions
When deleting a user, there is no need to verify whether the user is the project creator
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Research direction
Start with the project authorization flow in the frontend and backend, focusing on the grant-owner control, project permission checks, and user transfer logic described here. Review the existing permission-related tests before changing behavior. Done means owners have full permissions, transfers move project access between users in the same tenant, and the listed create, edit, delete, and migration cases are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- authorization, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100