Source of file SoftDeleteSecurityAdmin.php
Size: 1,960 Bytes - Last Modified: 2021-12-23T10:01:30+00:00
/var/www/docs.ssmods.com/process/src/code/SoftDeleteSecurityAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php use SilverStripe\Forms\Form; use SilverStripe\Core\Extension; use SilverStripe\Security\Group; use SilverStripe\Security\Member; use SilverStripe\Admin\SecurityAdmin; use SilverStripe\Forms\GridField\GridFieldDeleteAction; /** * Add gridfield action to SecurityAdmin * * @author Koala * @property SecurityAdmin $owner */ class SoftDeleteSecurityAdmin extends Extension { protected function getSanistedClass($class) { return str_replace('\\', '-', $class); } /** * @return SecurityAdmin */ protected function getSecurityAdmin() { return $this->owner; } function updateEditForm(Form $form) { /* @var $owner SecurityAdmin */ $owner = $this->owner; $memberSingl = singleton(Member::class); $groupSingl = singleton(Group::class); if ($memberSingl->hasExtension('SoftDeletable')) { $gridfield = $form->Fields()->dataFieldByName('Members'); $config = $gridfield->getConfig(); $config->removeComponentsByType(GridFieldDeleteAction::class); if ($this->owner->config()->softdelete_from_list) { $exclude = $this->owner->config()->softdelete_from_list_exclude; if ($exclude && !in_array($this->owner->modelClass, $exclude)) { $config->addComponent(new GridFieldSoftDeleteAction()); } } // No caution because soft :-) $form->Fields()->removeByName('MembersCautionText'); } if ($groupSingl->hasExtension('SoftDeletable')) { $gridfield = $form->Fields()->dataFieldByName('Groups'); $config = $gridfield->getConfig(); $config->removeComponentsByType(GridFieldDeleteAction::class); if ($this->owner->config()->softdelete_from_list) { $config->addComponent(new GridFieldSoftDeleteAction()); } } } } |