/**
  * isAbleToAnswer 指定されたIDに回答できるかどうか
  * 強制URLハックのガード
  * 指定のアンケートの状態と回答者の権限を照らし合わせてガードをかける
  * 公開状態にない
  * 期間外
  * 停止中
  * 繰り返し回答
  * 会員以外には許してないのに未ログインである
  *
  * @param Controller $controller controller(QuestionnaireAnswerController)
  * @param array $questionnaire 対象となるアンケートデータ
  * @return bool
  */
 private function __isAbleToAnswer($controller, $questionnaire)
 {
     $answerSummary = ClassRegistry::init('QuestionnaireAnswerSummary');
     if (!$controller->isAbleTo($questionnaire)) {
         return false;
     }
     if ($questionnaire['Questionnaire']['status'] != NetCommonsBlockComponent::STATUS_PUBLISHED) {
         return true;
     }
     // 繰り返し回答を許していないのにすでに回答済みか
     if ($questionnaire['Questionnaire']['is_repeat_allow'] == QuestionnairesComponent::PERMISSION_NOT_PERMIT) {
         $summary = $answerSummary->getNowSummaryOfThisUser($questionnaire['Questionnaire']['origin_id'], $controller->Auth->user('id'), $controller->Session->id());
         if ($summary) {
             return false;
         }
     }
     return true;
 }