Source of file MemberExtension.php
Size: 1,703 Bytes - Last Modified: 2021-12-23T10:01:38+00:00
/var/www/docs.ssmods.com/process/src/src/extension/MemberExtension.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <?php namespace Leochenftw\Extension; use SilverStripe\ORM\DataExtension; use SilverStripe\Core\Config\Config; use SilverStripe\Forms\FieldList; use App\Web\Email\PasswordRecoveryEmail; class MemberExtension extends DataExtension { /** * Database fields * @var array */ private static $db = [ 'DateLoggedIn' => 'Datetime', 'ValidationKey' => 'Varchar(40)' ]; /** * Update Fields * @return FieldList */ public function updateCMSFields(FieldList $fields) { $owner = $this->owner; $fields->addFieldsToTab( 'Root.Misc', [ $fields->fieldByName('Root.Main.ValidationKey'), $fields->fieldByName('Root.Main.DateLoggedIn')->performReadonlyTransformation() ] ); return $fields; } public function populateDefaults() { $this->owner->ValidationKey = sha1(time() . rand()); } public function password_recovery() { if ($this->owner->isActivated()) { $this->owner->populateDefaults(); $this->owner->write(); } $email = PasswordRecoveryEmail::create($this->owner); $email->send(); } public function getData() { return [ 'id' => $this->owner->ID, 'email' => $this->owner->Email, 'firstname' => $this->owner->FirstName, 'surname' => $this->owner->Surname, 'is_admin' => $this->owner->inGroup('administrators') ? true : false ]; } public function isActivated() { return empty($this->owner->ValidationKey); } } |