Ejemplo n.º 1
0
    private function ensureCanAsk($request, $response)
    {/*{{{*/
        $caseHostUserId = $request->getRequest('host_user_id', 0);
        $askSpace = DAL::get()->find('space', $caseHostUserId);
        if(XDateTime::isSpringHoliday() || XDateTime::isClosedThreadTime())
        {
            AskSessionInfo::session_destroy();
            $response->setRedirect(Intention::getIntentionTongzhiUrl());
            return false;
        } 

        if(false == $askSpace->isNull())
        {
            if ($askSpace->host instanceof Doctor)
            {
                $askSpace->host->doctorIsDead();
            }
            if ($this->skipHospitals($askSpace) || $this->skipDoctors($askSpace))
            {
                $response->setRedirect('http://www.'.URL_PREFIX.'haodf.com/info/spacefrontnotice.php');
                return false;
            }
        }
        try
        {
            SpaceClient::getInstance()->ensureAllowAskRule($this->_newUser, $askSpace);
        }
        catch(SpaceUnconfirmException $ex)
        {
            $response->setRedirect('http://'.URL_PREFIX.'zixun.haodf.com/newcase/askintentionintro?spaceid='.$askSpace->id.'&message='.$ex->getMessage());
            return false;
        }
        catch(SpaceCaseClosedException $ex)
        {
            $message = "暂时关闭,无法回复您的问题。";
            $response->setRedirect('http://'.URL_PREFIX.'zixun.haodf.com/newcase/askintentionintro?spaceid='.$askSpace->id.'&message='.$message);
            return false;
        }
        catch(SpaceForbiddenAnswerException $ex)
        {
            $message = "暂时关闭,无法回复您的问题。";
            $response->setRedirect('http://'.URL_PREFIX.'zixun.haodf.com/newcase/askintentionintro?spaceid='.$askSpace->id.'&message='.$message);
            return false;
        }
        return true;
    }/*}}}*/