Example #1
0
 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);
         }
     }
 }
Example #2
0
 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);
 }
Example #3
0
 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;
 }