Ejemplo n.º 1
0
 /**
  * @return bool
  * @throws ilCloudException
  */
 public function executeCommand()
 {
     global $ilCtrl, $ilTabs, $ilNavigationHistory, $lng;
     // Navigation History
     $link = $ilCtrl->getLinkTarget($this, "render");
     try {
         ilCloudConnector::getActiveServices();
     } catch (Exception $e) {
         ilUtil::sendFailure($lng->txt("cld_no_service_active"), true);
         ilObjectGUI::redirectToRefId($this->parent_id);
     }
     if ($this->object != NULL) {
         $ilNavigationHistory->addItem($this->object->getRefId(), $link, "cld");
         try {
             ilCloudConnector::checkServiceActive($this->object->getServiceName());
         } catch (Exception $e) {
             ilUtil::sendFailure($lng->txt("cld_plugin_not_active"), true);
             ilObjectGUI::redirectToRefId($this->parent_id);
         }
         if ($this->object->getAuthComplete() == false && !$_GET["authMode"]) {
             if ($this->checkPermissionBool("write")) {
                 $this->serviceAuth($this->object);
             } else {
                 ilUtil::sendFailure($lng->txt("cld_auth_failed"), true);
                 ilObjectGUI::redirectToRefId($this->parent_id);
             }
         }
         $this->plugin_service = ilCloudConnector::getServiceClass($this->object->getServiceName(), $this->object->getId(), false);
     }
     $next_class = $ilCtrl->getNextClass($this);
     $cmd = $ilCtrl->getCmd($this);
     switch ($cmd) {
         case "editSettings":
             $next_class = "ilcloudpluginsettingsgui";
             break;
         case "afterServiceAuth":
             $this->checkPermission("write");
             $this->{$cmd}();
             return;
         case "render":
             $this->addHeaderAction();
             break;
     }
     switch ($next_class) {
         case "ilinfoscreengui":
             $this->prepareOutput();
             $this->infoScreenForward();
             break;
         case "ilcommonactiondispatchergui":
             include_once "Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
             $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall();
             $this->ctrl->forwardCommand($gui);
             break;
         case "ilpermissiongui":
             $this->prepareOutput();
             $ilTabs->activateTab("id_permissions");
             include_once "Services/AccessControl/classes/class.ilPermissionGUI.php";
             $perm_gui = new ilPermissionGUI($this);
             $this->ctrl->forwardCommand($perm_gui);
             break;
         case "ilcloudpluginuploadgui":
             if ($this->checkPermissionBool("upload")) {
                 $upload_gui = ilCloudConnector::getUploadGUIClass($this->plugin_service);
                 $this->ctrl->forwardCommand($upload_gui);
             }
             break;
         case "ilcloudplugincreatefoldergui":
             if ($this->checkPermissionBool("folders_create")) {
                 $folder_gui = ilCloudConnector::getCreateFolderGUIClass($this->plugin_service);
                 $this->ctrl->forwardCommand($folder_gui);
             }
             break;
         case "ilcloudplugindeletegui":
             if ($this->checkPermissionBool("delete_files") || $this->checkPermissionBool("delete_folders")) {
                 $delete_gui = ilCloudConnector::getDeleteGUIClass($this->plugin_service);
                 $this->ctrl->forwardCommand($delete_gui);
             }
             break;
         case "ilcloudpluginsettingsgui":
             $this->prepareOutput();
             if ($this->checkPermissionBool("write")) {
                 $settings_gui = ilCloudConnector::getSettingsGUIClass($this->plugin_service);
                 $settings_gui->setCloudObject($this->object);
                 $this->ctrl->forwardCommand($settings_gui);
             }
             break;
         case "ilcloudpluginactionlistgui":
             $action_list_gui = ilCloudConnector::getActionListGUIClass($this->plugin_service);
             $this->ctrl->forwardCommand($action_list_gui);
             break;
         case "ilcloudpluginitemcreationlistgui":
             $item_creation_gui = ilCloudConnector::getItemCreationListGUIClass($this->plugin_service);
             $this->ctrl->forwardCommand($item_creation_gui);
             break;
         case "ilcloudpluginfiletreegui":
             $file_tree_gui = ilCloudConnector::getFileTreeGUIClass($this->plugin_service, ilCloudFileTree::getFileTreeFromSession());
             $this->ctrl->forwardCommand($file_tree_gui);
             break;
         case "ilcloudpluginheaderactiongui":
             $header_action_gui = ilCloudConnector::getHeaderActionGUIClass($this->plugin_service);
             $this->ctrl->forwardCommand($header_action_gui);
             break;
         case "ilcloudplugininitgui":
             $init_gui = ilCloudConnector::getInitGUIClass($this->plugin_service);
             $this->ctrl->forwardCommand($init_gui);
             break;
         default:
             return parent::executeCommand();
     }
     return true;
 }