public static function controllerPreDispatch(XenForo_Controller $controller, $action)
 {
     $controllerPreDispatch = new ThemeHouse_AgreeTerms_Listener_ControllerPreDispatch($controller, $action);
     $controllerPreDispatch->run();
     $visitor = XenForo_Visitor::getInstance();
     if (empty($visitor['agree_terms_th'])) {
         self::$redirectToTerms = false;
     }
     if ($controller instanceof XenForo_ControllerPublic_Account && strtolower($action) == 'terms') {
         self::$redirectToTerms = false;
     }
     if (self::$redirectToTerms && $controller instanceof XenForo_ControllerPublic_Abstract) {
         self::$redirectToTerms = false;
         $controller->getRouteMatch()->setSections('account');
         throw new XenForo_ControllerResponse_Exception($controller->responseReroute('XenForo_ControllerPublic_Account', 'terms'));
     }
 }