Merge pull request #2401 from gproly/BUG-14775

BUG-14775 Password policies PPP_MINIMUM_LENGTH and PPP_MAXIMUM_LENGTH ar...
This commit is contained in:
julceslauhub
2014-05-20 10:21:16 -03:00
3 changed files with 38 additions and 15 deletions

View File

@@ -143,9 +143,6 @@ class UsersProperties extends BaseUsersProperties
if (! defined( 'PPP_EXPIRATION_IN' )) {
define( 'PPP_EXPIRATION_IN', 0 );
}
if (! defined( 'PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN' )) {
define( 'PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN', 0 );
}
if (function_exists( 'mb_strlen' )) {
$iLength = mb_strlen( $sPassword );
} else {
@@ -177,9 +174,9 @@ class UsersProperties extends BaseUsersProperties
G::LoadClass( 'calendar' );
$oCalendar = new calendar();
if ($oCalendar->pmCalendarUid == '') {
$oCalendar->pmCalendarUid = '00000000000000000000000000000001';
$oCalendar->getCalendarData();
if ($oCalendar->pmCalendarUid == '') {
$oCalendar->pmCalendarUid = '00000000000000000000000000000001';
$oCalendar->getCalendarData();
}
$fDays = $oCalendar->calculateDuration( date( 'Y-m-d H:i:s' ), $sLastUpdate );
@@ -187,10 +184,8 @@ class UsersProperties extends BaseUsersProperties
$aErrors[] = 'ID_PPP_EXPIRATION_IN';
}
}
if (PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN == 1) {
if ($iChangePasswordNextTime == 1) {
$aErrors[] = 'ID_PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN';
}
if ($iChangePasswordNextTime == 1) {
$aErrors[] = 'ID_PPP_CHANGE_PASSWORD_AFTER_NEXT_LOGIN';
}
return $aErrors;
}

View File

@@ -140,6 +140,9 @@ switch ($_POST['action']) {
if (!isset($form['USR_AUTH_USER_DN'])) {
$form['USR_AUTH_USER_DN'] = '';
}
if (!isset($form['USR_LOGGED_NEXT_TIME'])) {
$form['USR_LOGGED_NEXT_TIME'] = 0;
}
if ($form['USR_UID'] == '') {
$criteria = new Criteria();
@@ -208,6 +211,11 @@ switch ($_POST['action']) {
die;
}
*/
require_once 'classes/model/UsersProperties.php';
$oUserProperty = new UsersProperties();
$aUserProperty = $oUserProperty->loadOrCreateIfNotExists($aData['USR_UID'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($aData['USR_PASSWORD'])))));
$aUserProperty['USR_LOGGED_NEXT_TIME'] = $form['USR_LOGGED_NEXT_TIME'];
$oUserProperty->update($aUserProperty);
} else {
$aData['USR_UID'] = $form['USR_UID'];
@@ -229,7 +237,7 @@ switch ($_POST['action']) {
}
if ($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'] == 'PROCESSMAKER_ADMIN') {
$aUserProperty['USR_LAST_UPDATE_DATE'] = date('Y-m-d H:i:s');
$aUserProperty['USR_LOGGED_NEXT_TIME'] = 1;
$aUserProperty['USR_LOGGED_NEXT_TIME'] = $form['USR_LOGGED_NEXT_TIME'];
$oUserProperty->update($aUserProperty);
}
@@ -292,7 +300,7 @@ switch ($_POST['action']) {
$aHistory[] = $form['USR_PASSWORD'];
}
$aUserProperty['USR_LAST_UPDATE_DATE'] = date('Y-m-d H:i:s');
$aUserProperty['USR_LOGGED_NEXT_TIME'] = 1;
$aUserProperty['USR_LOGGED_NEXT_TIME'] = $form['USR_LOGGED_NEXT_TIME'];
$aUserProperty['USR_PASSWORD_HISTORY'] = serialize($aHistory);
$oUserProperty->update($aUserProperty);
}
@@ -499,7 +507,12 @@ switch ($_POST['action']) {
$aFields['USER_LOGGED_ROLE'] = $aUserLog['USR_ROLE'];
$aFields['CASES_MENUSELECTED_NAME'] = $casesMenuSelected;
require_once 'classes/model/UsersProperties.php';
$oUserProperty = new UsersProperties();
$aFieldsUserProperty = $oUserProperty->load($_POST['USR_UID']);
$aFields['USR_LOGGED_NEXT_TIME'] = $aFieldsUserProperty['USR_LOGGED_NEXT_TIME'];
$result->success = true;
$result->user = $aFields;

View File

@@ -620,7 +620,20 @@ Ext.onReady(function () {
]
});
var accountOptions = new Ext.form.FieldSet({
title: _('ID_ACCOUNT_OPTIONS'),
items: [{
xtype: 'checkbox',
id: 'USR_LOGGED_NEXT_TIME',
name: 'USR_LOGGED_NEXT_TIME',
boxLabel: _('ID_USER_MUST_CHANGE_PASSWORD_AT_NEXT_LOGON'),
value: 0,
inputValue: 1,
uncheckedValue: 0
}]
});
storeDefaultMainMenuOption = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: "usersAjax",
@@ -727,6 +740,7 @@ Ext.onReady(function () {
items : [
informationFields,
passwordFields,
accountOptions,
profileFields,
preferencesFields
],
@@ -1277,7 +1291,8 @@ function loadUserData()
USR_PHONE : data.user.USR_PHONE,
USR_POSITION : data.user.USR_POSITION,
USR_DUE_DATE : data.user.USR_DUE_DATE,
USR_STATUS : data.user.USR_STATUS
USR_STATUS : data.user.USR_STATUS,
USR_LOGGED_NEXT_TIME : data.user.USR_LOGGED_NEXT_TIME
});
if (infoMode) {