Selective Import/Export - Add license key to include it only in enterprise/enterprise edition

MT-115 addons feature

MT-115
This commit is contained in:
dheeyi
2016-04-08 12:36:01 -04:00
parent 5b2ee5e7aa
commit e4bb4ba86e
4 changed files with 61 additions and 24 deletions

View File

@@ -282,6 +282,24 @@ class PMLicensedFeatures
"type" => "features", "type" => "features",
"url" => "", "url" => "",
"version" => "" "version" => ""
),
15 => array(),
16 => array(
"description" => "Selective Import Export.",
"enabled" => false,
"id" => "selectiveImportExport",
"latest_version" => "",
"log" => null,
"name" => "selectiveImportExport",
"nick" => "selectiveImportExport",
"progress" => 0,
"publisher" => "Colosa",
"release_type" => "localRegistry",
"status" => "ready",
"store" => "00000000000000000000000000010016",
"type" => "features",
"url" => "",
"version" => ""
) )
); );

View File

@@ -61452,4 +61452,5 @@ INSERT INTO ADDONS_MANAGER (ADDON_DESCRIPTION,ADDON_ID,ADDON_NAME,ADDON_NICK,ADD
('SSO with an LDAP provider.','windowsSSO','windowsSSO','windowsSSO','Colosa','localRegistry','ready','00000000000000000000000000010011','features','','','0'), ('SSO with an LDAP provider.','windowsSSO','windowsSSO','windowsSSO','Colosa','localRegistry','ready','00000000000000000000000000010011','features','','','0'),
('Integration with Gmail','pmGmail','pmGmail','pmGmail','Colosa','localRegistry','ready','00000000000000000000000000010012','features','','','0'), ('Integration with Gmail','pmGmail','pmGmail','pmGmail','Colosa','localRegistry','ready','00000000000000000000000000010012','features','','','0'),
('User-based Language Management.','userBasedLanguage','userBasedLanguage','userBasedLanguage','Colosa','localRegistry','ready','00000000000000000000000000010013','features','','','0'), ('User-based Language Management.','userBasedLanguage','userBasedLanguage','userBasedLanguage','Colosa','localRegistry','ready','00000000000000000000000000010013','features','','','0'),
('User-based Time Zone Management.','userBasedTimeZone','userBasedTimeZone','userBasedTimeZone','Colosa','localRegistry','ready','00000000000000000000000000010014','features','','','0'); ('User-based Time Zone Management.','userBasedTimeZone','userBasedTimeZone','userBasedTimeZone','Colosa','localRegistry','ready','00000000000000000000000000010014','features','','','0'),
('Selective Import Export.','selectiveImportExport','selectiveImportExport','selectiveImportExport','Colosa','localRegistry','ready','00000000000000000000000000010016','features','','','0');

View File

@@ -31,6 +31,9 @@ class GranularExporter
public function export($objectList) public function export($objectList)
{ {
try { try {
if (\PMLicensedFeatures::getSingleton()->verifyfeature
("jXsSi94bkRUcVZyRStNVExlTXhEclVadGRRcG9xbjNvTWVFQUF3cklKQVBiVT0=")
) {
$exportObject = new ExportObjects(); $exportObject = new ExportObjects();
$objectList = $exportObject->mapObjectList($objectList); $objectList = $exportObject->mapObjectList($objectList);
$this->beforeExport($objectList); $this->beforeExport($objectList);
@@ -40,11 +43,13 @@ class GranularExporter
$this->mergeData($migratorData); $this->mergeData($migratorData);
} }
return $this->publish(); return $this->publish();
} catch (ExportException $e) { } else {
return array( $exception = new ExportException();
'success' => false, $exception->setNameException(\G::LoadTranslation('ID_NO_LICENSE_SELECTIVEIMPORTEXPORT_ENABLED'));
'message' => $e->getMessage() throw($exception);
); }
} catch (\Exception $e) {
throw $e;
} }
} }

View File

@@ -161,6 +161,9 @@ class GranularImporter
public function import($objectList) public function import($objectList)
{ {
try { try {
if (\PMLicensedFeatures::getSingleton()->verifyfeature
("jXsSi94bkRUcVZyRStNVExlTXhEclVadGRRcG9xbjNvTWVFQUF3cklKQVBiVT0=")
) {
$objectList = $this->reorderImportOrder($objectList); $objectList = $this->reorderImportOrder($objectList);
foreach ($objectList as $data) { foreach ($objectList as $data) {
$objClass = $this->factory->create($data['name']); $objClass = $this->factory->create($data['name']);
@@ -170,17 +173,27 @@ class GranularImporter
$migratorData = $objClass->import($dataImport, $replace); $migratorData = $objClass->import($dataImport, $replace);
} }
} }
} else {
$exception = new ImportException();
$exception->setNameException(\G::LoadTranslation('ID_NO_LICENSE_SELECTIVEIMPORTEXPORT_ENABLED'));
throw($exception);
}
} catch (\Exception $e) { } catch (\Exception $e) {
if (get_class($e) === 'ProcessMaker\BusinessModel\Migrator\ImportException') {
throw $e;
} else {
$exception = new ImportException('Please review your current process definition $exception = new ImportException('Please review your current process definition
for missing elements, it\'s recommended that a new process should be exported for missing elements, it\'s recommended that a new process should be exported
with all the elements.'); with all the elements.');
throw $exception; throw $exception;
} }
} }
}
/** /**
* @param $objectList * @param $objectList
* @param bool $generateUid * @param $option
* @return bool * @return bool
* @throws \Exception * @throws \Exception
*/ */