System Settings: Se aceptan valores reales/negativos en los campos: "MemoryLimit, CookieLifetime y DefaultUserExpiryDate"
This commit is contained in:
dheeyi william
2017-05-04 09:56:34 -04:00
parent 112d3abd3d
commit 650d7051a7
2 changed files with 97 additions and 74 deletions

View File

@@ -27,28 +27,18 @@ class adminProxy extends HttpProxyController
{ {
const hashunlink = 'unlink'; const hashunlink = 'unlink';
/**
* Save configurations of systemConf
* @param $httpData
* @throws Exception
*/
public function saveSystemConf($httpData) public function saveSystemConf($httpData)
{ {
G::loadClass('system'); G::loadClass('system');
$envFile = PATH_CONFIG . 'env.ini'; $envFile = PATH_CONFIG . 'env.ini';
$updateRedirector = false; $updateRedirector = false;
$restart = false; $restart = false;
self::validateDataSystemConf($httpData, $envFile);
if (!file_exists($envFile) ) {
if (!is_writable(PATH_CONFIG)) {
throw new Exception('The enviroment config directory is not writable. <br/>Please give write permission to directory: /workflow/engine/config');
}
$content = ";\r\n";
$content .= "; ProcessMaker System Bootstrap Configuration\r\n";
$content .= ";\r\n";
file_put_contents($envFile, $content);
//@chmod($envFile, 0777);
} else {
if (!is_writable($envFile)) {
throw new Exception('The enviroment ini file file is not writable. <br/>Please give write permission to file: /workflow/engine/config/env.ini');
}
}
$sysConf = System::getSystemConfiguration($envFile); $sysConf = System::getSystemConfiguration($envFile);
$updatedConf = array(); $updatedConf = array();
@@ -1536,5 +1526,46 @@ class adminProxy extends HttpProxyController
G::streamFile($support, true); G::streamFile($support, true);
G::rm_dir($support); G::rm_dir($support);
} }
}
/**
* Validate data before saving
* @param $httpData
* @param $envFile
* @throws Exception
*/
public static function validateDataSystemConf($httpData, $envFile)
{
if (!((is_numeric($httpData->memory_limit)) && ((int)$httpData->memory_limit == $httpData->memory_limit) &&
((int)$httpData->memory_limit >= -1))
) {
throw new Exception('The Memory Limit has to be either a positive integer or -1 ');
}
if (!((is_numeric($httpData->max_life_time)) && ((int)$httpData->max_life_time == $httpData->max_life_time) &&
((int)$httpData->max_life_time > 0))
) {
throw new Exception('The Max Lifetime has to be either a positive integer ');
}
if (!((is_numeric($httpData->expiration_year)) && ((int)$httpData->expiration_year == $httpData->expiration_year) &&
((int)$httpData->expiration_year > 0))
) {
throw new Exception('The Default Expiration Year has to be either a positive integer');
}
if (!file_exists($envFile)) {
if (!is_writable(PATH_CONFIG)) {
throw new Exception('The enviroment config directory is not writable. <br/>Please give write permission to directory: /workflow/engine/config');
}
$content = ";\r\n";
$content .= "; ProcessMaker System Bootstrap Configuration\r\n";
$content .= ";\r\n";
file_put_contents($envFile, $content);
//@chmod($envFile, 0777);
} else {
if (!is_writable($envFile)) {
throw new Exception('The enviroment ini file is not writable. <br/>Please give write permission to file: /workflow/engine/config/env.ini');
}
}
}
}

View File

@@ -85,32 +85,6 @@ Ext.onReady(function(){
cmbTimeZone.setValue(sysConf.time_zone); cmbTimeZone.setValue(sysConf.time_zone);
txtExpirationYear = new Ext.form.TextField({
xtype: 'numberfield',
id : 'expiration_year',
name : 'expiration_year',
fieldLabel: _('ID_DEFAULT_EXPIRATION_YEAR'),
allowBlank: false,
allowNegative: false,
value: 1,
maxlength: 15,
minValue: 1,
validator: function(value){
if(value > 0) {
return true;
} else {
PMExt.error( _('ID_ERROR'), _('ID_INVALID_VALUE_EXPECTING_POSITIVE_INTEGER', _('ID_DEFAULT_EXPIRATION_YEAR')));
return false;
}
},
listeners:{
change: function(){
changeSettings();
}
}
});
txtExpirationYear.setValue(sysConf.expiration_year);
saveButton = new Ext.Action({ saveButton = new Ext.Action({
text : _('ID_SAVE_SETTINGS'), text : _('ID_SAVE_SETTINGS'),
disabled : true, disabled : true,
@@ -118,38 +92,56 @@ Ext.onReady(function(){
}); });
xfieldsUp = new Ext.form.FieldSet({ xfieldsUp = new Ext.form.FieldSet({
title: _('ID_SYSTEM_SETTINGS'), title: _('ID_SYSTEM_SETTINGS'),
items : [ items: [
cmbTimeZone, cmbTimeZone,
{ {
xtype: 'numberfield', xtype: 'numberfield',
id : 'memory_limit', id: 'memory_limit',
name : 'memory_limit', name: 'memory_limit',
fieldLabel: _('ID_MEMORY_LIMIT'), fieldLabel: _('ID_MEMORY_LIMIT'),
allowBlank: false, allowBlank: false,
autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 15 }, allowDecimals: false,
value: sysConf.memory_limit, minValue: -1,
listeners:{ autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 15},
change: function(){ value: sysConf.memory_limit,
changeSettings(); listeners: {
change: function () {
changeSettings();
}
}
}, {
xtype: 'numberfield',
id: 'max_life_time',
name: 'max_life_time',
fieldLabel: _('ID_MAX_LIFETIME'),
allowNegative: false,
allowDecimals: false,
autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 15},
value: sysConf.session_gc_maxlifetime,
listeners: {
change: function () {
changeSettings();
}
}
}, {
xtype: 'numberfield',
id: 'expiration_year',
name: 'expiration_year',
fieldLabel: _('ID_DEFAULT_EXPIRATION_YEAR'),
allowBlank: false,
allowNegative: false,
allowDecimals: false,
value: sysConf.expiration_year,
maxlength: 15,
minValue: 1,
listeners: {
change: function () {
changeSettings();
}
}
} }
} ]
}, {
xtype: 'numberfield',
id : 'max_life_time',
name : 'max_life_time',
fieldLabel: _('ID_MAX_LIFETIME'),
// allowBlank: false,
autoCreate: {tag: "input", type: "text", autocomplete: "off", maxlength: 15 },
value: sysConf.session_gc_maxlifetime,
listeners:{
change: function(){
changeSettings();
}
}
}
,txtExpirationYear
]
}); });
xfieldsBelow = new Ext.form.FieldSet({ xfieldsBelow = new Ext.form.FieldSet({