diff --git a/workflow/engine/classes/model/UsersProperties.php b/workflow/engine/classes/model/UsersProperties.php index 7e2f8587f..6ece46e96 100755 --- a/workflow/engine/classes/model/UsersProperties.php +++ b/workflow/engine/classes/model/UsersProperties.php @@ -123,7 +123,7 @@ class UsersProperties extends BaseUsersProperties return $aUserProperty; } - public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime) + public function validatePassword ($sPassword, $sLastUpdate, $iChangePasswordNextTime, $nowLogin = false) { if (! defined( 'PPP_MINIMUM_LENGTH' )) { define( 'PPP_MINIMUM_LENGTH', 5 ); @@ -149,24 +149,24 @@ 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) { - 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'; } } @@ -180,7 +180,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/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" diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index ff4cf5ce7..c95c2c60e 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -262,9 +262,9 @@ 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 (!empty($aErrors) && in_array("ID_PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN", $aErrors)) { if (!defined('NO_DISPLAY_USERNAME')) { define('NO_DISPLAY_USERNAME', 1); } 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; }