WIP: Forbid Developer to erase job

What does this MR do?

This MR does

  • Add a new check before Projects::BuildsController#erase
  • Add proper tests to check developer will be rejected from erasing job

Are there points in the code the reviewer needs to double check?

New implementation should pass through can?(current_user, :update_build, build) and can?(current_user, :erase_build, project)

Why was this MR needed?

User has an issue with current behavior. @ayufan and @bikebilly approved the necessary.

Screenshots (if relevant)

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?

/cc @ayufan @bikebilly

Closes #31771 (moved)

Edited by Shinya Maeda

Merge request reports