/** * Add AgeGate javascript file. * * @param EntryController $sender Sending Controller. */ public function entryController_render_before($sender) { $sender->addJsFile('agegate.js', 'plugins/AgeGate'); }
/** * An intermediate page for jsConnect that checks SSO against and then posts the information to /entry/connect. * * @param EntryController $Sender * @param string $Action A specific action. It can be one of the following: * * - blank: The default action. * - guest: There is no user signed in. * - * @param string $Target The url to redirect to after a successful connect. * @throws /Exception Throws an exception when the jsConnect provider is not found. */ public function entryController_jsConnect_create($Sender, $Action = '', $Target = '') { $Sender->setData('_NoMessages', true); if ($Action) { if ($Action == 'guest') { $Sender->addDefinition('CheckPopup', true); $Target = $Sender->Form->getFormValue('Target', '/'); $Sender->RedirectUrl = $Target; $Sender->render('JsConnect', '', 'plugins/jsconnect'); } else { parse_str($Sender->Form->getFormValue('JsConnect'), $JsData); $Error = val('error', $JsData); $Message = val('message', $JsData); if ($Error === 'timeout' && !$Message) { $Message = t('Your sso timed out.', 'Your sso timed out during the request. Please try again.'); } Gdn::dispatcher()->passData('Exception', $Message ? htmlspecialchars($Message) : htmlspecialchars($Error))->dispatch('home/error'); } } else { $client_id = $Sender->setData('client_id', $Sender->Request->get('client_id', 0)); $Provider = self::getProvider($client_id); if (empty($Provider)) { throw NotFoundException('Provider'); } $Get = arrayTranslate($Sender->Request->get(), ['client_id', 'display']); $Sender->addDefinition('JsAuthenticateUrl', self::connectUrl($Provider, true)); $Sender->addJsFile('jsconnect.js', 'plugins/jsconnect'); $Sender->setData('Title', t('Connecting...')); $Sender->Form->Action = url('/entry/connect/jsconnect?' . http_build_query($Get)); $Sender->Form->addHidden('JsConnect', ''); $Sender->Form->addHidden('Target', $Target); $Sender->MasterView = 'empty'; $Sender->Render('JsConnect', '', 'plugins/jsconnect'); } }