Source of file VerificationController.php
Size: 3,051 Bytes - Last Modified: 2021-12-23T11:00:21+00:00
/var/www/docs.ssmods.com/process/src/src/Controllers/VerificationController.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | <?php namespace Zazama\DoubleOptIn\Controllers; use Page; use PageController; use SilverStripe\Control\HTTPRequest; use SilverStripe\Core\Config\Configurable; use Zazama\DoubleOptIn\Models\EmailVerification; use Zazama\DoubleOptIn\Models\UserFormEmailToSend; class VerificationController extends PageController { use Configurable; /** * @config */ private static $layout_prefix = 'Zazama\\DoubleOptIn\\Verification'; private static $template_holder = Page::class; public function index(HTTPRequest $request) { if($this->getRequest()->getVar('token')) { $token = EmailVerification::get()->filter('Token', $this->getRequest()->getVar('token'))->limit(1)[0]; if(!$token) { $this->badToken(); return $this->renderWith([ $this->config()->get('layout_prefix') . '_BadToken', Page::class ]); } else if($token->Verified) { $this->alreadyVerified(); return $this->renderWith([ $this->config()->get('layout_prefix') . '_AlreadyVerified', Page::class ]); } else { $token->Verified = true; $token->write(); $this->success($token); return $this->renderWith([ $this->config()->get('layout_prefix') . '_Success', Page::class ]); } } else { $this->badToken(); return $this->renderWith([ $this->config()->get('layout_prefix') . '_BadToken', Page::class ]); } } public function success($token) { $emailsToSend = UserFormEmailToSend::get()->where(['SubmittedFormID' => $token->SubmittedFormID]); if($token->SubmittedFormID && $emailsToSend) { foreach($emailsToSend as $emailToSend) { $data = $emailToSend->getData(); $email = $data['email']; $recipient = $data['recipient']; $emailData = $data['emailData']; if ((bool)$recipient->SendPlain) { $body = strip_tags($recipient->getEmailBodyContent()) . "\n"; if (isset($emailData['Fields']) && !$emailData['HideFormData']) { foreach ($emailData['Fields'] as $field) { $body .= $field->Title . ': ' . $field->Value . " \n"; } } $email->setBody($body); $email->sendPlain(); } else { $email->send(); } $emailToSend->delete(); } } $this->extend('updateSuccess', $token); } public function badToken() { $this->extend('updateBadToken'); } public function alreadyVerified() { $this->extend('updateAlreadyVerified'); } } |