Loading safedelete.module +15 −1 Original line number Diff line number Diff line Loading @@ -172,6 +172,14 @@ function safedelete_node_presave(Drupal\Core\Entity\EntityInterface $entity) { */ function safedelete_file_predelete(EntityInterface $entity) { $has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button'); if (!$has_show_delete_permission) { $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button'); } if ($has_show_delete_permission) { return; } $file_usage = \Drupal::service('file.usage'); $usage = $file_usage->listUsage($entity); Loading Loading @@ -284,9 +292,15 @@ function safedelete_form_alter(&$form, FormStateInterface $form_state, $form_id) else { $form['description']['#markup'] = $markup; // $form['actions']['submit']['#access'] = $show_button ? TRUE : FALSE; $has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button'); if (!$has_show_delete_permission) { $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button'); } if (!$has_show_delete_permission) { $form['actions']['submit']['#attributes'] = ['disabled' => $show_button ? 'enabled' : 'disabled']; } } } else if (strpos($form_id, 'media') !== FALSE) { AdminHelper::checkMediaReferencesMessage($mid, $bundle, $show_button, $markup, 'delete', $limit = 20); if ($show_button) { Loading safedelete.permissions.yml +5 −1 Original line number Diff line number Diff line Loading @@ -10,3 +10,7 @@ safedelete view orphans report: title: 'View the orphaned node report' description: Users with this permission are allowed to view the orphaned node report. restrict access: TRUE safedelete show delete button: title: 'Show delete button' description: Users with this permission are allowed to see the delete files button even if safedelete sees dependencies. restrict access: TRUE src/Form/SafedeleteSettingsForm.php +8 −6 Original line number Diff line number Diff line Loading @@ -63,14 +63,15 @@ class SafedeleteSettingsForm extends ConfigFormBase { $form['safearchive'] = [ '#title' => t('Safe archive'), '#type' => 'checkbox', '#description' => t('This option will enable safe archive validation'), '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : FALSE '#description' => t('This option will enable safe archive validation (future option, not yet implemented)'), '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : TRUE, '#disabled' => TRUE, ]; $form['delete_button'] = [ '#title' => t('Show delete button'), '#type' => 'checkbox', '#description' => t('This option will show delete button in node delete form page, even when the node is associated with entities'), '#description' => t('This option will show delete button in the file delete form page, even when the file is associated with entities'), '#default_value' => (!empty($config->get('delete_button'))) ? $config->get('delete_button') : FALSE ]; Loading Loading @@ -132,11 +133,12 @@ class SafedeleteSettingsForm extends ConfigFormBase { public function submitForm(array &$form, FormStateInterface $form_state) { $this->config('safedelete.settings') ->set('bundle', $form_state->getValue('bundle')) ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition')) ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink')) ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes')) ->set('delete_button', $form_state->getValue('delete_button')) ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes')) ->set('limit', $form_state->getValue('limit')) ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition')) ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink')) ->set('safearchive', $form_state->getValue('safearchive')) ->save(); parent::submitForm($form, $form_state); Loading Loading
safedelete.module +15 −1 Original line number Diff line number Diff line Loading @@ -172,6 +172,14 @@ function safedelete_node_presave(Drupal\Core\Entity\EntityInterface $entity) { */ function safedelete_file_predelete(EntityInterface $entity) { $has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button'); if (!$has_show_delete_permission) { $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button'); } if ($has_show_delete_permission) { return; } $file_usage = \Drupal::service('file.usage'); $usage = $file_usage->listUsage($entity); Loading Loading @@ -284,9 +292,15 @@ function safedelete_form_alter(&$form, FormStateInterface $form_state, $form_id) else { $form['description']['#markup'] = $markup; // $form['actions']['submit']['#access'] = $show_button ? TRUE : FALSE; $has_show_delete_permission = \Drupal::currentUser()->hasPermission('safedelete show delete button'); if (!$has_show_delete_permission) { $has_show_delete_permission = \Drupal::config('safedelete.settings')->get('delete_button'); } if (!$has_show_delete_permission) { $form['actions']['submit']['#attributes'] = ['disabled' => $show_button ? 'enabled' : 'disabled']; } } } else if (strpos($form_id, 'media') !== FALSE) { AdminHelper::checkMediaReferencesMessage($mid, $bundle, $show_button, $markup, 'delete', $limit = 20); if ($show_button) { Loading
safedelete.permissions.yml +5 −1 Original line number Diff line number Diff line Loading @@ -10,3 +10,7 @@ safedelete view orphans report: title: 'View the orphaned node report' description: Users with this permission are allowed to view the orphaned node report. restrict access: TRUE safedelete show delete button: title: 'Show delete button' description: Users with this permission are allowed to see the delete files button even if safedelete sees dependencies. restrict access: TRUE
src/Form/SafedeleteSettingsForm.php +8 −6 Original line number Diff line number Diff line Loading @@ -63,14 +63,15 @@ class SafedeleteSettingsForm extends ConfigFormBase { $form['safearchive'] = [ '#title' => t('Safe archive'), '#type' => 'checkbox', '#description' => t('This option will enable safe archive validation'), '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : FALSE '#description' => t('This option will enable safe archive validation (future option, not yet implemented)'), '#default_value' => (!empty($config->get('safearchive'))) ? $config->get('safearchive') : TRUE, '#disabled' => TRUE, ]; $form['delete_button'] = [ '#title' => t('Show delete button'), '#type' => 'checkbox', '#description' => t('This option will show delete button in node delete form page, even when the node is associated with entities'), '#description' => t('This option will show delete button in the file delete form page, even when the file is associated with entities'), '#default_value' => (!empty($config->get('delete_button'))) ? $config->get('delete_button') : FALSE ]; Loading Loading @@ -132,11 +133,12 @@ class SafedeleteSettingsForm extends ConfigFormBase { public function submitForm(array &$form, FormStateInterface $form_state) { $this->config('safedelete.settings') ->set('bundle', $form_state->getValue('bundle')) ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition')) ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink')) ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes')) ->set('delete_button', $form_state->getValue('delete_button')) ->set('exceptionofnodes', $form_state->getValue('exceptionofnodes')) ->set('limit', $form_state->getValue('limit')) ->set('orphanedpagedefinition', $form_state->getValue('orphanedpagedefinition')) ->set('orphanedpagewithoutmenulink', $form_state->getValue('orphanedpagewithoutmenulink')) ->set('safearchive', $form_state->getValue('safearchive')) ->save(); parent::submitForm($form, $form_state); Loading