CommandCV commented on issue #15925: URL: https://github.com/apache/dolphinscheduler/issues/15925#issuecomment-3510709987
> Hiļ¼There are two options. Let's discuss them together and see which one is better [@ruanwenjun](https://github.com/ruanwenjun) [@CommandCV](https://github.com/CommandCV) > > Option 1 Modify the creator of the associated table Advantages: No compatibility with historical data, no need to modify permission logic Disadvantage: There are many modifications to the association table > > 1. Front end > Add a "Transfer Project" button for user management on the administrator page > (1) Select the corresponding target user > > <img alt="Image" width="2000" height="398" src="https://private-user-images.githubusercontent.com/65696095/510589897-766edfb7-d174-4a9d-805c-d96e21ff8463.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI3NzA0NTksIm5iZiI6MTc2Mjc3MDE1OSwicGF0aCI6Ii82NTY5NjA5NS81MTA1ODk4OTctNzY2ZWRmYjctZDE3NC00YTlkLTgwNWMtZDk2ZTIxZmY4NDYzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEwVDEwMjIzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY4MDVhYzk0MzM2YTY4M2Y4ZTlhMjZjYTllNGVlMzZmYzkzNGE1NGRhY2M4NDVlYjg2YWM1YzUyODI1NmU3ZTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.q9g61BGDfoU-kuFtE4pYDgM4tqdrzhFSjqnt9KIUSLo"> > (2) Select the projects that need to be transferred > > <img alt="Image" width="2000" height="797" src="https://private-user-images.githubusercontent.com/65696095/510589963-0b3588e7-1013-4a8f-9a5a-a0d16a4a4a2f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI3NzA0NTksIm5iZiI6MTc2Mjc3MDE1OSwicGF0aCI6Ii82NTY5NjA5NS81MTA1ODk5NjMtMGIzNTg4ZTctMTAxMy00YThmLTlhNWEtYTBkMTZhNGE0YTJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEwVDEwMjIzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1NjU0OTA5NzE1MTA4OTgyNDE1MGQxNTU4Y2EwMzdmNGY5ZTE5MDlhOTE5NzhhMjg3M2Y3MWM1YzJlNDNhNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ymm3dq_YSoA-Ix97y3pIe2bZF_QRbkJm4krSVO2OYYs"> > (3) Click OK to call the backend interface to transfer the project 2. Backend: Interface modification of user related table data to ensure data consistency t_ds_project t_ds_project_parameter t_ds_project_preference t_ds_relation_project_user t_ds_workflow_definition t_ds_workflow_definition_log t_ds_task_definition t_ds_task_definition_log t_ds_schedules t_ds_datasource t_ds_relation_datasource_user t_ds_k8s_namespace t_ds_relation_namespace_user > > Option 2 Increase owner permissions Advantages: No modification of table associated data Disadvantage: Requires compatibility with historical data or permission logic compatible with historical logic > > 1. Front end: > Add the "Grant Owner Permissions" button for authorization > > <img alt="Image" width="1598" height="800" src="https://private-user-images.githubusercontent.com/65696095/510590100-45f7abf7-76bf-4e77-8d8c-c6640b38f08e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjI3NzA0NTksIm5iZiI6MTc2Mjc3MDE1OSwicGF0aCI6Ii82NTY5NjA5NS81MTA1OTAxMDAtNDVmN2FiZjctNzZiZi00ZTc3LThkOGMtYzY2NDBiMzhmMDhlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTExMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUxMTEwVDEwMjIzOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJiNDY0OGQzN2Y3NzVkZGUzOTMwMGM0MjljNDhhMzExNGZjZTYwNzVhYzU0Y2ZmOTZkYzdjZGNiOTgzZTk4ZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.mdPmNINPx7VFhGIqxKxPebOTQOVPwYjwDS1vh5viBRQ"> > 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 I prefer the second approach. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
