From bf8bfc221369c8201f028ce22819c0ca0ec55974 Mon Sep 17 00:00:00 2001 From: Manoj M J Date: Thu, 11 May 2023 15:30:11 +0200 Subject: [PATCH 1/8] Remove flag `always_perform_delayed_deletion` Remove flag `always_perform_delayed_deletion` Changelog: other --- .../groups/settings/_permissions.html.haml | 2 - .../always_perform_delayed_deletion.yml | 8 --- .../admin/application_settings_controller.rb | 8 --- ee/app/controllers/ee/groups_controller.rb | 6 --- .../helpers/ee/application_settings_helper.rb | 11 ---- ee/app/helpers/ee/groups_helper.rb | 5 -- ee/app/models/ee/group.rb | 5 +- ee/app/models/ee/project.rb | 10 +--- .../_delayed_project_removal.html.haml | 30 ----------- ee/lib/ee/api/entities/application_setting.rb | 2 - .../application_settings_controller_spec.rb | 20 ------- .../controllers/ee/groups_controller_spec.rb | 8 --- .../controllers/projects_controller_spec.rb | 12 +---- .../features/groups/group_settings_spec.rb | 53 ------------------- ee/spec/features/projects_spec.rb | 15 ++---- ee/spec/helpers/ee/groups_helper_spec.rb | 26 --------- ee/spec/models/ee/group_spec.rb | 15 ++---- ee/spec/models/ee/project_spec.rb | 27 ++++------ ee/spec/requests/api/groups_spec.rb | 12 +---- ee/spec/requests/api/projects_spec.rb | 24 +-------- ee/spec/requests/api/settings_spec.rb | 26 --------- ...tive_projects_deletion_cron_worker_spec.rb | 24 +-------- locale/gitlab.pot | 6 --- 23 files changed, 28 insertions(+), 327 deletions(-) delete mode 100644 config/feature_flags/development/always_perform_delayed_deletion.yml delete mode 100644 ee/app/views/groups/settings/_delayed_project_removal.html.haml diff --git a/app/views/groups/settings/_permissions.html.haml b/app/views/groups/settings/_permissions.html.haml index 6fa76297679d9d..8fec56007800e1 100644 --- a/app/views/groups/settings/_permissions.html.haml +++ b/app/views/groups/settings/_permissions.html.haml @@ -30,8 +30,6 @@ help_text: s_('GroupSettings|Group members are not notified if the group is mentioned.') = render 'groups/settings/resource_access_token_creation', f: f, group: @group - - unless Feature.enabled?(:always_perform_delayed_deletion) - = render_if_exists 'groups/settings/delayed_project_removal', f: f, group: @group = render 'groups/settings/ip_restriction_registration_features_cta', f: f = render_if_exists 'groups/settings/ip_restriction', f: f, group: @group = render_if_exists 'groups/settings/allowed_email_domain', f: f, group: @group diff --git a/config/feature_flags/development/always_perform_delayed_deletion.yml b/config/feature_flags/development/always_perform_delayed_deletion.yml deleted file mode 100644 index df3d318a3957e5..00000000000000 --- a/config/feature_flags/development/always_perform_delayed_deletion.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: always_perform_delayed_deletion -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113332 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/393622 -milestone: '15.10' -type: development -group: group::tenant scale -default_enabled: true diff --git a/ee/app/controllers/ee/admin/application_settings_controller.rb b/ee/app/controllers/ee/admin/application_settings_controller.rb index 8f83f495577e41..e932ebbcd6f044 100644 --- a/ee/app/controllers/ee/admin/application_settings_controller.rb +++ b/ee/app/controllers/ee/admin/application_settings_controller.rb @@ -15,9 +15,6 @@ module ApplicationSettingsController before_action :push_password_complexity_feature, only: [:general] before_action :new_license, only: [:general] before_action :scim_token, only: [:general] - before_action only: [:general] do - push_frontend_feature_flag(:always_perform_delayed_deletion) - end feature_category :sm_provisioning, [:seat_link_payload] feature_category :source_code_management, [:templates] @@ -79,11 +76,6 @@ def visible_application_setting_attributes attrs += EE::ApplicationSettingsHelper.repository_mirror_attributes end - if License.feature_available?(:adjourned_deletion_for_projects_and_groups) && - ::Feature.disabled?(:always_perform_delayed_deletion) - attrs += EE::ApplicationSettingsHelper.delayed_deletion_attributes - end - # License feature => attribute name { custom_project_templates: :custom_project_templates_group_id, diff --git a/ee/app/controllers/ee/groups_controller.rb b/ee/app/controllers/ee/groups_controller.rb index a6669721162397..7d6be6932295ad 100644 --- a/ee/app/controllers/ee/groups_controller.rb +++ b/ee/app/controllers/ee/groups_controller.rb @@ -101,12 +101,6 @@ def group_params_ee if experimental_and_third_party_ai_settings_enabled? params_ee.push(:experiment_features_enabled, :third_party_ai_features_enabled) end - - if current_group&.feature_available?(:adjourned_deletion_for_projects_and_groups) && - ::Feature.disabled?(:always_perform_delayed_deletion) - params_ee << :delayed_project_removal - params_ee << :lock_delayed_project_removal - end end end diff --git a/ee/app/helpers/ee/application_settings_helper.rb b/ee/app/helpers/ee/application_settings_helper.rb index 06a5348c574dc9..7772ff9ac8ab70 100644 --- a/ee/app/helpers/ee/application_settings_helper.rb +++ b/ee/app/helpers/ee/application_settings_helper.rb @@ -121,7 +121,6 @@ def self.possible_licensed_attributes merge_request_appovers_rules_attributes + password_complexity_attributes + git_abuse_rate_limit_attributes + - delayed_deletion_attributes + %i[ email_additional_text file_template_project_id @@ -167,16 +166,6 @@ def self.git_abuse_rate_limit_attributes ] end - def self.delayed_deletion_attributes - # TODO: Remove in 16.0, after https://gitlab.com/gitlab-org/gitlab/-/issues/393622 is turned ON - # We cannot add a feature flag check in this file, due to the reason mentioned in - # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/92218#note_1026250151 - %i[ - delayed_project_deletion - delayed_group_deletion - ] - end - override :registration_features_can_be_prompted? def registration_features_can_be_prompted? !::Gitlab::CurrentSettings.usage_ping_enabled? && !License.current.present? diff --git a/ee/app/helpers/ee/groups_helper.rb b/ee/app/helpers/ee/groups_helper.rb index 3577250f67cb95..1fe04e6257e835 100644 --- a/ee/app/helpers/ee/groups_helper.rb +++ b/ee/app/helpers/ee/groups_helper.rb @@ -53,11 +53,6 @@ def show_group_activity_analytics? can?(current_user, :read_group_activity_analytics, @group) end - def show_delayed_project_removal_setting?(group) - group.licensed_feature_available?(:adjourned_deletion_for_projects_and_groups) && - ::Feature.disabled?(:always_perform_delayed_deletion) - end - def show_product_purchase_success_alert? !params[:purchased_product].blank? end diff --git a/ee/app/models/ee/group.rb b/ee/app/models/ee/group.rb index 7991ff12cb5c14..59ba654de5ff19 100644 --- a/ee/app/models/ee/group.rb +++ b/ee/app/models/ee/group.rb @@ -555,9 +555,8 @@ def adjourned_deletion? end def adjourned_deletion_configured? - return true if ::Feature.enabled?(:always_perform_delayed_deletion) - - ::Gitlab::CurrentSettings.delayed_group_deletion + # From 16.0, adjourned deletion is the default. + true end def vulnerabilities diff --git a/ee/app/models/ee/project.rb b/ee/app/models/ee/project.rb index 459e53787371b0..7ebbfbae4d80a8 100644 --- a/ee/app/models/ee/project.rb +++ b/ee/app/models/ee/project.rb @@ -914,7 +914,7 @@ def adjourned_deletion? def adjourned_deletion_configured? ::Gitlab::CurrentSettings.deletion_adjourned_period > 0 && - group_deletion_mode_configured? + !personal? end def marked_for_deletion? @@ -1205,14 +1205,6 @@ def requirements_ci_variables end end - # Return the group's setting for delayed deletion, false for user namespace projects - def group_deletion_mode_configured? - return true if ::Feature.enabled?(:always_perform_delayed_deletion) && !personal? - return false unless group&.namespace_settings - - group.namespace_settings.delayed_project_removal? - end - # If the project is inside a fork network, the mirror URL must # also belong to a member of that fork network def import_url_inside_fork_network diff --git a/ee/app/views/groups/settings/_delayed_project_removal.html.haml b/ee/app/views/groups/settings/_delayed_project_removal.html.haml deleted file mode 100644 index c506a8a77b0dea..00000000000000 --- a/ee/app/views/groups/settings/_delayed_project_removal.html.haml +++ /dev/null @@ -1,30 +0,0 @@ -- return unless show_delayed_project_removal_setting?(group) - -- setting_locked = cascading_namespace_setting_locked?(:delayed_project_removal, group) -- delay_enabled = group.namespace_settings.delayed_project_removal? -- learn_more_link = help_page_path('user/project/settings/index.md', anchor: 'delayed-project-deletion') - -.form-group.gl-mb-2{ data: { testid: 'delayed-project-removal-form-group' } } - %label.gl-mb-0 - = s_('DeletionSettings|Deletion protection') - - if setting_locked - = render 'shared/namespaces/cascading_settings/lock_icon', attribute: :delayed_project_removal, - group: group, - settings_path_helper: ->(locked_ancestor) { edit_group_path(locked_ancestor, anchor: 'js-permissions-settings') }, - class_list: 'gl-relative!' - %span.form-text.text-muted.gl-pb-4 - = delayed_project_removal_help_text - - if delayed_deletion_disabled - = s_('DeletionSettings|All projects are deleted immediately.') - = link_to _('Learn more.'), learn_more_link, target: '_blank', rel: 'noopener noreferrer' - - - if !delayed_deletion_disabled - = f.gitlab_ui_radio_component :delayed_project_removal, true, keep_deleted_option_label, radio_options: { checked: delay_enabled, disabled: setting_locked, data: { testid: 'delayed-project-removal-radio-button' } } - = f.gitlab_ui_radio_component :delayed_project_removal, false, s_('DeletionSettings|None, delete immediately'), radio_options: { checked: !delay_enabled, disabled: setting_locked } - = render 'shared/namespaces/cascading_settings/enforcement_checkbox', - attribute: :delayed_project_removal, - label: s_('CascadingSettings|Enforce deletion protection for all subgroups'), - help_text: nil, - group: group, - form: f, - setting_locked: setting_locked diff --git a/ee/lib/ee/api/entities/application_setting.rb b/ee/lib/ee/api/entities/application_setting.rb index 2f38a9a1e2a992..8f202544e9df35 100644 --- a/ee/lib/ee/api/entities/application_setting.rb +++ b/ee/lib/ee/api/entities/application_setting.rb @@ -19,8 +19,6 @@ module ApplicationSetting expose :email_additional_text, if: ->(_instance, _opts) { ::License.feature_available?(:email_additional_text) } expose :file_template_project_id, if: ->(_instance, _opts) { ::License.feature_available?(:custom_file_templates) } expose :default_project_deletion_protection, if: ->(_instance, _opts) { ::License.feature_available?(:default_project_deletion_protection) } - expose :delayed_project_deletion, if: ->(_instance, _opts) { ::License.feature_available?(:adjourned_deletion_for_projects_and_groups) && ::Feature.disabled?(:always_perform_delayed_deletion) } - expose :delayed_group_deletion, if: ->(_instance, _opts) { ::License.feature_available?(:adjourned_deletion_for_projects_and_groups) && ::Feature.disabled?(:always_perform_delayed_deletion) } expose :deletion_adjourned_period, if: ->(_instance, _opts) { ::License.feature_available?(:adjourned_deletion_for_projects_and_groups) } expose :disable_personal_access_tokens, if: ->(_instance, _opts) { ::License.feature_available?(:disable_personal_access_tokens) } expose :updating_name_disabled_for_users, if: ->(_instance, _opts) { ::License.feature_available?(:disable_name_update_for_users) } diff --git a/ee/spec/controllers/admin/application_settings_controller_spec.rb b/ee/spec/controllers/admin/application_settings_controller_spec.rb index 0c8ba310925d57..79ce04f9c843f5 100644 --- a/ee/spec/controllers/admin/application_settings_controller_spec.rb +++ b/ee/spec/controllers/admin/application_settings_controller_spec.rb @@ -102,26 +102,6 @@ it_behaves_like 'settings for licensed features' end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - context 'default delayed group deletion' do - let(:settings) { { delayed_group_deletion: true } } - let(:feature) { :adjourned_deletion_for_projects_and_groups } - - it_behaves_like 'settings for licensed features' - end - - context 'default delayed project deletion' do - let(:settings) { { delayed_project_deletion: true } } - let(:feature) { :adjourned_deletion_for_projects_and_groups } - - it_behaves_like 'settings for licensed features' - end - end - context 'updating name disabled for users setting' do let(:settings) { { updating_name_disabled_for_users: true } } let(:feature) { :disable_name_update_for_users } diff --git a/ee/spec/controllers/ee/groups_controller_spec.rb b/ee/spec/controllers/ee/groups_controller_spec.rb index 34516f0c2b8419..ab1ccd8db29470 100644 --- a/ee/spec/controllers/ee/groups_controller_spec.rb +++ b/ee/spec/controllers/ee/groups_controller_spec.rb @@ -671,14 +671,6 @@ context 'when feature is available' do let(:available) { true } - context 'when the feature flag `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'allows storing of settings' - end - it_behaves_like 'does not allow storing of settings' end diff --git a/ee/spec/controllers/projects_controller_spec.rb b/ee/spec/controllers/projects_controller_spec.rb index de841d72f4425f..5e0fc310b8349a 100644 --- a/ee/spec/controllers/projects_controller_spec.rb +++ b/ee/spec/controllers/projects_controller_spec.rb @@ -878,17 +878,7 @@ allow(group.namespace_settings).to receive(:delayed_project_removal?).and_return(false) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'deletes project right away' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'marks project for deletion' - end + it_behaves_like 'marks project for deletion' end context 'when feature is not available for the project' do diff --git a/ee/spec/features/groups/group_settings_spec.rb b/ee/spec/features/groups/group_settings_spec.rb index 7717b5593ed539..3d33ebb0af9458 100644 --- a/ee/spec/features/groups/group_settings_spec.rb +++ b/ee/spec/features/groups/group_settings_spec.rb @@ -162,59 +162,6 @@ stub_licensed_features(adjourned_deletion_for_projects_and_groups: true) end - context 'when `always_perform_delayed_deletion` feature flag is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'a cascading setting' do - let_it_be(:subgroup) { create(:group, parent: group) } - let(:setting_field_selector) { '[data-testid="delayed-project-removal-radio-button"]' } - let(:setting_path) { edit_group_path(group, anchor: 'js-permissions-settings') } - let(:group_path) { edit_group_path(group) } - let(:subgroup_path) { edit_group_path(subgroup) } - let(:click_save_button) { save_permissions_group } - let(:enable_setting) { -> { choose 'group_delayed_project_removal_true' } } - end - - context 'delayed deletion is disabled by an admin', :js do - let_it_be(:user) { create(:admin) } - - before do - stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') - stub_feature_flags(always_perform_delayed_deletion: false) - gitlab_enable_admin_mode_sign_in(user) - - visit general_admin_application_settings_path - - page.within '#js-visibility-settings' do - choose 'None, delete immediately' - click_button 'Save changes' - end - end - - it 'does not render the group delayed deletion inputs' do - visit edit_group_path(group) - - page.within form_group_selector do - expect(page).not_to have_selector('input') - end - end - - it 'displays lock icon with popover' do - visit edit_group_path(group) - - page.within form_group_selector do - find('[data-testid="cascading-settings-lock-icon"]').click - end - - page.within '[data-testid="cascading-settings-lock-popover"]' do - expect(page).to have_text 'This setting has been enforced by an instance admin.' - end - end - end - end - describe 'immediately deleting a project marked for deletion', :js do before do create(:group_deletion_schedule, group: group, marked_for_deletion_on: 2.days.from_now) diff --git a/ee/spec/features/projects_spec.rb b/ee/spec/features/projects_spec.rb index 164e356955dc48..c2cfa3a0e6c120 100644 --- a/ee/spec/features/projects_spec.rb +++ b/ee/spec/features/projects_spec.rb @@ -35,21 +35,16 @@ def remove_with_confirm(button_text, confirm_with, confirm_button_text = 'Confir let(:project) { create(:project, group: group) } let(:user) { create(:user) } - where(:feature_available_on_instance, :delayed_project_removal, :always_perform_delayed_deletion, :shows_adjourned_delete) do - true | nil | true | true - true | true | true | true - false | true | true | false - false | nil | true | false - true | nil | false | false - true | true | false | true - false | true | false | false - false | nil | false | false + where(:feature_available_on_instance, :delayed_project_removal, :shows_adjourned_delete) do + true | nil | true + true | true | true + false | true | false + false | nil | false end before do stub_application_setting(deletion_adjourned_period: 7) stub_licensed_features(adjourned_deletion_for_projects_and_groups: feature_available_on_instance) - stub_feature_flags(always_perform_delayed_deletion: always_perform_delayed_deletion) group.add_member(user, Gitlab::Access::OWNER) sign_in user diff --git a/ee/spec/helpers/ee/groups_helper_spec.rb b/ee/spec/helpers/ee/groups_helper_spec.rb index 9d91e9694eb018..8ad316c88965f3 100644 --- a/ee/spec/helpers/ee/groups_helper_spec.rb +++ b/ee/spec/helpers/ee/groups_helper_spec.rb @@ -128,14 +128,6 @@ stub_application_setting(delayed_group_deletion: false) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'permanent deletion message' - end - context 'when `always_perform_delayed_deletion` is enabled' do it_behaves_like 'delayed deletion message' end @@ -226,24 +218,6 @@ end end - describe '#show_delayed_project_removal_setting?' do - before do - stub_licensed_features(adjourned_deletion_for_projects_and_groups: licensed?) - stub_feature_flags(always_perform_delayed_deletion: always_perform_delayed_deletion) - end - - where(:licensed?, :always_perform_delayed_deletion, :result) do - true | true | false - false | true | false - true | false | true - false | false | false - end - - with_them do - it { expect(helper.show_delayed_project_removal_setting?(group)).to be result } - end - end - describe '#show_product_purchase_success_alert?' do describe 'when purchased_product is present' do before do diff --git a/ee/spec/models/ee/group_spec.rb b/ee/spec/models/ee/group_spec.rb index ecabec6e67ef17..9bd112f2ebd956 100644 --- a/ee/spec/models/ee/group_spec.rb +++ b/ee/spec/models/ee/group_spec.rb @@ -2220,15 +2220,11 @@ def webhook_headers end context 'delayed deletion feature is available' do - where(:adjourned_period, :delayed_group_deletion, :always_perform_delayed_deletion, :expected) do - 0 | true | true | false - 0 | false | true | false - 1 | true | true | true - 1 | false | true | true - 0 | true | false | false - 0 | false | false | false - 1 | true | false | true - 1 | false | false | false + where(:adjourned_period, :delayed_group_deletion, :expected) do + 0 | true | false + 0 | false | false + 1 | true | true + 1 | false | true end with_them do @@ -2236,7 +2232,6 @@ def webhook_headers stub_licensed_features(adjourned_deletion_for_projects_and_groups: true) stub_application_setting(deletion_adjourned_period: adjourned_period) stub_application_setting(delayed_group_deletion: delayed_group_deletion) - stub_feature_flags(always_perform_delayed_deletion: always_perform_delayed_deletion) end it { is_expected.to expected ? be_truthy : be_falsey } diff --git a/ee/spec/models/ee/project_spec.rb b/ee/spec/models/ee/project_spec.rb index 3250ac33a2765d..a310f3035b1ddb 100644 --- a/ee/spec/models/ee/project_spec.rb +++ b/ee/spec/models/ee/project_spec.rb @@ -3289,23 +3289,15 @@ def stub_default_url_options(host) describe '#adjourned_deletion?' do subject { project.adjourned_deletion? } - where(:licensed?, :feature_enabled_on_group?, :adjourned_period, :always_perform_delayed_deletion, :result) do - true | true | 0 | true | false - true | true | 1 | true | true - true | false | 0 | true | false - true | false | 1 | true | true - false | true | 0 | true | false - false | true | 1 | true | false - false | false | 0 | true | false - false | false | 1 | true | false - true | true | 0 | false | false - true | true | 1 | false | true - true | false | 0 | false | false - true | false | 1 | false | false - false | true | 0 | false | false - false | true | 1 | false | false - false | false | 0 | false | false - false | false | 1 | false | false + where(:licensed?, :feature_enabled_on_group?, :adjourned_period, :result) do + true | true | 0 | false + true | true | 1 | true + true | false | 0 | false + true | false | 1 | true + false | true | 0 | false + false | true | 1 | false + false | false | 0 | false + false | false | 1 | false end with_them do @@ -3316,7 +3308,6 @@ def stub_default_url_options(host) stub_licensed_features(adjourned_deletion_for_projects_and_groups: licensed?) stub_application_setting(deletion_adjourned_period: adjourned_period) allow(group.namespace_settings).to receive(:delayed_project_removal?).and_return(feature_enabled_on_group?) - stub_feature_flags(always_perform_delayed_deletion: always_perform_delayed_deletion) end it { is_expected.to be result } diff --git a/ee/spec/requests/api/groups_spec.rb b/ee/spec/requests/api/groups_spec.rb index 0c17a7264a4954..3a84f04e310247 100644 --- a/ee/spec/requests/api/groups_spec.rb +++ b/ee/spec/requests/api/groups_spec.rb @@ -1194,17 +1194,7 @@ stub_application_setting(delayed_group_deletion: false) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'immediately enqueues the job to delete the group' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'marks group for delayed deletion' - end + it_behaves_like 'marks group for delayed deletion' end context 'failure' do diff --git a/ee/spec/requests/api/projects_spec.rb b/ee/spec/requests/api/projects_spec.rb index 667666ea091237..6c2bf09500423b 100644 --- a/ee/spec/requests/api/projects_spec.rb +++ b/ee/spec/requests/api/projects_spec.rb @@ -1715,17 +1715,7 @@ stub_application_setting(lock_delayed_project_removal: true, delayed_project_removal: false) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'deletes project immediately' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'marks project for deletion' - end + it_behaves_like 'marks project for deletion' end context 'when deletion adjourned period is 0' do @@ -1738,17 +1728,7 @@ end context 'delayed project deletion is disabled for group' do - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'deletes project immediately' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'marks project for deletion' - end + it_behaves_like 'marks project for deletion' end context 'for projects in user namespace' do diff --git a/ee/spec/requests/api/settings_spec.rb b/ee/spec/requests/api/settings_spec.rb index 791c0f3813dd43..48c8c71da091c7 100644 --- a/ee/spec/requests/api/settings_spec.rb +++ b/ee/spec/requests/api/settings_spec.rb @@ -216,32 +216,6 @@ it_behaves_like 'settings for licensed features' end - context 'default delayed group deletion' do - let(:settings) { { delayed_group_deletion: true } } - let(:feature) { :adjourned_deletion_for_projects_and_groups } - - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'settings for licensed features' - end - end - - context 'delayed project deletion' do - let(:settings) { { delayed_project_deletion: true } } - let(:feature) { :adjourned_deletion_for_projects_and_groups } - - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'settings for licensed features' - end - end - context 'group_owners_can_manage_default_branch_protection setting' do let(:settings) { { group_owners_can_manage_default_branch_protection: false } } let(:feature) { :default_branch_protection_restriction_in_groups } diff --git a/ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb b/ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb index db131cc27f79a9..5943e81b43f335 100644 --- a/ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb +++ b/ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb @@ -175,17 +175,7 @@ group.namespace_settings.update!(delayed_project_removal: false) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'invokes Projects::DestroyService' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'invokes Projects::MarkForDeletionService' - end + it_behaves_like 'invokes Projects::MarkForDeletionService' end context 'when adjourned_deletion_configured is configured for the project' do @@ -193,17 +183,7 @@ group.namespace_settings.update!(delayed_project_removal: true) end - context 'when `always_perform_delayed_deletion` is disabled' do - before do - stub_feature_flags(always_perform_delayed_deletion: false) - end - - it_behaves_like 'invokes Projects::MarkForDeletionService' - end - - context 'when `always_perform_delayed_deletion` is enabled' do - it_behaves_like 'invokes Projects::MarkForDeletionService' - end + it_behaves_like 'invokes Projects::MarkForDeletionService' end end end diff --git a/locale/gitlab.pot b/locale/gitlab.pot index a0eec5283e00d1..7348497d7877ba 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -8820,9 +8820,6 @@ msgstr "" msgid "Card number:" msgstr "" -msgid "CascadingSettings|Enforce deletion protection for all subgroups" -msgstr "" - msgid "CascadingSettings|Enforce for all subgroups" msgstr "" @@ -14563,9 +14560,6 @@ msgstr "" msgid "Deletion pending. This project will be deleted on %{date}. Repository and other project resources are read-only." msgstr "" -msgid "DeletionSettings|All projects are deleted immediately." -msgstr "" - msgid "DeletionSettings|Deletion protection" msgstr "" -- GitLab From 26fe930c224e77eaed5b133ff19be1ea0d13f42b Mon Sep 17 00:00:00 2001 From: Peter Hegman Date: Thu, 11 May 2023 15:49:24 -0700 Subject: [PATCH 2/8] Remove `always_perform_delayed_deletion` feature flag from the frontend Delayed deletion is now always on --- .../components/form_group.vue | 128 ++-------- .../deletion_protection/constants.js | 8 +- .../deletion_protection/index.js | 6 +- .../helpers/ee/application_settings_helper.rb | 4 +- .../components/form_group_spec.js | 228 ++---------------- .../ee/application_settings_helper_spec.rb | 2 +- 6 files changed, 45 insertions(+), 331 deletions(-) diff --git a/ee/app/assets/javascripts/admin/application_settings/deletion_protection/components/form_group.vue b/ee/app/assets/javascripts/admin/application_settings/deletion_protection/components/form_group.vue index d530179cecdb9f..9901a8c7ba7039 100644 --- a/ee/app/assets/javascripts/admin/application_settings/deletion_protection/components/form_group.vue +++ b/ee/app/assets/javascripts/admin/application_settings/deletion_protection/components/form_group.vue @@ -1,14 +1,6 @@