AKZA#36723 INS: Autorisatie voor objectbeheerder: alleen eigen objecten bewerken

svn path=/Website/trunk/; revision=32024
This commit is contained in:
Erik Groener
2016-12-19 15:02:30 +00:00
parent 5f77eea8e6
commit 29a312ce29
2 changed files with 20 additions and 17 deletions

View File

@@ -539,6 +539,7 @@ ins = {checkAutLevel:
// Vanuit PDA wordt dan eventueel met melding (of reservering) op dit object
// Daarom niet al te hard er uit klappen hier.
iresult.canReadAny = true;
iresult.canChange = iresult.canChange || ((iresult.readuse || iresult.readman) && objectbeheerder);
if (params && params.srtcont_key > 0)
{
@@ -834,8 +835,7 @@ ins = {checkAutLevel:
iresult.writeman = iresult.canWrite("WEB_INSMAN");
iresult.writeuse = iresult.canWrite("WEB_INSUSE");
iresult.canDelete = iresult.canWrite("WEB_INSMAN"); // Verwijderen.
iresult.canChange = (iresult.canRead("WEB_INSMAN") || iresult.canRead("WEB_INSUSE"))
&& (iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE") || S("ins_can_edit_own_objects")==1); // Wijzigen.
iresult.canChange = iresult.canWrite("WEB_INSMAN") || iresult.canWrite("WEB_INSUSE"); // Wijzigen.
iresult.canChangeAlg = iresult.canWrite("WEB_INSMAN"); // Wijzigen algemene gegevens.
iresult.canCopy = iresult.canWrite("WEB_INSMAN"); // Kopi<70>ren.
}
@@ -843,6 +843,7 @@ ins = {checkAutLevel:
var autparamsINSMSU = user.checkAutorisation("WEB_INSMSU", true);
iresult.writemsu = autparamsINSMSU && autparamsINSMSU.PRSwritelevel < 9 && autparamsINSMSU.ALGwritelevel < 9; // Wijzigen Afgeronde gegevens.
iresult.readuse = iresult.canRead("WEB_INSUSE"); // Inzien.
iresult.readman = iresult.canRead("WEB_INSMAN");
return iresult;
},

View File

@@ -623,7 +623,7 @@ var ins_deel_aantal = 1;
extraParamField: "autonum",
extracode: "A",
onChange: "onChangeDiscipline", // disgroepChanged
readonly: (disc_key > 0 || ins_key > 0 || copy) || !this_ins.canChangeAlg,
readonly: (disc_key > 0 || ins_key > 0 || copy) || (!this_ins.canChangeAlg && !this_ins.canChange),
required: true
});
@@ -634,7 +634,7 @@ var ins_deel_aantal = 1;
autfunction: autfunction,
onChange: "onChangeSrtgroep",
urlAdd: [{urlParam: "disc_key", field: "disc"}],
readonly: (ins_key > 0 || copy || module == "SLE") || !this_ins.canChangeAlg,
readonly: (ins_key > 0 || copy || module == "SLE") || (!this_ins.canChangeAlg && !this_ins.canChange),
required: true
});
@@ -650,7 +650,7 @@ var ins_deel_aantal = 1;
extraParamField: "binding",
extracode: "B",
module: module,
readonly: (ins_key > 0 || copy || module == "SLE") || !this_ins.canChangeAlg,
readonly: (ins_key > 0 || copy || module == "SLE") || (!this_ins.canChangeAlg && !this_ins.canChange),
required: true
});
@@ -678,15 +678,15 @@ var ins_deel_aantal = 1;
(ins_key > 0 || copy) && isNext < 0? desc : new_desc,
{ maxlength: 60,
required: true,
readonly: !this_ins.canChangeAlg || !(autonum & 2)
readonly: (!this_ins.canChangeAlg && !this_ins.canChange) || !(autonum & 2)
});
if (S("ins_explode_objects") == 0)
RWFIELDTR("count", "fldshort", L("lcl_count"), ins_deel_aantal, {datatype: "number", readonly: !this_ins.canChangeAlg, required: true});
RWFIELDTR("count", "fldshort", L("lcl_count"), ins_deel_aantal, {datatype: "number", readonly: (!this_ins.canChangeAlg && !this_ins.canChange), required: true});
else if(ins_key < 0 || isNext > 0 )
{
RWFIELDTR("count", "fldshort", L("lcl_count"), 1, {datatype: "number", readonly: !this_ins.canChangeAlg});
RWFIELDTR("count", "fldshort", L("lcl_count"), 1, {datatype: "number", readonly: (!this_ins.canChangeAlg && !this_ins.canChange)});
}
RWFIELDTR("opmerk", "fld", L("lcl_ins_opmerking"), opmerk, {maxlength: 320, readonly: !this_ins.canChangeAlg}); %>
RWFIELDTR("opmerk", "fld", L("lcl_ins_opmerking"), opmerk, {maxlength: 320, readonly: (!this_ins.canChangeAlg && !this_ins.canChange)}); %>
</table>
</td>
<td align="center">
@@ -726,17 +726,17 @@ var ins_deel_aantal = 1;
{ datum: aanmaak,
label: L("lcl_last_action"),
required: true,
readonly: !this_ins.canChangeAlg,
readonly: (!this_ins.canChangeAlg && !this_ins.canChange),
volgnr: 1
});
FCLTcalendar("vervaldatum",
{ datum: vervaldatum,
initEmpty: vervaldatum==null,
label: L("lcl_ins_vervaldatum"),
readonly: !this_ins.canChangeAlg,
readonly: (!this_ins.canChangeAlg && !this_ins.canChange),
volgnr: 2
});
RWCHECKBOXTR("ins_actief", "fldcheck", L("lcl_ins_active"), actief, {readonly: !this_ins.canChangeAlg});
RWCHECKBOXTR("ins_actief", "fldcheck", L("lcl_ins_active"), actief, {readonly: (!this_ins.canChangeAlg && !this_ins.canChange)});
FCLTpersoonselector("ins_manager", // beheerder
"sgins_manager",
{ perslidKey: perslid_key_beh,
@@ -775,7 +775,7 @@ var ins_deel_aantal = 1;
label: L("lcl_prs_organisatie"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangeDept",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
readonly: (parent_key > 0 || isLendOut) || (!this_ins.canChangeAlg && !this_ins.canChange)
});
}
@@ -787,7 +787,7 @@ var ins_deel_aantal = 1;
label: L("lcl_name"),
autlevel: authparams.PRSwritelevel,
onChange: "onChangePerson",
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
readonly: (parent_key > 0 || isLendOut) || (!this_ins.canChangeAlg && !this_ins.canChange)
});
}
@@ -843,7 +843,7 @@ var ins_deel_aantal = 1;
filtercode: "INCVR",
onLocChange: change,
escalateOnChUp: true, // ook onLocChange als je gebouw wijzigt
readonly: (parent_key > 0 || isLendOut) || !this_ins.canChangeAlg
readonly: (parent_key > 0 || isLendOut) || (!this_ins.canChangeAlg && !this_ins.canChange)
});
}
BLOCK_END();
@@ -857,11 +857,13 @@ var ins_deel_aantal = 1;
sql: sql,
params: { id: "dayshours",
initKey: uitvoertijd_eenheid,
readonly: !this_ins.canChangeAlg && uitvoertijd < 0,
readonly: (!this_ins.canChangeAlg && !this_ins.canChange) && uitvoertijd < 0,
disable: !uitvoertijd
}
}
RWFIELDTR("uitvoertijd", "fldins_uitvtijd", L("lcl_ins_uitvoertijd"), uitvoertijd? Math.round(uitvoertijd * 100) / 100 : "", {maxlength: 4, datatype: "float", html: "onChange='onChangeUitvoertijd();'", selector: selectparams, readonly: !this_ins.canChangeAlg});
RWFIELDTR("uitvoertijd", "fldins_uitvtijd", L("lcl_ins_uitvoertijd"), uitvoertijd? Math.round(uitvoertijd * 100) / 100 : ""
, {maxlength: 4, datatype: "float", html: "onChange='onChangeUitvoertijd();'", selector: selectparams
, readonly: (!this_ins.canChangeAlg && !this_ins.canChange)});
BLOCK_END();
if (urole != "fo" || uitleen_flex_present) // FO ziet ze alleen als er uitleen flex zijn?