72 lines
3.4 KiB
C++
72 lines
3.4 KiB
C++
<% /*
|
|
$Revision$
|
|
$Id$
|
|
*/
|
|
%>
|
|
<!-- #include file="../PRS/prs.inc" -->
|
|
<%
|
|
sle = {func_enabled_slecil: // Wat mag ik zoal op dit specifieke sleutel/cilinder object?
|
|
function (pins_deel_key, params)
|
|
{
|
|
var isql = "SELECT d.ins_discipline_key"
|
|
+ ", COALESCE(d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_key"
|
|
+ ", COALESCE(d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) alg_type"
|
|
+ ", d.ins_alg_ruimte_key_org"
|
|
+ ", sd.ins_srtgroep_key"
|
|
+ ", d.ins_deel_actief"
|
|
+ ", CASE WHEN d.ins_deel_vervaldatum < SYSDATE"
|
|
+ " THEN 1"
|
|
+ " ELSE 0"
|
|
+ " END vervallen"
|
|
+ " FROM ins_deel d"
|
|
+ ", ins_srtdeel sd"
|
|
+ " WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
|
+ " AND d.ins_deel_key = " + pins_deel_key;
|
|
var ioRs = Oracle.Execute(isql);
|
|
var alg_key = ioRs("alg_key").value;
|
|
var alg_type = ioRs("alg_type").value;
|
|
var uitgegeven = ioRs("ins_alg_ruimte_key_org").value != null;
|
|
var sletype = (ioRs("ins_srtgroep_key").value == S("sle_ins_srt_groep_key")? "S" : "C")
|
|
var actief = ioRs("ins_deel_actief").Value == 1;
|
|
var vervallen = ioRs("vervallen").Value == 1;
|
|
ioRs.Close();
|
|
|
|
// Autorisatie niet van discipline afhankelijk. En ook niet van persoon.
|
|
var iresult = user.func_enabled2("SLE",
|
|
{alg_key: (alg_type == 'R'? alg_key : null),
|
|
isOptional: true } // nog even optional
|
|
);
|
|
|
|
iresult.canFOWrite = iresult.canWrite("WEB_SLEFOF");
|
|
iresult.canBOWrite = iresult.canWrite("WEB_SLEBOF");
|
|
|
|
// Voor het uitgeven en innemen van sleutels gelden WEB_SLEFOF rechten
|
|
// Voor het uitgeven en innemen van cilinders gelden WEB_SLEBOF rechten
|
|
var canWrite = (sletype == "S"? iresult.canFOWrite : iresult.canBOWrite)
|
|
iresult.canUitgeven = canWrite && !uitgegeven && actief && !vervallen; // Uitgeven
|
|
iresult.canInnemen = canWrite && uitgegeven; // Innemen
|
|
iresult.canDelete = canWrite;
|
|
|
|
return iresult;
|
|
},
|
|
|
|
kanKoppelen: // Mag ik deze sleutel/cilinder srtdeel koppelen?
|
|
function (pins_srtdeel_key, params)
|
|
{
|
|
var isql = "SELECT d.ins_deel_key"
|
|
+ " FROM ins_deel d"
|
|
+ " WHERE d.ins_srtdeel_key = " + pins_srtdeel_key;
|
|
var ioRs = Oracle.Execute(isql);
|
|
var kanKoppelen = false;
|
|
// Als ik rechten heb op 1 van de sleutels dan mag ik ook koppelen
|
|
while (!ioRs.eof && !kanKoppelen)
|
|
{
|
|
var this_sle = sle.func_enabled_slecil(ioRs("ins_deel_key").value);
|
|
kanKoppelen = this_sle.canBOWrite;
|
|
ioRs.MoveNext();
|
|
}
|
|
ioRs.Close();
|
|
return kanKoppelen;
|
|
}
|
|
}
|
|
%> |