Project Setting: Add toggle to remove Security & Compliance left nav item (BE)
## Why are we doing this work In project settings, there are a number of left sidebar menu items that can be toggled off such as the repository, issues, and snippets; however, there are a number of items that cannot be toggled off which leads to a poor user experience if the project isn't ever going to utilize those features. We should allow users to toggle off the Security & Compliance left nav item in Project Settings => General => Visibility, Project Features, and Permissions. This issue represents the ~backend work required to deliver this feature. The ~frontend work is tracked in https://gitlab.com/gitlab-org/gitlab/-/issues/224697. ## Relevant links <!-- Information that the developer might need to refer to when implementing the issue. - [Design Issue](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>) - [Design 1](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>/designs/<image>.png) - [Design 2](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>/designs/<image>.png) - [Similar implementation](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/<id>) --> ## Non-functional requirements <!-- Add details for required items and delete others. --> - [ ] Documentation: - [ ] Feature flag: - [ ] Performance: - [ ] Testing: ## Implementation plan - [x] Add a new column into `project_features` table - [x] "security_dashboard_access_level integer DEFAULT 20 NOT NULL" - [x] Add the model layer presence validation for the new column - [x] Update `project_permissions_settings` helper method to serialize the recently introduced column value - [x] Update `project_feature_attributes` method in projects controller to permit `security_dashboard_access_level` - [ ] Update the `EE::ProjectPolicy` to adhere the selected permission level - [ ] Update the `InstanceSecurityDashboard#authorized_access_levels` method to adhare the selected permission level
issue