protected function _generateControllerResponse(XenForo_Controller $controller, OAuth2\Response $response) { if ($response->isRedirection()) { return $controller->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, $response->getHttpHeader('Location')); } $params = $response->getParameters(); $params['_statusCode'] = $response->getStatusCode(); $params['_headers'] = $response->getHttpHeaders(); if ($controller instanceof bdApi_ControllerApi_Abstract) { return $controller->responseData('bdApi_ViewApi_OAuth', $params); } else { if ($response->isClientError()) { return $controller->responseError($response->getParameter('error_description'), $response->getStatusCode()); } else { $controller->getRouteMatch()->setResponseType('json'); return $controller->responseView('bdApi_ViewPublic_OAuth', '', $params); } } }
public function handleManage(XenForo_Controller $controller, array $user, array $providerData) { $input = $controller->getInput(); if ($controller->isConfirmedPost()) { if ($input->filterSingle('regen', XenForo_Input::BOOLEAN)) { $newProviderData = $this->generateInitialData($user, array()); /** @var XenForo_Model_Tfa $tfaModel */ $tfaModel = XenForo_Model::create('XenForo_Model_Tfa'); $tfaModel->enableUserTfaProvider($user['user_id'], $this->_providerId, $newProviderData); return $controller->responseRedirect(XenForo_ControllerResponse_Redirect::SUCCESS, XenForo_Link::buildPublicLink('account/two-step/manage', null, array('provider' => $this->_providerId))); } else { return null; } } $viewParams = array('provider' => $this, 'providerId' => $this->_providerId, 'user' => $user, 'providerData' => $providerData, 'usedCodes' => $this->_formatCodesForDisplay($providerData['used']), 'availableCodes' => $this->_formatCodesForDisplay($providerData['codes'])); return $controller->responseView('XenForo_ViewPublic_Account_Tfa_BackupManage', 'account_two_step_backup_manage', $viewParams); }
public function doRecovery($target, $targetId, XenForo_Controller $controller) { switch ($target) { case 'facebook': $extraParams = array('publish_actions' => 1); $targetIdParsed = bdSocialShare_Helper_Common::parseTargetId($targetId); if (!empty($targetIdParsed) and !empty($targetIdParsed['type'])) { switch ($targetIdParsed['type']) { case 'page': $extraParams['manage_pages'] = 1; break; case 'group': $extraParams['user_groups'] = 1; break; } } $link = XenForo_Link::buildPublicLink('register/facebook', '', array_merge(array('reg' => 1), $extraParams)); return $controller->responseRedirect(XenForo_ControllerResponse_Redirect::RESOURCE_UPDATED, $link); break; case 'twitter': $link = XenForo_Link::buildPublicLink('register/twitter', '', array_merge(array('reg' => 1))); return $controller->responseRedirect(XenForo_ControllerResponse_Redirect::RESOURCE_UPDATED, $link); break; } return false; }