HOR-1697
System Settings: Se aceptan valores reales/negativos en los campos: "MemoryLimit, CookieLifetime y DefaultUserExpiryDate"
This commit is contained in:
@@ -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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user