From 68d6281cc8e1af14b976b6c05a357765d3efdd50 Mon Sep 17 00:00:00 2001 From: qronald Date: Fri, 21 Apr 2017 14:52:57 -0400 Subject: [PATCH 1/6] HOR-3070 Save and recovery process designer 'enabled grid' property --- .../model/map/UsersPropertiesMapBuilder.php | 2 + .../classes/model/om/BaseUsersProperties.php | 60 ++++++++++++++++++- .../model/om/BaseUsersPropertiesPeer.php | 23 ++++--- workflow/engine/config/schema.xml | 1 + workflow/engine/data/mysql/schema.sql | 1 + .../src/ProcessMaker/Services/Api/Project.php | 19 ++++++ 6 files changed, 96 insertions(+), 10 deletions(-) diff --git a/workflow/engine/classes/model/map/UsersPropertiesMapBuilder.php b/workflow/engine/classes/model/map/UsersPropertiesMapBuilder.php index 7baef3398..90743a86a 100644 --- a/workflow/engine/classes/model/map/UsersPropertiesMapBuilder.php +++ b/workflow/engine/classes/model/map/UsersPropertiesMapBuilder.php @@ -73,6 +73,8 @@ class UsersPropertiesMapBuilder $tMap->addColumn('USR_PASSWORD_HISTORY', 'UsrPasswordHistory', 'string', CreoleTypes::LONGVARCHAR, false, null); + $tMap->addColumn('USR_SETTING_DESIGNER', 'UsrSettingDesigner', 'string', CreoleTypes::LONGVARCHAR, false, null); + } // doBuild() } // UsersPropertiesMapBuilder diff --git a/workflow/engine/classes/model/om/BaseUsersProperties.php b/workflow/engine/classes/model/om/BaseUsersProperties.php index 4a5c1ba5b..d7da23a8b 100644 --- a/workflow/engine/classes/model/om/BaseUsersProperties.php +++ b/workflow/engine/classes/model/om/BaseUsersProperties.php @@ -51,6 +51,12 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent */ protected $usr_password_history; + /** + * The value for the usr_setting_designer field. + * @var string + */ + protected $usr_setting_designer; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -130,6 +136,17 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent return $this->usr_password_history; } + /** + * Get the [usr_setting_designer] column value. + * + * @return string + */ + public function getUsrSettingDesigner() + { + + return $this->usr_setting_designer; + } + /** * Set the value of [usr_uid] column. * @@ -225,6 +242,28 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent } // setUsrPasswordHistory() + /** + * Set the value of [usr_setting_designer] column. + * + * @param string $v new value + * @return void + */ + public function setUsrSettingDesigner($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->usr_setting_designer !== $v) { + $this->usr_setting_designer = $v; + $this->modifiedColumns[] = UsersPropertiesPeer::USR_SETTING_DESIGNER; + } + + } // setUsrSettingDesigner() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -250,12 +289,14 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent $this->usr_password_history = $rs->getString($startcol + 3); + $this->usr_setting_designer = $rs->getString($startcol + 4); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 4; // 4 = UsersPropertiesPeer::NUM_COLUMNS - UsersPropertiesPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 5; // 5 = UsersPropertiesPeer::NUM_COLUMNS - UsersPropertiesPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating UsersProperties object", $e); @@ -471,6 +512,9 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent case 3: return $this->getUsrPasswordHistory(); break; + case 4: + return $this->getUsrSettingDesigner(); + break; default: return null; break; @@ -495,6 +539,7 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent $keys[1] => $this->getUsrLastUpdateDate(), $keys[2] => $this->getUsrLoggedNextTime(), $keys[3] => $this->getUsrPasswordHistory(), + $keys[4] => $this->getUsrSettingDesigner(), ); return $result; } @@ -538,6 +583,9 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent case 3: $this->setUsrPasswordHistory($value); break; + case 4: + $this->setUsrSettingDesigner($value); + break; } // switch() } @@ -577,6 +625,10 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent $this->setUsrPasswordHistory($arr[$keys[3]]); } + if (array_key_exists($keys[4], $arr)) { + $this->setUsrSettingDesigner($arr[$keys[4]]); + } + } /** @@ -604,6 +656,10 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent $criteria->add(UsersPropertiesPeer::USR_PASSWORD_HISTORY, $this->usr_password_history); } + if ($this->isColumnModified(UsersPropertiesPeer::USR_SETTING_DESIGNER)) { + $criteria->add(UsersPropertiesPeer::USR_SETTING_DESIGNER, $this->usr_setting_designer); + } + return $criteria; } @@ -664,6 +720,8 @@ abstract class BaseUsersProperties extends BaseObject implements Persistent $copyObj->setUsrPasswordHistory($this->usr_password_history); + $copyObj->setUsrSettingDesigner($this->usr_setting_designer); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseUsersPropertiesPeer.php b/workflow/engine/classes/model/om/BaseUsersPropertiesPeer.php index 00371d0c7..2636ff64a 100644 --- a/workflow/engine/classes/model/om/BaseUsersPropertiesPeer.php +++ b/workflow/engine/classes/model/om/BaseUsersPropertiesPeer.php @@ -25,7 +25,7 @@ abstract class BaseUsersPropertiesPeer const CLASS_DEFAULT = 'classes.model.UsersProperties'; /** The total number of columns. */ - const NUM_COLUMNS = 4; + const NUM_COLUMNS = 5; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -43,6 +43,9 @@ abstract class BaseUsersPropertiesPeer /** the column name for the USR_PASSWORD_HISTORY field */ const USR_PASSWORD_HISTORY = 'USERS_PROPERTIES.USR_PASSWORD_HISTORY'; + /** the column name for the USR_SETTING_DESIGNER field */ + const USR_SETTING_DESIGNER = 'USERS_PROPERTIES.USR_SETTING_DESIGNER'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -54,10 +57,10 @@ abstract class BaseUsersPropertiesPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('UsrUid', 'UsrLastUpdateDate', 'UsrLoggedNextTime', 'UsrPasswordHistory', ), - BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID, UsersPropertiesPeer::USR_LAST_UPDATE_DATE, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME, UsersPropertiesPeer::USR_PASSWORD_HISTORY, ), - BasePeer::TYPE_FIELDNAME => array ('USR_UID', 'USR_LAST_UPDATE_DATE', 'USR_LOGGED_NEXT_TIME', 'USR_PASSWORD_HISTORY', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('UsrUid', 'UsrLastUpdateDate', 'UsrLoggedNextTime', 'UsrPasswordHistory', 'UsrSettingDesigner', ), + BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID, UsersPropertiesPeer::USR_LAST_UPDATE_DATE, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME, UsersPropertiesPeer::USR_PASSWORD_HISTORY, UsersPropertiesPeer::USR_SETTING_DESIGNER, ), + BasePeer::TYPE_FIELDNAME => array ('USR_UID', 'USR_LAST_UPDATE_DATE', 'USR_LOGGED_NEXT_TIME', 'USR_PASSWORD_HISTORY', 'USR_SETTING_DESIGNER', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -67,10 +70,10 @@ abstract class BaseUsersPropertiesPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('UsrUid' => 0, 'UsrLastUpdateDate' => 1, 'UsrLoggedNextTime' => 2, 'UsrPasswordHistory' => 3, ), - BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID => 0, UsersPropertiesPeer::USR_LAST_UPDATE_DATE => 1, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME => 2, UsersPropertiesPeer::USR_PASSWORD_HISTORY => 3, ), - BasePeer::TYPE_FIELDNAME => array ('USR_UID' => 0, 'USR_LAST_UPDATE_DATE' => 1, 'USR_LOGGED_NEXT_TIME' => 2, 'USR_PASSWORD_HISTORY' => 3, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, ) + BasePeer::TYPE_PHPNAME => array ('UsrUid' => 0, 'UsrLastUpdateDate' => 1, 'UsrLoggedNextTime' => 2, 'UsrPasswordHistory' => 3, 'UsrSettingDesigner' => 4, ), + BasePeer::TYPE_COLNAME => array (UsersPropertiesPeer::USR_UID => 0, UsersPropertiesPeer::USR_LAST_UPDATE_DATE => 1, UsersPropertiesPeer::USR_LOGGED_NEXT_TIME => 2, UsersPropertiesPeer::USR_PASSWORD_HISTORY => 3, UsersPropertiesPeer::USR_SETTING_DESIGNER => 4, ), + BasePeer::TYPE_FIELDNAME => array ('USR_UID' => 0, 'USR_LAST_UPDATE_DATE' => 1, 'USR_LOGGED_NEXT_TIME' => 2, 'USR_PASSWORD_HISTORY' => 3, 'USR_SETTING_DESIGNER' => 4, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, ) ); /** @@ -179,6 +182,8 @@ abstract class BaseUsersPropertiesPeer $criteria->addSelectColumn(UsersPropertiesPeer::USR_PASSWORD_HISTORY); + $criteria->addSelectColumn(UsersPropertiesPeer::USR_SETTING_DESIGNER); + } const COUNT = 'COUNT(USERS_PROPERTIES.USR_UID)'; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 3e16c46f2..f9663b0e7 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -2305,6 +2305,7 @@ + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 7a4bfe380..b0cc1210a 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1084,6 +1084,7 @@ CREATE TABLE `USERS_PROPERTIES` `USR_LAST_UPDATE_DATE` DATETIME, `USR_LOGGED_NEXT_TIME` INTEGER default 0, `USR_PASSWORD_HISTORY` MEDIUMTEXT, + `USR_SETTING_DESIGNER` MEDIUMTEXT, PRIMARY KEY (`USR_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 6c080741c..9b6dccc45 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -57,6 +57,11 @@ class Project extends Api try { $project = Adapter\BpmnWorkflow::getStruct($prj_uid); + $oUserProperty = (new \UsersProperties)->load($this->getUserId()); + $project['user_setting_designer'] = null; + if (!$oUserProperty['USR_SETTING_DESIGNER'] && $oUserProperty['USR_SETTING_DESIGNER']) { + $project['user_setting_designer'] = unserialize($oUserProperty['USR_SETTING_DESIGNER']); + } return DateTime::convertUtcToIso8601($project, $this->arrayFieldIso8601); } catch (\Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); @@ -96,6 +101,20 @@ class Project extends Api public function doPutProject($prj_uid, $request_data) { try { + if (array_key_exists('user_setting_designer', $request_data)) { + $oUserProperty = \UsersPropertiesPeer::retrieveByPK($this->getUserId()); + if ($oUserProperty) { + $oUserProperty->fromArray($request_data, \BasePeer::TYPE_FIELDNAME); + $oUserProperty->save(); + } else { + $oUserProperty = new \UsersProperties(); + $oUserProperty->setUsrUid($this->getUserId()); + $oUserProperty->setUsrSettingDesigner(serialize($request_data['user_setting_designer'])); + $oUserProperty->save(); + } + unset($request_data['user_setting_designer']); + } + Validator::throwExceptionIfDataNotMetIso8601Format($request_data, $this->arrayFieldIso8601); return Adapter\BpmnWorkflow::updateFromStruct($prj_uid, DateTime::convertDataToUtc($request_data, $this->arrayFieldIso8601)); } catch (\Exception $e) { From 8b8b562c9678bed1fe46a53d94948092f89bd12c Mon Sep 17 00:00:00 2001 From: qronald Date: Fri, 21 Apr 2017 15:12:34 -0400 Subject: [PATCH 2/6] fix in name --- .../src/ProcessMaker/Services/Api/Project.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 9b6dccc45..35676b01e 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -58,9 +58,9 @@ class Project extends Api $project = Adapter\BpmnWorkflow::getStruct($prj_uid); $oUserProperty = (new \UsersProperties)->load($this->getUserId()); - $project['user_setting_designer'] = null; - if (!$oUserProperty['USR_SETTING_DESIGNER'] && $oUserProperty['USR_SETTING_DESIGNER']) { - $project['user_setting_designer'] = unserialize($oUserProperty['USR_SETTING_DESIGNER']); + $project['usr_setting_designer'] = null; + if ($oUserProperty['USR_SETTING_DESIGNER']) { + $project['usr_setting_designer'] = json_decode($oUserProperty['USR_SETTING_DESIGNER']); } return DateTime::convertUtcToIso8601($project, $this->arrayFieldIso8601); } catch (\Exception $e) { @@ -101,18 +101,19 @@ class Project extends Api public function doPutProject($prj_uid, $request_data) { try { - if (array_key_exists('user_setting_designer', $request_data)) { + if (array_key_exists('usr_setting_designer', $request_data)) { $oUserProperty = \UsersPropertiesPeer::retrieveByPK($this->getUserId()); if ($oUserProperty) { - $oUserProperty->fromArray($request_data, \BasePeer::TYPE_FIELDNAME); + $data['USR_SETTING_DESIGNER'] = json_encode($request_data['usr_setting_designer']); + $oUserProperty->fromArray($data, \BasePeer::TYPE_FIELDNAME); $oUserProperty->save(); } else { $oUserProperty = new \UsersProperties(); $oUserProperty->setUsrUid($this->getUserId()); - $oUserProperty->setUsrSettingDesigner(serialize($request_data['user_setting_designer'])); + $oUserProperty->setUsrSettingDesigner(serialize($request_data['usr_setting_designer'])); $oUserProperty->save(); } - unset($request_data['user_setting_designer']); + unset($request_data['usr_setting_designer']); } Validator::throwExceptionIfDataNotMetIso8601Format($request_data, $this->arrayFieldIso8601); From b3a86115281807d272f27738c1df65730d57a427 Mon Sep 17 00:00:00 2001 From: qronald Date: Fri, 21 Apr 2017 15:20:07 -0400 Subject: [PATCH 3/6] valid --- workflow/engine/src/ProcessMaker/Services/Api/Project.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 35676b01e..f0930037c 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -57,10 +57,11 @@ class Project extends Api try { $project = Adapter\BpmnWorkflow::getStruct($prj_uid); - $oUserProperty = (new \UsersProperties)->load($this->getUserId()); + $oUserProperty = \UsersPropertiesPeer::retrieveByPK($this->getUserId()); $project['usr_setting_designer'] = null; - if ($oUserProperty['USR_SETTING_DESIGNER']) { - $project['usr_setting_designer'] = json_decode($oUserProperty['USR_SETTING_DESIGNER']); + if ($oUserProperty) { + $aFields = $oUserProperty->toArray( \BasePeer::TYPE_FIELDNAME ); + $project['usr_setting_designer'] = $aFields['USR_SETTING_DESIGNER'] ? json_decode($aFields['USR_SETTING_DESIGNER']) : null; } return DateTime::convertUtcToIso8601($project, $this->arrayFieldIso8601); } catch (\Exception $e) { From 0fa39a6cdfde106f97ea0b40162ba9798b1be3c7 Mon Sep 17 00:00:00 2001 From: qronald Date: Mon, 24 Apr 2017 10:11:16 -0400 Subject: [PATCH 4/6] up observations --- .../src/ProcessMaker/Services/Api/Project.php | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index f0930037c..f21819d75 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -61,7 +61,7 @@ class Project extends Api $project['usr_setting_designer'] = null; if ($oUserProperty) { $aFields = $oUserProperty->toArray( \BasePeer::TYPE_FIELDNAME ); - $project['usr_setting_designer'] = $aFields['USR_SETTING_DESIGNER'] ? json_decode($aFields['USR_SETTING_DESIGNER']) : null; + $project['usr_setting_designer'] = $aFields['USR_SETTING_DESIGNER'] ? \G::json_decode($aFields['USR_SETTING_DESIGNER']) : null; } return DateTime::convertUtcToIso8601($project, $this->arrayFieldIso8601); } catch (\Exception $e) { @@ -103,17 +103,11 @@ class Project extends Api { try { if (array_key_exists('usr_setting_designer', $request_data)) { - $oUserProperty = \UsersPropertiesPeer::retrieveByPK($this->getUserId()); - if ($oUserProperty) { - $data['USR_SETTING_DESIGNER'] = json_encode($request_data['usr_setting_designer']); - $oUserProperty->fromArray($data, \BasePeer::TYPE_FIELDNAME); - $oUserProperty->save(); - } else { - $oUserProperty = new \UsersProperties(); - $oUserProperty->setUsrUid($this->getUserId()); - $oUserProperty->setUsrSettingDesigner(serialize($request_data['usr_setting_designer'])); - $oUserProperty->save(); - } + $oUserProperty = new \UsersProperties(); + $property = $oUserProperty->loadOrCreateIfNotExists($this->getUserId()); + $usrSettingDesigner = array_merge(\G::json_decode($property['USR_SETTING_DESIGNER'], true), $request_data['usr_setting_designer']); + $property['USR_SETTING_DESIGNER'] = \G::json_encode($usrSettingDesigner); + $oUserProperty->update($property); unset($request_data['usr_setting_designer']); } From ef87b3f3abfe23fa9486d27eda9bf8e931834c59 Mon Sep 17 00:00:00 2001 From: qronald Date: Mon, 24 Apr 2017 10:23:07 -0400 Subject: [PATCH 5/6] up observations --- .../src/ProcessMaker/Services/Api/Project.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index f21819d75..94293c835 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -57,12 +57,9 @@ class Project extends Api try { $project = Adapter\BpmnWorkflow::getStruct($prj_uid); - $oUserProperty = \UsersPropertiesPeer::retrieveByPK($this->getUserId()); - $project['usr_setting_designer'] = null; - if ($oUserProperty) { - $aFields = $oUserProperty->toArray( \BasePeer::TYPE_FIELDNAME ); - $project['usr_setting_designer'] = $aFields['USR_SETTING_DESIGNER'] ? \G::json_decode($aFields['USR_SETTING_DESIGNER']) : null; - } + $userProperty = new \UsersProperties(); + $property = $userProperty->loadOrCreateIfNotExists($this->getUserId()); + $project['usr_setting_designer'] = isset($property['USR_SETTING_DESIGNER']) ? \G::json_decode($property['USR_SETTING_DESIGNER']) : null; return DateTime::convertUtcToIso8601($project, $this->arrayFieldIso8601); } catch (\Exception $e) { throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); @@ -102,10 +99,11 @@ class Project extends Api public function doPutProject($prj_uid, $request_data) { try { + $oUserProperty = new \UsersProperties(); + $property = $oUserProperty->loadOrCreateIfNotExists($this->getUserId()); if (array_key_exists('usr_setting_designer', $request_data)) { - $oUserProperty = new \UsersProperties(); - $property = $oUserProperty->loadOrCreateIfNotExists($this->getUserId()); - $usrSettingDesigner = array_merge(\G::json_decode($property['USR_SETTING_DESIGNER'], true), $request_data['usr_setting_designer']); + $propertyArray = isset($property['USR_SETTING_DESIGNER']) ? \G::json_decode($property['USR_SETTING_DESIGNER'], true) : []; + $usrSettingDesigner = array_merge($propertyArray, $request_data['usr_setting_designer']); $property['USR_SETTING_DESIGNER'] = \G::json_encode($usrSettingDesigner); $oUserProperty->update($property); unset($request_data['usr_setting_designer']); From af4d4667c59adb1170cb0f2201a95a4336a0aaa0 Mon Sep 17 00:00:00 2001 From: qronald Date: Mon, 24 Apr 2017 15:36:22 -0400 Subject: [PATCH 6/6] up observations --- workflow/engine/src/ProcessMaker/Services/Api/Project.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 94293c835..dbf3f6cd2 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -99,9 +99,9 @@ class Project extends Api public function doPutProject($prj_uid, $request_data) { try { - $oUserProperty = new \UsersProperties(); - $property = $oUserProperty->loadOrCreateIfNotExists($this->getUserId()); if (array_key_exists('usr_setting_designer', $request_data)) { + $oUserProperty = new \UsersProperties(); + $property = $oUserProperty->loadOrCreateIfNotExists($this->getUserId()); $propertyArray = isset($property['USR_SETTING_DESIGNER']) ? \G::json_decode($property['USR_SETTING_DESIGNER'], true) : []; $usrSettingDesigner = array_merge($propertyArray, $request_data['usr_setting_designer']); $property['USR_SETTING_DESIGNER'] = \G::json_encode($usrSettingDesigner);