FIX Use canDelete, not the now-deleted canArchive (#2984)

This commit is contained in:
Guy Sartorelli 2024-08-16 11:30:58 +12:00 committed by GitHub
parent 2c5612bd57
commit 7cb813d45e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 14 additions and 22 deletions

View File

@ -5,7 +5,6 @@ namespace SilverStripe\CMS\BatchActions;
use SilverStripe\ORM\SS_List; use SilverStripe\ORM\SS_List;
use SilverStripe\Admin\CMSBatchAction; use SilverStripe\Admin\CMSBatchAction;
use SilverStripe\Control\HTTPResponse; use SilverStripe\Control\HTTPResponse;
use SilverStripe\Dev\Deprecation;
/** /**
* Delete items batch action. * Delete items batch action.
@ -28,7 +27,6 @@ class CMSBatchAction_Archive extends CMSBatchAction
public function applicablePages($ids) public function applicablePages($ids)
{ {
// canArchive() is deprecated, not $this->applicablePagesHelper() return $this->applicablePagesHelper($ids, 'canDelete');
return Deprecation::withNoReplacement(fn() => $this->applicablePagesHelper($ids, 'canArchive'));
} }
} }

View File

@ -29,7 +29,6 @@ use SilverStripe\Core\Convert;
use SilverStripe\Core\Environment; use SilverStripe\Core\Environment;
use SilverStripe\Core\Flushable; use SilverStripe\Core\Flushable;
use SilverStripe\Core\Injector\Injector; use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\Deprecation;
use SilverStripe\Forms\DateField; use SilverStripe\Forms\DateField;
use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\DropdownField;
use SilverStripe\Forms\FieldGroup; use SilverStripe\Forms\FieldGroup;
@ -1998,8 +1997,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr
if (!$record || !$record->exists()) { if (!$record || !$record->exists()) {
throw new HTTPResponse_Exception("Bad record ID #$id", 404); throw new HTTPResponse_Exception("Bad record ID #$id", 404);
} }
$canArchive = Deprecation::withNoReplacement(fn() => $record->canArchive()); if (!$record->canDelete()) {
if (!$canArchive) {
return Security::permissionFailure(); return Security::permissionFailure();
} }

View File

@ -25,7 +25,6 @@ use SilverStripe\Core\Manifest\ModuleResource;
use SilverStripe\Core\Manifest\ModuleResourceLoader; use SilverStripe\Core\Manifest\ModuleResourceLoader;
use SilverStripe\Core\Manifest\VersionProvider; use SilverStripe\Core\Manifest\VersionProvider;
use SilverStripe\Core\Resettable; use SilverStripe\Core\Resettable;
use SilverStripe\Dev\Deprecation;
use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\CheckboxField;
use SilverStripe\Forms\CompositeField; use SilverStripe\Forms\CompositeField;
use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\DropdownField;
@ -2593,9 +2592,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
} }
// If a page is on any stage it can be archived // If a page is on any stage it can be archived
if (($isOnDraft || $isPublished)) { if (($isOnDraft || $isPublished) && $this->canDelete()) {
$canArchive = Deprecation::withNoReplacement(fn() => $this->canArchive());
if ($canArchive) {
$title = $isPublished $title = $isPublished
? _t('SilverStripe\\CMS\\Controllers\\CMSMain.UNPUBLISH_AND_ARCHIVE', 'Unpublish and archive') ? _t('SilverStripe\\CMS\\Controllers\\CMSMain.UNPUBLISH_AND_ARCHIVE', 'Unpublish and archive')
: _t('SilverStripe\\CMS\\Controllers\\CMSMain.ARCHIVE', 'Archive'); : _t('SilverStripe\\CMS\\Controllers\\CMSMain.ARCHIVE', 'Archive');
@ -2608,7 +2605,6 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi
)) ))
); );
} }
}
// "save", supports an alternate state that is still clickable, but notifies the user that the action is not needed. // "save", supports an alternate state that is still clickable, but notifies the user that the action is not needed.
$noChangesClasses = 'btn-outline-primary font-icon-tick'; $noChangesClasses = 'btn-outline-primary font-icon-tick';