示例#1
0
 public static function checkConfiguration(XenForo_Controller $controller, $class, $prefix, $contentType, array &$configValues, array $configDefinitions)
 {
     if ($controller->getInput()->filterSingle('_xfConfirm', XenForo_Input::UINT)) {
         foreach ($configValues as $name => $value) {
             $newValue = $controller->getInput()->filterSingle($name, XenForo_Input::STRING);
             if ($newValue) {
                 $configValues[$name] = $newValue;
             } elseif (!$configValues[$name] && !empty($configDefinitions[$name]['required'])) {
                 throw $controller->responseException($controller->responseError(new XenForo_Phrase('please_complete_required_fields')));
             }
         }
         return true;
     }
     $methodTemplateId = $controller->getInput()->filterSingle('method_template_id', XenForo_Input::UINT);
     $viewParams = array('configValues' => $configValues, 'configDefinitions' => $configDefinitions, 'methodTemplateId' => $methodTemplateId, 'class' => $class, 'prefix' => $prefix, 'contentType' => $contentType);
     throw $controller->responseException($controller->responseView('ThemeHouse_Reflection_ViewAdmin_MethodTemplate_Config', 'th_method_template_config_reflection', $viewParams));
 }
示例#2
0
 public function handleManage(XenForo_Controller $controller, array $user, array $providerData)
 {
     $input = $controller->getInput();
     $request = $controller->getRequest();
     $session = XenForo_Application::getSession();
     $newProviderData = null;
     $newTriggerData = null;
     $showSetup = false;
     if ($controller->isConfirmedPost()) {
         $sessionKey = 'tfaData_totp';
         if ($input->filterSingle('regen', XenForo_Input::BOOLEAN)) {
             $newProviderData = $this->generateInitialData($user, array());
             $newTriggerData = $this->triggerVerification('setup', $user, $request->getClientIp(false), $newProviderData);
             $session->set($sessionKey, $newProviderData);
             $showSetup = true;
         } else {
             if ($input->filterSingle('confirm', XenForo_Input::BOOLEAN)) {
                 $newProviderData = $session->get($sessionKey);
                 if (!is_array($newProviderData)) {
                     return null;
                 }
                 if (!$this->verifyFromInput('setup', $input, $user, $newProviderData)) {
                     return $controller->responseError(new XenForo_Phrase('two_step_verification_value_could_not_be_confirmed'));
                 }
                 /** @var XenForo_Model_Tfa $tfaModel */
                 $tfaModel = XenForo_Model::create('XenForo_Model_Tfa');
                 $tfaModel->enableUserTfaProvider($user['user_id'], $this->_providerId, $newProviderData);
                 $session->remove($sessionKey);
                 return null;
             } else {
                 return null;
             }
         }
     }
     $viewParams = array('provider' => $this, 'providerId' => $this->_providerId, 'user' => $user, 'providerData' => $providerData, 'newProviderData' => $newProviderData, 'newTriggerData' => $newTriggerData, 'showSetup' => $showSetup);
     return $controller->responseView('XenForo_ViewPublic_Account_Tfa_TotpManage', 'account_two_step_totp_manage', $viewParams);
 }
示例#3
0
文件: OAuth2.php 项目: burtay/bdApi
 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);
         }
     }
 }