BUG 10852 Control de los reenvíos de la notificaciones 'Messages History' SOLVED

- Se requiere que los reenvíos que se hacen a través del historial de mensajes, no se pueda realizar desde el menú casos, ya que existe el problema que cualquier usuario que haya participado de un caso puede reenviar notificaciones, a cualquier usuario, y existe el peligro de divulgación de información crítica que debe ser restringida por roles.
- Added Roles to control Messages History.
This commit is contained in:
Hector Cortez
2013-04-15 15:49:27 -04:00
parent 03596f504b
commit c90a1d4da2
7 changed files with 465 additions and 256 deletions

View File

@@ -44,6 +44,7 @@
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
<option name="MSGS_HISTORY">Messages History</option>
</en>
</OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray">
@@ -65,33 +66,36 @@
<en>Output Document<option name="">All</option></en>
</OUTPUTS>
<OP_ACTION type="dropdown" mode="edit">
<en>Permission<option name="VIEW">View</option><option name="BLOCK">Block</option><option name="DELETE">Delete</option></en>
<en>Permission
<option name="VIEW">View</option>
<option name="BLOCK">Block</option>
<option name="DELETE">Delete</option>
<option name="RESEND">Resend</option>
</en>
</OP_ACTION>
<CREATE type="button" onclick="saveObjectPermission(this.form);">
<en>Save</en>
</CREATE>
<ID_DELETE type="private"/>
<ID_RESEND type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = [];
var getOptions = function() {
var oAux = getField('OP_ACTION');
for (var i = 0; i < oAux.options.length; i++) {
if (oAux.options[i].value != 'DELETE') {
aOptions.push({label:oAux.options[i].text, value: oAux.options[i].value});
var oAux = getField('OP_ACTION');
for (var i = 0; i < oAux.options.length; i++) {
if (oAux.options[i].value != 'DELETE' && oAux.options[i].value != 'RESEND') {
aOptions.push({label:oAux.options[i].text, value: oAux.options[i].value});
}
}
}
};
var rebuildOptionsWhenLoad = function(sType) {
var selectedValue = getField('OP_ACTION').value;
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
var selectedValue = getField('OP_ACTION').value;
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
@@ -99,156 +103,168 @@ var rebuildOptionsWhenLoad = function(sType) {
oOption.selected = true;
}
oAux.options.add(oOption);
}
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
break
default:
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
}
break;
}
oAux.value = selectedValue;
}
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
break;
case 'MSGS_HISTORY':
var oOption = document.createElement('OPTION');
oOption.value = 'RESEND';
oOption.text = '@#ID_RESEND';
if (oOption.value == selectedValue) {
oOption.selected = true;
}
oAux.options.add(oOption);
break;
default:
break;
}
oAux.value = selectedValue;
};
var rebuildOptions = function(sType) {
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
oAux.options.add(oOption);
break
default:
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
break;
}
}
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
oAux.options.add(oOption);
break;
case 'MSGS_HISTORY' :
var oOption = document.createElement('OPTION');
oOption.value = 'RESEND';
oOption.text = '@#ID_RESEND';
oAux.options.add(oOption);
break;
default:
break;
}
};
if(getField('OP_OBJ_TYPE').value=='ANY')
{ hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='DYNAFORM')
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='CASES_NOTES')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
getOptions();
rebuildOptionsWhenLoad(getField('OP_OBJ_TYPE').value);
if (getField('OP_OBJ_TYPE').value=='ANY') {
hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='DYNAFORM') {
hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='INPUT') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='OUTPUT') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='CASES_NOTES') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='MSGS_HISTORY') {
hideRowById('ALL');
hideRowById('DYNAFORMS');
hideRowById('INPUTS');
hideRowById('OUTPUTS');
showRowById('OP_ACTION');
}
getOptions();
rebuildOptionsWhenLoad(getField('OP_OBJ_TYPE').value);
leimnud.event.add(document.getElementById('form[OP_OBJ_TYPE]'), 'change', function() {
if(getField('OP_OBJ_TYPE').value=='DYNAFORM')
{ hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'DYNAFORMS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='INPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='OUTPUT')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='CASES_NOTES')
{ hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
if(getField('OP_OBJ_TYPE').value=='ANY')
{ hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
rebuildOptions(getField('OP_OBJ_TYPE').value);
if (getField('OP_OBJ_TYPE').value=='DYNAFORM') {
hideRowById( 'ALL' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'DYNAFORMS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='INPUT') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'OUTPUTS' );
showRowById( 'INPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='OUTPUT') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
showRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='CASES_NOTES') {
hideRowById( 'ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
hideRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='ANY') {
hideRowById('ALL' );
hideRowById( 'DYNAFORMS' );
hideRowById( 'INPUTS' );
hideRowById( 'OUTPUTS' );
showRowById( 'OP_ACTION' );
}
if (getField('OP_OBJ_TYPE').value=='MSGS_HISTORY') {
hideRowById('ALL');
hideRowById('DYNAFORMS');
hideRowById('INPUTS');
hideRowById('OUTPUTS');
showRowById('OP_ACTION');
}
rebuildOptions(getField('OP_OBJ_TYPE').value);
});
leimnud.event.add(document.getElementById('form[OP_CASE_STATUS]'), 'change', function() {
var target = document.getElementById('form[TAS_UID]');
var origin = document.getElementById('form[OP_TASK_SOURCE]');
var participate = document.getElementById('form[OP_PARTICIPATE]');
if (document.getElementById('form[OP_CASE_STATUS]').value=='COMPLETED')
{
hideRowById(target);
hideRowById(origin);
hideRowById(participate);
}
else
{
showRowById(target);
showRowById(origin);
showRowById(participate);
}
var target = document.getElementById('form[TAS_UID]');
var origin = document.getElementById('form[OP_TASK_SOURCE]');
var participate = document.getElementById('form[OP_PARTICIPATE]');
if (document.getElementById('form[OP_CASE_STATUS]').value=='COMPLETED') {
hideRowById(target);
hideRowById(origin);
hideRowById(participate);
} else {
showRowById(target);
showRowById(origin);
showRowById(participate);
}
});
]]></JS>

View File

@@ -44,6 +44,7 @@
<option name="INPUT">Input Document</option>
<option name="OUTPUT">Output Document</option>
<option name="CASES_NOTES">Cases Notes</option>
<option name="MSGS_HISTORY">Messages History</option>
</en>
</OP_OBJ_TYPE>
<ALL type="dropdown" mode="edit" sqlConnection="dbarray">
@@ -65,7 +66,10 @@
<en>Output Document<option name="">All</option></en>
</OUTPUTS>
<OP_ACTION type="dropdown" mode="edit">
<en>Permission<option name="VIEW">View</option><option name="BLOCK">Block</option></en>
<en>Permission
<option name="VIEW">View</option>
<option name="BLOCK">Block</option>
</en>
</OP_ACTION>
<BTN_CANCEL type="button" onclick="cancel();">
@@ -76,6 +80,7 @@
<en>Create</en>
</CREATE>
<ID_DELETE type="private"/>
<ID_RESEND type="private"/>
<JS type="javascript"><![CDATA[
var aOptions = [];
var getOptions = function() {
@@ -85,35 +90,33 @@ var getOptions = function() {
}
};
var rebuildOptions = function(sType) {
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
switch (sType) {
case 'INPUT':
case 'OUTPUT':
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
var oOption = document.createElement('OPTION');
oOption.value = 'DELETE';
oOption.text = '@#ID_DELETE';
oAux.options.add(oOption);
break
break;
case 'MSGS_HISTORY' :
var oOption = document.createElement('OPTION');
oOption.value = 'RESEND';
oOption.text = '@#ID_RESEND';
oAux.options.add(oOption);
break;
default:
var oAux = getField('OP_ACTION');
while (oAux.options.length) {
oAux.remove(0);
}
for (var i = 0; i < aOptions.length; i++) {
var oOption = document.createElement('OPTION');
oOption.value = aOptions[i].value;
oOption.text = aOptions[i].label;
oAux.options.add(oOption);
}
break;
}
};
@@ -179,6 +182,17 @@ leimnud.event.add(getField('OP_OBJ_TYPE'), 'change', function() {
hideRowById('OUTPUTS');
hideRowById('OP_ACTION');
break;
case 'MSGS_HISTORY':
getField('ALL').value = '';
getField('DYNAFORMS').value = '';
getField('INPUTS').value = '';
getField('OUTPUTS').value = (getField('OUTPUTS').options[0] ? getField('OUTPUTS').options[0].value : '');
hideRowById('ALL');
hideRowById('DYNAFORMS');
hideRowById('INPUTS');
hideRowById('OUTPUTS');
showRowById('OP_ACTION');
break;
}
rebuildOptions(vValue);
});