Skip to content

Prevent users from assigning an invalid issue type to new issues

Peter Leitzen requested to merge pl-validate-issue-type into master

What does this MR do?

Prior this change, when creating a new issue, the passed parameter issue_type wasn't validated for its presence. We only checked if the corresponding policy is allowed.

For example:

  • When passing issue_type=incident we check if create_incident policy exists.

  • When passing issue_type=foo the policy check failed because there was no create_foo policy.

  • 💥 When passing issue_type=project, however, passes the policy check for create_project but the following assignment of issue_type in Issue fails with ArgumentError: 'project' is not a valid issue_type and results with 500 error.

📓 issue_type will be replaced by WorkItem::Type soon see !66519 (merged)).

This commit checks the presence of the passed issue_type before checking the corresponding policy to prevent such error.

Related issue

I've noticed this bug while working on #336624 (closed) and decided to fix it right away given the simple fix. Hence Stuff that should Just Work.

Screenshots or Screencasts (strongly suggested)

Example: Passing issue_type=project manually as in http://localhost:3000/gitlab-org/gitlab-shell/-/issues/new?issuable_template=incident&issue[issue_type]=project:

Before After
Screenshot_from_2021-08-26_18-49-00 Screenshot_from_2021-08-26_18-55-22

How to setup and validate locally (strongly suggested)

  1. Start GDK
  2. Open http://localhost:3000/gitlab-org/gitlab-shell/-/issues/new?issuable_template=incident&issue[issue_type]=project
  3. See "new issue" form where "Type" is selected to "Issue"

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Peter Leitzen

Merge request reports