Source of file DevGroupExtension.php
Size: 1,461 Bytes - Last Modified: 2021-12-23T10:00:25+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/DevGroupExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | <?php namespace LeKoala\DevToolkit\Extensions; use SilverStripe\Security\Member; use SilverStripe\Admin\LeftAndMain; use SilverStripe\ORM\DataExtension; use SilverStripe\Control\Controller; use SilverStripe\Security\DefaultAdminService; use SilverStripe\View\Parsers\URLSegmentFilter; /** * Manage group * * @property \SilverStripe\Security\Group $owner */ class DevGroupExtension extends DataExtension { public function onAfterWrite() { $ctrl = Controller::curr(); if (!$ctrl instanceof LeftAndMain) { return; } // Always populate a group with a user // ! this should not run during test or it causes infinite loops if ($this->owner->Members()->count() == 0) { $groupTitle = $this->owner->Title; $filter = new URLSegmentFilter; $service = DefaultAdminService::singleton(); $defaultAdmin = $service->findOrCreateDefaultAdmin(); $emailParts = explode('@', $defaultAdmin->Email); // Let's create a fake member for this $member = Member::create(); $member->Email = $filter->filter($groupTitle) . '@' . $emailParts[1]; $member->FirstName = 'Default User'; $member->Surname = $groupTitle; $member->write(); $member->changePassword('Test0000'); $member->write(); $this->owner->Members()->add($member); } } } |