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;
}