public function importUserModuleStep2(Vtiger_Request $request) { $viewer = $this->getViewer($request); $uploadDir = Settings_ModuleManager_Module_Model::getUploadDirectory(); $qualifiedModuleName = $request->getModule(false); $uploadFile = 'usermodule_' . time() . '.zip'; $uploadFileName = "{$uploadDir}/{$uploadFile}"; $error = ''; checkFileAccess($uploadDir); if (!move_uploaded_file($_FILES['moduleZip']['tmp_name'], $uploadFileName)) { $error = 'LBL_ERROR_MOVE_UPLOADED_FILE'; } else { $package = new Vtiger_Package(); $importModuleName = $package->getModuleNameFromZip($uploadFileName); $importModuleDepVtVersion = $package->getDependentVtigerVersion(); if ($importModuleName == null) { $error = $package->_errorText; checkFileAccessForDeletion($uploadFileName); unlink($uploadFileName); } else { // We need these information to push for Update if module is detected to be present. $moduleLicence = vtlib_purify($package->getLicense()); $viewer->assign('MODULEIMPORT_FILE', $uploadFile); $viewer->assign('MODULEIMPORT_TYPE', $package->type()); $viewer->assign('MODULEIMPORT_NAME', $importModuleName); $viewer->assign('MODULEIMPORT_PACKAGE', $package); $viewer->assign('MODULEIMPORT_DEP_VTVERSION', $importModuleDepVtVersion); $viewer->assign('MODULEIMPORT_LICENSE', $moduleLicence); $viewer->assign('MODULEIMPORT_PARAMETERS', $package->getParameters()); if (!$package->isLanguageType() && !$package->isUpdateType() && !$package->isModuleBundle()) { $moduleInstance = Vtiger_Module::getInstance($importModuleName); $moduleimport_exists = $moduleInstance ? "true" : "false"; $moduleimport_dir_name = "modules/{$importModuleName}"; $moduleimport_dir_exists = is_dir($moduleimport_dir_name) ? "true" : "false"; $viewer->assign('MODULEIMPORT_EXISTS', $moduleimport_exists); $viewer->assign('MODULEIMPORT_DIR', $moduleimport_dir_name); $viewer->assign('MODULEIMPORT_DIR_EXISTS', $moduleimport_dir_exists); } } } $viewer->assign('MODULEIMPORT_ERROR', $error); $viewer->view('ImportUserModuleStep2.tpl', $qualifiedModuleName); }
$moduleimport_name = $package->getModuleNameFromZip($uploadfilename); if ($moduleimport_name == null) { $smarty->assign("MODULEIMPORT_FAILED", "true"); $smarty->assign("MODULEIMPORT_FILE_INVALID", "true"); } else { if (!$package->isLanguageType()) { $moduleInstance = Vtiger_Module::getInstance($moduleimport_name); $moduleimport_exists = $moduleInstance ? "true" : "false"; $moduleimport_dir_name = "modules/{$moduleimport_name}"; $moduleimport_dir_exists = is_dir($moduleimport_dir_name) ? "true" : "false"; $smarty->assign("MODULEIMPORT_EXISTS", $moduleimport_exists); $smarty->assign("MODULEIMPORT_DIR", $moduleimport_dir_name); $smarty->assign("MODULEIMPORT_DIR_EXISTS", $moduleimport_dir_exists); } $moduleimport_dep_vtversion = $package->getDependentVtigerVersion(); $moduleimport_license = $package->getLicense(); $smarty->assign("MODULEIMPORT_FILE", $uploadfile); $smarty->assign("MODULEIMPORT_TYPE", $package->type()); $smarty->assign("MODULEIMPORT_NAME", $moduleimport_name); $smarty->assign("MODULEIMPORT_DEP_VTVERSION", $moduleimport_dep_vtversion); $smarty->assign("MODULEIMPORT_LICENSE", $moduleimport_license); } } } else { if ($module_import_step == 'Step3') { $uploadfile = $_REQUEST['module_import_file']; $uploadfilename = "{$modulemanager_uploaddir}/{$uploadfile}"; checkFileAccess($uploadfilename); //$overwritedir = ($_REQUEST['module_dir_overwrite'] == 'true')? true : false; $overwritedir = false; // Disallowing overwrites through Module Manager UI
$package = new Vtiger_Package(); $moduleupdate_name = $package->getModuleNameFromZip($uploadfilename); if ($moduleupdate_name == null) { $smarty->assign("MODULEUPDATE_FAILED", "true"); $smarty->assign("MODULEUPDATE_FILE_INVALID", "true"); } else { if (!$package->isLanguageType() && $moduleupdate_name != $target_modulename) { $smarty->assign("MODULEUPDATE_FAILED", "true"); $smarty->assign("MODULEUPDATE_NAME_MISMATCH", "true"); } else { if ($package->isLanguageType() && trim($package->xpath_value('prefix')) != $target_modulename) { $smarty->assign("MODULEUPDATE_FAILED", "true"); $smarty->assign("MODULEUPDATE_NAME_MISMATCH", "true"); } else { $moduleupdate_dep_vtversion = $package->getDependentVtigerVersion(); $moduleupdate_license = $package->getLicense(); $moduleupdate_version = $package->getVersion(); if (!$package->isLanguageType()) { $moduleInstance = Vtiger_Module::getInstance($moduleupdate_name); $moduleupdate_exists = $moduleInstance ? "true" : "false"; $moduleupdate_dir_name = "modules/{$moduleupdate_name}"; $moduleupdate_dir_exists = is_dir($moduleupdate_dir_name) ? "true" : "false"; $smarty->assign("MODULEUPDATE_CUR_VERSION", $moduleInstance ? $moduleInstance->version : ''); $smarty->assign("MODULEUPDATE_NOT_EXISTS", !$moduleupdate_exists); $smarty->assign("MODULEUPDATE_DIR", $moduleupdate_dir_name); $smarty->assign("MODULEUPDATE_DIR_NOT_EXISTS", !$moduleupdate_dir_exists); // If version is matching, dis-allow migration if (version_compare($moduleupdate_version, $moduleInstance->version, '=')) { $smarty->assign("MODULEUPDATE_FAILED", "true"); $smarty->assign("MODULEUPDATE_SAME_VERSION", "true"); }