From cd92610a592025f41ff69626c7520db97bc2c260 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 12 Jun 2014 16:02:32 -0400 Subject: [PATCH 1/6] BUG-14775 In the source code /workflow/engine/classes/model/UsersProperties.php line 153-160 variable $iLength is obtained by calculating the number of characters in the password, if the password is valid variable $aErrors no longer sets the corresponding flag to activate the validators in the Windows password change. IMPROVEMENT. --- workflow/engine/classes/model/UsersProperties.php | 9 +++++---- workflow/engine/methods/login/authentication.php | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 7e2f8587f..0a63feccc 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -123,8 +123,9 @@ class UsersProperties extends BaseUsersProperties return $aUserProperty; } - public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime) + public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime, $nowLogin = false) { + error_log(PPP_MINIMUM_LENGTH); if (! defined( 'PPP_MINIMUM_LENGTH' )) { define( 'PPP_MINIMUM_LENGTH', 5 ); } @@ -149,10 +150,10 @@ class UsersProperties extends BaseUsersProperties $iLength = strlen( $sPassword ); } $aErrors = array (); - if ($iLength < PPP_MINIMUM_LENGTH) { + if ($iLength < PPP_MINIMUM_LENGTH || $nowLogin) { $aErrors[] = 'ID_PPP_MINIMUM_LENGTH'; } - if ($iLength > PPP_MAXIMUM_LENGTH) { + if ($iLength > PPP_MAXIMUM_LENGTH || $nowLogin) { $aErrors[] = 'ID_PPP_MAXIMUM_LENGTH'; } if (PPP_NUMERICAL_CHARACTER_REQUIRED == 1) { @@ -180,7 +181,7 @@ class UsersProperties extends BaseUsersProperties } $fDays = $oCalendar->calculateDuration( date( 'Y-m-d H:i:s' ), $sLastUpdate ); - if ($fDays > (PPP_EXPIRATION_IN * 24)) { + if ($fDays > (PPP_EXPIRATION_IN * 24) || $nowLogin) { $aErrors[] = 'ID_PPP_EXPIRATION_IN'; } } diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index ff4cf5ce7..8a69b4892 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -262,7 +262,7 @@ try { } $aUserProperty = $oUserProperty->loadOrCreateIfNotExists($_SESSION['USER_LOGGED'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($pwd))))); - $aErrors = $oUserProperty->validatePassword($_POST['form']['USR_PASSWORD'], $aUserProperty['USR_LAST_UPDATE_DATE'], $aUserProperty['USR_LOGGED_NEXT_TIME']); + $aErrors = $oUserProperty->validatePassword($_POST['form']['USR_PASSWORD'], $aUserProperty['USR_LAST_UPDATE_DATE'], $aUserProperty['USR_LOGGED_NEXT_TIME'], true); if (!empty($aErrors)) { if (!defined('NO_DISPLAY_USERNAME')) { From 89c72b97abe6d08814eafd7c440e90a90600ca97 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 12 Jun 2014 17:31:25 -0400 Subject: [PATCH 2/6] BUG-14775 In the source code /workflow/engine/classes/model/UsersProperties.php line 153-160 variable $iLength is obtained by calculating the number of characters in the password, if the password is valid variable $aErrors no longer sets the corresponding flag to activate the validators in the Windows password change. IMPROVEMENT. --- workflow/engine/classes/model/UsersProperties.php | 1 - 1 file changed, 1 deletion(-) diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 0a63feccc..0b17ce1f2 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -125,7 +125,6 @@ class UsersProperties extends BaseUsersProperties public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime, $nowLogin = false) { - error_log(PPP_MINIMUM_LENGTH); if (! defined( 'PPP_MINIMUM_LENGTH' )) { define( 'PPP_MINIMUM_LENGTH', 5 ); } From 9a5fffa7e4fd5ed1f896283f91419fcf5a36caf0 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 12 Jun 2014 17:46:42 -0400 Subject: [PATCH 3/6] BUG-14775 In the source code /workflow/engine/classes/model/UsersProperties.php line 153-160 variable $iLength is obtained by calculating the number of characters in the password, if the password is valid variable $aErrors no longer sets the corresponding flag to activate the validators in the Windows password change. IMPROVEMENT. --- workflow/engine/methods/login/authentication.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index 8a69b4892..c95c2c60e 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -264,7 +264,7 @@ try { $aUserProperty = $oUserProperty->loadOrCreateIfNotExists($_SESSION['USER_LOGGED'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($pwd))))); $aErrors = $oUserProperty->validatePassword($_POST['form']['USR_PASSWORD'], $aUserProperty['USR_LAST_UPDATE_DATE'], $aUserProperty['USR_LOGGED_NEXT_TIME'], true); - if (!empty($aErrors)) { + if (!empty($aErrors) && in_array("ID_PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN", $aErrors)) { if (!defined('NO_DISPLAY_USERNAME')) { define('NO_DISPLAY_USERNAME', 1); } From 53a58a54b2fb27edcf7f278c97bf9e936cc62f2a Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Mon, 16 Jun 2014 12:43:25 -0400 Subject: [PATCH 4/6] BUG 15208 "Problemas con los Servicios Web WSDL..." SOLVED - Problemas con los Servicios Web WSDL de PM. - Se agrega el parametro "$params->taskId" en el archivo mencionado en el presente bug, en el metodo "NewCaseImpersonate", que contiene la siguiente linea de codigo: $res = $ws->newCaseImpersonate($params->processId, $params->userId, $params->variables, $params->taskId); Disponible para la version 2.5.3 de ProcessMaker. --- workflow/engine/methods/services/soap2.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 3a8395199..aa5d8cda4 100755 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -681,7 +681,7 @@ function NewCaseImpersonate ($params) /////// $ws = new wsBase(); - $res = $ws->newCaseImpersonate( $params->processId, $params->userId, $params->variables ); + $res = $ws->newCaseImpersonate($params->processId, $params->userId, $params->variables, $params->taskId); return $res; } From 329a580129f773e260cb77629bc28f1668d7d399 Mon Sep 17 00:00:00 2001 From: Julio Cesar Laura Date: Tue, 17 Jun 2014 12:04:56 -0400 Subject: [PATCH 5/6] Change the default value for the new field OUT_DOC_OPEN_TYPE from 0 to 1 --- workflow/engine/config/schema.xml | 2 +- workflow/engine/data/mssql/schema.sql | 2 +- workflow/engine/data/mysql/schema.sql | 2 +- workflow/engine/data/oracle/schema.sql | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index afa88abb2..bc4410a75 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -781,7 +781,7 @@ - + diff --git a/workflow/engine/data/mssql/schema.sql b/workflow/engine/data/mssql/schema.sql index 536111446..6e8391f24 100755 --- a/workflow/engine/data/mssql/schema.sql +++ b/workflow/engine/data/mssql/schema.sql @@ -852,7 +852,7 @@ CREATE TABLE [OUTPUT_DOCUMENT] [OUT_DOC_PDF_SECURITY_OPEN_PASSWORD] VARCHAR(32) default '' NULL, [OUT_DOC_PDF_SECURITY_OWNER_PASSWORD] VARCHAR(32) default '' NULL, [OUT_DOC_PDF_SECURITY_PERMISSIONS] VARCHAR(150) default '' NULL, - [OUT_DOC_OPEN_TYPE] INT default 0 NULL, + [OUT_DOC_OPEN_TYPE] INT default 1 NULL, CONSTRAINT OUTPUT_DOCUMENT_PK PRIMARY KEY ([OUT_DOC_UID]) ); diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index eab6cb46c..8150b9717 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -374,7 +374,7 @@ CREATE TABLE `OUTPUT_DOCUMENT` `OUT_DOC_PDF_SECURITY_OPEN_PASSWORD` VARCHAR(32) default '', `OUT_DOC_PDF_SECURITY_OWNER_PASSWORD` VARCHAR(32) default '', `OUT_DOC_PDF_SECURITY_PERMISSIONS` VARCHAR(150) default '', - `OUT_DOC_OPEN_TYPE` INTEGER default 0, + `OUT_DOC_OPEN_TYPE` INTEGER default 1, PRIMARY KEY (`OUT_DOC_UID`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/data/oracle/schema.sql b/workflow/engine/data/oracle/schema.sql index 6c297a3ef..f98cf2c4a 100755 --- a/workflow/engine/data/oracle/schema.sql +++ b/workflow/engine/data/oracle/schema.sql @@ -471,7 +471,7 @@ CREATE TABLE "OUTPUT_DOCUMENT" "OUT_DOC_PDF_SECURITY_OPEN_PASSWORD" VARCHAR2(32) default '', "OUT_DOC_PDF_SECURITY_OWNER_PASSWORD" VARCHAR2(32) default '', "OUT_DOC_PDF_SECURITY_PERMISSIONS" VARCHAR2(150) default '', - "OUT_DOC_OPEN_TYPE" NUMBER default 0 + "OUT_DOC_OPEN_TYPE" NUMBER default 1 ); ALTER TABLE "OUTPUT_DOCUMENT" From ef1112793a0f958cc2bd3f10184e0c7f43feaa54 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Tue, 17 Jun 2014 12:06:22 -0400 Subject: [PATCH 6/6] =?UTF-8?q?BUG-14775=20Adicion=20de=20bandera=20que=20?= =?UTF-8?q?habilita=20politicas=20de=20contrase=C3=B1a=20al=20momento=20de?= =?UTF-8?q?=20logueo=20de=20usuario.=20IMPROVEMENT.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- workflow/engine/classes/model/UsersProperties.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 0b17ce1f2..6ece46e96 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -156,17 +156,17 @@ class UsersProperties extends BaseUsersProperties $aErrors[] = 'ID_PPP_MAXIMUM_LENGTH'; } if (PPP_NUMERICAL_CHARACTER_REQUIRED == 1) { - if (preg_match_all( '/[0-9]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0) { + if (preg_match_all( '/[0-9]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0 || $nowLogin) { $aErrors[] = 'ID_PPP_NUMERICAL_CHARACTER_REQUIRED'; } } if (PPP_UPPERCASE_CHARACTER_REQUIRED == 1) { - if (preg_match_all( '/[A-Z]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0) { + if (preg_match_all( '/[A-Z]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0 || $nowLogin) { $aErrors[] = 'ID_PPP_UPPERCASE_CHARACTER_REQUIRED'; } } if (PPP_SPECIAL_CHARACTER_REQUIRED == 1) { - if (preg_match_all( '/[��\\!|"@�#$~%�&�\/()=\'?��*+\-_.:,;]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0) { + if (preg_match_all( '/[��\\!|"@�#$~%�&�\/()=\'?��*+\-_.:,;]/', $sPassword, $aMatch, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ) == 0 || $nowLogin) { $aErrors[] = 'ID_PPP_SPECIAL_CHARACTER_REQUIRED'; } }