diff --git a/inc/processmaker.class.php b/inc/processmaker.class.php index 81a9b11..f2c4172 100644 --- a/inc/processmaker.class.php +++ b/inc/processmaker.class.php @@ -271,17 +271,12 @@ class PluginProcessmakerProcessmaker extends CommonDBTM { // get user from glpi_plugin_processmaker_users table $pmusr = new PluginProcessmakerUser; $pmusr->getFromDB($gusr->getID()); - //if (!isset($pmusr->fields['password']) || $pmusr->fields['password'] == "") { if (is_object($pmusr) && array_key_exists('pm_users_id', $pmusr->fields)) { $pass = md5(Toolbox::sodiumEncrypt($gusr->getID().$gusr->getName().time())); - //$pmusr->update( array('id' => $pmusr->getID(), 'password' => $pass) ); // and must be updated also in PM db $PM_DB->update('RBAC_USERS', ['USR_PASSWORD' => $pass], ['USR_UID' => $pmusr->fields['pm_users_id']]); - //$PM_DB->query("UPDATE RBAC_USERS SET USR_PASSWORD='".$pass."' WHERE USR_UID='".$pmusr->fields['pm_users_id']."' "); $PM_DB->update('USERS', ['USR_PASSWORD' => $pass], ['USR_UID' => $pmusr->fields['pm_users_id']]); - //$PM_DB->query("UPDATE USERS SET USR_PASSWORD='".$pass."' WHERE USR_UID='".$pmusr->fields['pm_users_id']."' "); - //} - //$locSession = $this->pmSoapClient->login( array( 'userid' => $gusr->fields['name'], 'password' => 'md5:'.$pmusr->fields['password']) ); + // and then login with this user/password $locSession = $this->pmSoapClient->login( ['userid' => $gusr->fields['name'], 'password' => 'md5:'.$pass] ); if (is_object( $locSession ) && $locSession->status_code == 0) { $_SESSION["pluginprocessmaker"]["session"]["id"] = $locSession->message; @@ -1313,7 +1308,7 @@ class PluginProcessmakerProcessmaker extends CommonDBTM { if ($user['is_active'] != 0 && $user['is_deleted'] != 1) { $status = "ACTIVE"; $task->addVolume(1); - $pass = md5(Toolbox::sodiumEncrypt($user['id'].$user['name'].time())); + $pass = substr(Toolbox::sodiumEncrypt($user['id'].$user['name'].time()), 0, 20); // must keep only 20 chars as the web service is limited to 20 for the password $pmResult = $PM_SOAP->createUser($user['name'], $user['firstname'], $user['realname'], "", "PROCESSMAKER_OPERATOR", $pass, $status); if ($pmResult->status_code == 0) { $task->log( "Added user: '".$user['name']."'" ); diff --git a/processmaker.xml b/processmaker.xml index 84dd07d..477d6e7 100644 --- a/processmaker.xml +++ b/processmaker.xml @@ -41,7 +41,7 @@ 9.4 - 4.0.2 + 4.0.3 9.5 diff --git a/setup.php b/setup.php index e3f2861..d2d8ef0 100644 --- a/setup.php +++ b/setup.php @@ -1,6 +1,6 @@