/** * gets the group that this user's friends belong to */ public function getGroupFor($type) { $groupType = $type . 'Group'; $groupTypeID = $type . 'GroupID'; if ($this->owner->{$groupTypeID}) { return $this->owner->{$groupType}(); } $title = $this->owner->Email . ' ' . $type; $group = SimpleMemberList::get()->filter(array('Title' => $title))->first(); if ($group && $group->exists()) { $this->owner->{$groupTypeID} = $group->ID; return $group; } else { $group = $this->transactionManager->runAsAdmin(function () use($title) { $group = SimpleMemberList::create(); $group->Title = $title; $group->write(); return $group; }); if ($group) { $this->owner->{$groupTypeID} = $group->ID; } return $group; } }
public function run($request) { if (!$this->transactionManager) { Injector::inst()->inject($this); } $this->transactionManager->runAsAdmin(function () { $members = DataList::create('Member'); foreach ($members as $member) { if (!$member->Username) { list($username) = explode('@', $member->Email); $member->Username = preg_replace('/\\W+/', '_', $username); echo "Updating '{$username}' <br/>\n"; $member->write(); } else { echo "{$member->Username} already set <br/>\n"; } } }); }