Skip to content

Organization groups list - add support for delayed group deletion

Background

When deleting a group from the organization groups list (/-/organizations/default/groups_and_projects) there is no indicator if the group will be deleted immediately or delayed.

Proposal

We need to support this flow outlined in https://docs.gitlab.com/ee/user/group/#remove-a-group

Implementation plan

  1. Expose ee/app/models/ee/group.rb#L586 on https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/graphql/ee/types/group_type.rb#L30 as is_adjourned_deletion_enabled
  2. If is_adjourned_deletion_enabled is true expose ee/app/helpers/ee/groups_helper.rb#L43 on https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/graphql/ee/types/group_type.rb#L30 as permanent_deletion_date
  3. If is_adjourned_deletion_enabled is true expose marked_for_deletion_at
  4. Add modal-footer slot to app/assets/javascripts/vue_shared/components/confirm_danger/confirm_danger_modal.vue#L128
  5. Add delete-modal-footer slot to app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue#L206
  6. Create an ee version of app/assets/javascripts/vue_shared/components/groups_list/groups_list_item.vue#L206
  1. Create a new util in app/assets/javascripts/organizations/shared/utils.js#L74 called renderGroupDeleteSuccessAlert that calls createAlert with the message <group name> is in the process of being deleted.
  2. Create a ee version of this util in ee/app/assets/javascripts/organizations/shared/utils.js that checks
    • If is_adjourned_deletion_enabled is true call createAlert with the message <project name> will be deleted on <permanent_deletion_date>.
  3. Create a new util in ee/app/assets/javascripts/organizations/shared/utils.js called deleteGroupParams. If marked_for_deletion_at is set then pass the permanently_remove param when calling the DELETE /groups/:id API
Edited by Peter Hegman