Fix admin_mode enforcement in AdjournedProjectDeletionWorker
This change addresses an issue where project deletion fails when scheduled by an admin with admin mode enabled. The problem occurs because the `admin_mode` session value is not persisted to Sidekiq. To resolve this, we introduce an `admin_mode` flag for `ProjectDestroyWorker`, creating a temporary admin session for project deletion. This approach ensures that other policy checks, such as blocking or user permissions, remain enforced while bypassing the admin_mode check. The admin_mode check should only be performed when the deletion is scheduled. We have previously implemented a similar solution for groups in a separate merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163071. Changelog: fixed EE: true
显示
- app/workers/group_destroy_worker.rb 6 个添加, 23 个删除app/workers/group_destroy_worker.rb
- app/workers/project_destroy_worker.rb 8 个添加, 1 个删除app/workers/project_destroy_worker.rb
- ee/app/workers/adjourned_group_deletion_worker.rb 1 个添加, 2 个删除ee/app/workers/adjourned_group_deletion_worker.rb
- ee/spec/workers/adjourned_group_deletion_worker_spec.rb 5 个添加, 57 个删除ee/spec/workers/adjourned_group_deletion_worker_spec.rb
- ee/spec/workers/adjourned_project_deletion_worker_spec.rb 20 个添加, 6 个删除ee/spec/workers/adjourned_project_deletion_worker_spec.rb
- ee/spec/workers/group_destroy_worker_spec.rb 7 个添加, 12 个删除ee/spec/workers/group_destroy_worker_spec.rb
- lib/gitlab/auth/current_user_mode.rb 15 个添加, 0 个删除lib/gitlab/auth/current_user_mode.rb
- spec/lib/gitlab/auth/current_user_mode_spec.rb 33 个添加, 0 个删除spec/lib/gitlab/auth/current_user_mode_spec.rb
- spec/spec_helper.rb 3 个添加, 0 个删除spec/spec_helper.rb
- spec/support/rspec_order_todo.yml 0 个添加, 2 个删除spec/support/rspec_order_todo.yml
- spec/support/sidekiq.rb 16 个添加, 0 个删除spec/support/sidekiq.rb
- spec/workers/project_destroy_worker_spec.rb 40 个添加, 6 个删除spec/workers/project_destroy_worker_spec.rb
加载中
想要评论请 注册 或 登录