/**
 * ilSurveyExecutionGUI constructor
 *
 * The constructor takes possible arguments an creates an instance of the ilSurveyExecutionGUI object.
 *
 * @param object $a_object Associated ilObjSurvey class
 * @access public
 */
 function ilSurveyExecutionGUI($a_object)
 {
     global $lng, $tpl, $ilCtrl, $ilias, $tree;
     $this->lng =& $lng;
     $this->tpl =& $tpl;
     $this->ctrl =& $ilCtrl;
     $this->ilias =& $ilias;
     $this->object =& $a_object;
     $this->tree =& $tree;
     $this->external_rater_360 = false;
     if ($this->object->get360Mode() && $_SESSION["anonymous_id"][$this->object->getId()] && ilObjSurvey::validateExternalRaterCode($this->object->getRefId(), $_SESSION["anonymous_id"][$this->object->getId()])) {
         $this->external_rater_360 = true;
     }
     // stay in preview mode
     $this->preview = (bool) $_REQUEST["prvw"];
     $this->ctrl->saveParameter($this, "prvw");
     $this->ctrl->saveParameter($this, "pgov");
 }
 /**
  * check whether goto script will succeed
  */
 function _checkGoto($a_target)
 {
     global $ilAccess;
     $t_arr = explode("_", $a_target);
     if ($t_arr[0] != "svy" || (int) $t_arr[1] <= 0) {
         return false;
     }
     // 360° external raters
     if ($_GET["accesscode"]) {
         include_once "Modules/Survey/classes/class.ilObjSurvey.php";
         if (ilObjSurvey::validateExternalRaterCode($t_arr[1], $_GET["accesscode"])) {
             return true;
         }
     }
     if ($ilAccess->checkAccess("read", "", $t_arr[1])) {
         return true;
     }
     return false;
 }
Esempio n. 3
0
 public function executeCommand()
 {
     global $ilAccess, $ilNavigationHistory, $ilErr, $ilTabs;
     $this->external_rater_360 = false;
     if (!$this->creation_mode && $this->object->get360Mode() && $_SESSION["anonymous_id"][$this->object->getId()] && ilObjSurvey::validateExternalRaterCode($this->object->getRefId(), $_SESSION["anonymous_id"][$this->object->getId()])) {
         $this->external_rater_360 = true;
     }
     if (!$this->external_rater_360) {
         if (!$ilAccess->checkAccess("read", "", $this->ref_id) && !$ilAccess->checkAccess("visible", "", $this->ref_id)) {
             $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
         }
         // add entry to navigation history
         if (!$this->getCreationMode() && $ilAccess->checkAccess("read", "", $this->ref_id)) {
             $this->ctrl->setParameterByClass("ilobjsurveygui", "ref_id", $this->ref_id);
             $link = $this->ctrl->getLinkTargetByClass("ilobjsurveygui", "");
             $ilNavigationHistory->addItem($this->ref_id, $link, "svy");
         }
     }
     $cmd = $this->ctrl->getCmd("properties");
     // workaround for bug #6288, needs better solution
     if ($cmd == "saveTags") {
         $this->ctrl->setCmdClass("ilinfoscreengui");
     }
     // deep link from repository - "redirect" to page view
     if (!$this->ctrl->getCmdClass() && $cmd == "questionsrepo") {
         $_REQUEST["pgov"] = 1;
         $this->ctrl->setCmd("questions");
         $this->ctrl->setCmdClass("ilsurveyeditorgui");
     }
     $next_class = $this->ctrl->getNextClass($this);
     $this->ctrl->setReturn($this, "properties");
     $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "Modules/Survey"), "screen");
     $this->prepareOutput();
     switch ($next_class) {
         case "ilinfoscreengui":
             if (!in_array($this->ctrl->getCmdClass(), array('ilpublicuserprofilegui', 'ilobjportfoliogui'))) {
                 $this->addHeaderAction();
                 $this->infoScreen();
                 // forwards command
             } else {
                 // #16891
                 $ilTabs->clearTargets();
                 include_once "./Services/InfoScreen/classes/class.ilInfoScreenGUI.php";
                 $info = new ilInfoScreenGUI($this);
                 $this->ctrl->forwardCommand($info);
             }
             break;
         case 'ilmdeditorgui':
             $this->handleWriteAccess();
             $ilTabs->activateTab("meta_data");
             $this->addHeaderAction();
             include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
             $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
             $md_gui->addObserver($this->object, 'MDUpdateListener', 'General');
             $this->ctrl->forwardCommand($md_gui);
             break;
         case "ilsurveyevaluationgui":
             $ilTabs->activateTab("svy_results");
             $this->addHeaderAction();
             include_once "./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php";
             $eval_gui = new ilSurveyEvaluationGUI($this->object);
             $this->ctrl->forwardCommand($eval_gui);
             break;
         case "ilsurveyexecutiongui":
             $ilTabs->clearTargets();
             include_once "./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
             $exec_gui = new ilSurveyExecutionGUI($this->object);
             $this->ctrl->forwardCommand($exec_gui);
             break;
         case 'ilpermissiongui':
             $ilTabs->activateTab("perm_settings");
             $this->addHeaderAction();
             include_once "Services/AccessControl/classes/class.ilPermissionGUI.php";
             $perm_gui =& new ilPermissionGUI($this);
             $this->ctrl->forwardCommand($perm_gui);
             break;
         case 'ilobjectcopygui':
             include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
             $cp = new ilObjectCopyGUI($this);
             $cp->setType('svy');
             $this->ctrl->forwardCommand($cp);
             break;
         case "ilcommonactiondispatchergui":
             include_once "Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
             $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall();
             $this->ctrl->forwardCommand($gui);
             break;
             // 360, skill service
         // 360, skill service
         case 'ilsurveyskillgui':
             $ilTabs->activateTab("survey_competences");
             include_once "./Modules/Survey/classes/class.ilSurveySkillGUI.php";
             $gui = new ilSurveySkillGUI($this->object);
             $this->ctrl->forwardCommand($gui);
             break;
         case 'ilsurveyskilldeterminationgui':
             $ilTabs->activateTab("maintenance");
             include_once "./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php";
             $gui = new ilSurveySkillDeterminationGUI($this->object);
             $this->ctrl->forwardCommand($gui);
             break;
         case 'ilsurveyeditorgui':
             $this->handleWriteAccess();
             $ilTabs->activateTab("survey_questions");
             include_once "./Modules/Survey/classes/class.ilSurveyEditorGUI.php";
             $gui = new ilSurveyEditorGUI($this);
             $this->ctrl->forwardCommand($gui);
             break;
         case 'ilsurveyconstraintsgui':
             $this->handleWriteAccess();
             $ilTabs->activateTab("constraints");
             include_once "./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php";
             $gui = new ilSurveyConstraintsGUI($this);
             $this->ctrl->forwardCommand($gui);
             break;
         case 'ilsurveyparticipantsgui':
             if (!$this->object->get360Mode()) {
                 $ilTabs->activateTab("maintenance");
             } else {
                 $ilTabs->activateTab("survey_360_appraisees");
             }
             include_once "./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php";
             $gui = new ilSurveyParticipantsGUI($this);
             $this->ctrl->forwardCommand($gui);
             break;
         default:
             $this->addHeaderAction();
             $cmd .= "Object";
             $this->{$cmd}();
             break;
     }
     if (strtolower($_GET["baseClass"]) != "iladministrationgui" && $this->getCreationMode() != true) {
         $this->tpl->show();
     }
 }