/** * guardAnswer * * @param Controller $controller controller(QuestionnaireAnswerController) * @param int $frameId frame id * @param int $questionnaireId questionnaire id * @return mixed * @throws NotFoundException */ public function guardAnswer($controller, $frameId, $questionnaireId) { $Questionnaire = ClassRegistry::init('Questionnaire'); // get conditions for finding specified Questionnaire $conditions = $Questionnaire->getConditionForAnswer($controller->viewVars['blockId'], $controller->Auth->user('id'), $controller->viewVars, $controller->getNowTime(), array('origin_id' => $questionnaireId)); // get the specified questionnaire $questionnaire = $Questionnaire->find('first', array('conditions' => $conditions)); if (!$questionnaire) { throw new NotFoundException(__d('questionnaires', 'Invalid questionnaire')); } // Guard Force URL hack if (!$this->__isAbleToAnswer($controller, $questionnaire)) { //throw new ForbiddenException(__d('net_commons', 'Permission denied')); return false; } /* if ($controller->request->params['action'] != 'pre_answer') { if (!$this->isPreAnswer($controller, $questionnaire)) { //$controller->redirect('pre_answer/' . $frameId . '/' . $questionnaireId); return false; } } */ return $questionnaire; }