FCLT#84467 rolcode vervangt de restricties die in volgnummer waren verstopt -laatste voorkomens
svn path=/Website/trunk/; revision=69090
This commit is contained in:
@@ -1043,8 +1043,7 @@ function model_orders(opdr_key, params)
|
||||
+ " AND k.mld_srtkenmerk_key = t.mld_srtkenmerk_key"
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND (k.mld_kenmerk_volgnummer <= 100"
|
||||
+ " OR k.mld_kenmerk_volgnummer >= 900)" // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
+ " AND BITAND(k.mld_kenmerk_rolcode, 5) > 0" // Alleen bij of na afmelden mogen afmeld-kenmerken 0x0
|
||||
+ " AND " + sql_kenmerkwaarde + " IS NOT NULL";
|
||||
Oracle.Execute(sql_insert);
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@ function bez_edit_bezoekers(afspraak_key, afspraak_begin, afspraak_eind, loc_key
|
||||
var flexfilter_afhandel_default = [];
|
||||
if (alleen_afhandelingskenmerken)
|
||||
{
|
||||
flexfilter = ["k.bez_kenmerk_volgnr < 900"];
|
||||
flexfilter_afhandel_default = ["(k.bez_kenmerk_volgnr < 900 OR (k.bez_kenmerk_volgnr >= 900 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
flexfilter = ["BITAND(k.bez_kenmerk_rolcode, 4) = 0"];
|
||||
flexfilter_afhandel_default = ["(BITAND(k.bez_kenmerk_rolcode, 4) = 0 OR (BITAND(k.bez_kenmerk_rolcode,4) = 4 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
}
|
||||
|
||||
// else: kenmerken voor nieuwe bezoekers worden aangemaakt door load_kenmerk.asp
|
||||
|
||||
@@ -44,7 +44,6 @@ var flexfilter = [];
|
||||
var hidedefault = false; // Verberg default afhandelingskenmerken.
|
||||
if (!backo || alleen_afhandelingskenmerken)
|
||||
{
|
||||
//flexfilter = ["(k.bez_kenmerk_volgnr < 900 OR (k.bez_kenmerk_volgnr >= 900 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
flexfilter = ["(BITAND(k.bez_kenmerk_rolcode, 4) = 0 OR (BITAND(k.bez_kenmerk_rolcode,4) = 4 AND k.bez_kenmerk_default IS NOT NULL))"];
|
||||
hidedefault = true;
|
||||
}
|
||||
|
||||
@@ -2218,7 +2218,7 @@ ins = {checkAutLevel:
|
||||
+ " AND km.ins_kenmerk_niveau = 'G')"
|
||||
+ " OR ( km.ins_srtinstallatie_key = gr.ins_discipline_key"
|
||||
+ " AND km.ins_kenmerk_niveau = 'D'))"
|
||||
+ " AND km.ins_kenmerk_volgnummer >= 900"
|
||||
+ " AND BITAND(km.ins_kenmerk_rolcode,4) = 4"
|
||||
+ " GROUP BY sd.ins_srtdeel_key) k";
|
||||
var sqlKenmerkBewerkbaar_where = " AND dl.ins_srtdeel_key = k.ins_srtdeel_key(+)";
|
||||
}
|
||||
|
||||
@@ -365,7 +365,7 @@ function clear_properties(adapt, balie, ingesloten_i)
|
||||
+ " AND k.ins_srtkenmerk_key = s.ins_srtkenmerk_key"
|
||||
+ " AND k.ins_kenmerk_niveau <> 'C'"
|
||||
+ " AND k.ins_kenmerk_verwijder IS NULL"
|
||||
+ " AND k.ins_kenmerk_volgnummer > 900"
|
||||
+ " AND BITAND(k.ins_kenmerk_rolcode, 4) = 4"
|
||||
+ " AND k.ins_kenmerk_wissen = " + balie //(lendout ? 2 : 1) // Als uitgeleend dan wissen bij inname.
|
||||
+ " AND w.ins_deel_key = " + ingesloten_i
|
||||
+ " AND b.fac_bijlagen_kenmerk_key(+) = k.ins_kenmerk_key"
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
Het overzicht is standaard chronologisch descending, nieuwste document bovenaan.
|
||||
|
||||
Voor objecten hebben dit nog (uit: Help), dat gehoorzamen we
|
||||
Volgnummers <= 100 zijn zichtbaar met WEB_INSMAN
|
||||
Volgnummers >= 100 zijn zichtbaar met WEB_INSUSE (PF: en <= 900 toch?)
|
||||
Volgnummers >= 900 zijn zichtbaar met WEB_INSFOF (tbv uitleenregistratie)
|
||||
rolcode&1 zijn zichtbaar met WEB_INSMAN
|
||||
rolcode&2 zijn zichtbaar met WEB_INSUSE (PF: en <= 900 toch?)
|
||||
rolcode&4 zijn zichtbaar met WEB_INSFOF (tbv uitleenregistratie)
|
||||
|
||||
Parameters: ins_key (required)
|
||||
|
||||
@@ -36,7 +36,7 @@ var filenamelength = 49; // constante. Keuze, normaal maken we ook van 50+ een
|
||||
var this_ins = ins.func_enabled_deel(ins_key); // Wat heb ik zoal aan rechten op dit object?
|
||||
user.auth_required_or_abort(this_ins.canReadAny); // Heb ik enige lees rechten op dit object?
|
||||
|
||||
// Ik mag dus sowieso iets. Nou moet ik vooral weten wat ik evt niet mag voor km.ins_kenmerk_volgnummer
|
||||
// Ik mag dus sowieso iets. Nou moet ik vooral weten wat ik evt niet mag voor km.ins_kenmerk_rolcode
|
||||
var readman = this_ins.readman;
|
||||
var readuse = this_ins.readuse;
|
||||
var readfof = this_ins.writefof; // niet erg logisch, maar ook niet onmogelijk. readfof wordt niet eens bepaald..
|
||||
@@ -78,10 +78,15 @@ function fnFilesize (oRs)
|
||||
// Iemand zou kunnen vinden dat alleen de bijlagen van de laatste taak opgenomen zou moeten worden,
|
||||
// maar waarom zouden we niet het hele archief tonen? Vandaar op datum, nieuwste bovenaan.
|
||||
|
||||
// Qua autorisatie disciplines, volgnummers meenemen zodat
|
||||
// Qua autorisatie disciplines, rolcodes meenemen zodat
|
||||
// er autorisaties toegepast kunnen worden:
|
||||
// - ik mag mogelijk niet alle taken zien, dus ook de daarbij behorende (bijlage)kenmerken niet
|
||||
// - er is mogelijk ook nog iets met kenmerk-volgnummers van het object waar ik wel/geen rechten op heb
|
||||
|
||||
// Wat mag ik op basis van mijn autorisatie en deze situatie zien, bepaal mijn rolcode-masker
|
||||
var myreadrolcode = 0 + (my_mldrechten.canRead("WEB_INSMAN") ? 1 : 0)
|
||||
+ (my_mldrechten.canRead("WEB_INSUSE") ? 2 : 0)
|
||||
+ (my_mldrechten.canRead("WEB_INSFOF") ? 4 : 0);
|
||||
|
||||
|
||||
// Kenmerken van het type Map (folder met files) worden niet in ins_kmdeelsrtcontr geregistreerd.
|
||||
// Voor het type File weet ik het niet, maar anders zou dat deze query moeten zijn. Het duurde even
|
||||
@@ -162,15 +167,7 @@ var sql_taakbijlagen = "SELECT d.ins_deel_omschrijving "
|
||||
+ " AND fb.fac_bijlagen_kenmerk_key = km.ins_kenmerk_key(+) "
|
||||
+ " AND skm.ins_srtkenmerk_key = km.ins_srtkenmerk_key "
|
||||
+ " AND km.ins_kenmerk_niveau NOT IN ('T','C','E') " // niet bij taken
|
||||
+ (readallekenmerken ? ""
|
||||
: (readmanusekenmerken ? " AND km.ins_kenmerk_volgnummer <= 900 "
|
||||
: (readman ? " AND km.ins_kenmerk_volgnummer <= 100 "
|
||||
: (readuse ? " AND km.ins_kenmerk_volgnummer >= 100 AND km.ins_kenmerk_volgnummer <= 900 "
|
||||
: (readfof ? " AND km.ins_kenmerk_volgnummer >= 900 " : "")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
+ " AND BITAND(km.ins_kenmerk_rolcode, " + myreadrolcode + ") > 0"
|
||||
+ " AND d.ins_deel_key = " + ins_key;
|
||||
|
||||
var sql_allebijlagen = sql_taakbijlagen + " UNION " + sql_deelbijlagen
|
||||
|
||||
@@ -535,7 +535,7 @@ var ins_deel_aantal = 1;
|
||||
+ " AND k.ins_kenmerk_verwijder IS NULL"
|
||||
+ " AND t.ins_srtkenmerk_verwijder IS NULL"
|
||||
+ (urole == "fo"
|
||||
? " AND k.ins_kenmerk_volgnummer > 900"
|
||||
? " AND BITAND(k.ins_kenmerk_rolcode, 4) = 4"
|
||||
: "");
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof) {
|
||||
|
||||
@@ -392,7 +392,7 @@ oRs.Close();
|
||||
+ " AND g.ins_srtgroep_key = s.ins_srtgroep_key"
|
||||
+ " AND k.ins_kenmerk_verwijder IS NULL"
|
||||
+ " AND t.ins_srtkenmerk_verwijder IS NULL"
|
||||
+ (urole == "fo"?" AND k.ins_kenmerk_volgnummer > 900" : "");
|
||||
+ (urole == "fo"?" AND BITAND(k.ins_kenmerk_rolcode, 4) = 4" : "");
|
||||
oRs = Oracle.Execute(sql);
|
||||
var uitleen_flex_present = false;
|
||||
if (!oRs.eof) uitleen_flex_present = true;
|
||||
|
||||
@@ -58,7 +58,6 @@ if (ins_key > 0)
|
||||
+ " AND ((km.ins_srtinstallatie_key = sd.ins_srtdeel_key AND km.ins_kenmerk_niveau = 'S')"
|
||||
+ " OR (km.ins_srtinstallatie_key = sd.ins_srtgroep_key AND km.ins_kenmerk_niveau = 'G')"
|
||||
+ " OR (km.ins_srtinstallatie_key = gr.ins_discipline_key AND km.ins_kenmerk_niveau = 'D'))"
|
||||
//+ " AND km.ins_kenmerk_volgnummer >= 900"
|
||||
+ " AND d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
||||
+ " AND sk.ins_srtkenmerk_kenmerktype = 'M'"
|
||||
+ " AND d.ins_deel_key = " + ins_key;
|
||||
|
||||
@@ -46,7 +46,7 @@ FCLTHeader.Requires({ plugins: [] });
|
||||
if (mld_key > 0)
|
||||
{
|
||||
// Is er een bijlage kenmerk?
|
||||
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["mkm.mld_kenmerk_volgnummer < 800",
|
||||
var sql = mld.getMldKenmerk_sql(mld_key, {wheres: ["BITAND(mkm.mld_kenmerk_rolcode,1) = 1",
|
||||
"(mkm.mld_kenmerk_verplicht IS NULL OR mkm.mld_kenmerk_verplicht=0)",
|
||||
"msk.mld_srtkenmerk_kenmerktype = 'M'"]}
|
||||
);
|
||||
|
||||
@@ -1314,8 +1314,6 @@ for (var u = 0; u < uitvkeyArray.length; u++)
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype <> 'M'"
|
||||
+ " AND BITAND(k.mld_kenmerk_rolcode, 5) > 0" // afmeld-only kenmerken (010) uitsluiten, dus x0x
|
||||
//+ " AND (k.mld_kenmerk_volgnummer <= 100"
|
||||
//+ " OR k.mld_kenmerk_volgnummer >= 900)" // Alleen bij of na afmelden mogen afmeld-kenmerken tussen de 100..900
|
||||
+ " AND " + sql_kenmerkwaarde + " IS NOT NULL"
|
||||
+ " ORDER BY mld_kenmerk_volgnummer";
|
||||
Oracle.Execute(sql_kenmwaarden);
|
||||
|
||||
@@ -682,7 +682,7 @@ res = {
|
||||
+ " AND sk.res_srtkenmerk_kenmerktype = 'M'"
|
||||
+ " AND (k.res_artikel_key = " + p_key
|
||||
+ " OR k.res_discipline_key = " + disc_key + ")"
|
||||
+ " AND k.res_kenmerk_volgnummer <= 900";
|
||||
+ " AND BITAND(k.res_kenmerk_rolcode, 3) > 0";
|
||||
var oRs_k = Oracle.Execute(sql_k);
|
||||
while (!oRs_k.eof)
|
||||
{
|
||||
|
||||
@@ -35,6 +35,11 @@ user.auth_required_or_abort(this_res.canReadAny);
|
||||
|
||||
// Finds required res_kenmerken (regular or of type 'M'(bijlagen))
|
||||
// that are either missing or have no value for a specific reservation.
|
||||
|
||||
var mywriterolcode = 0 + (this_res.canWrite("WEB_RESUSE") ? 1 : 0)
|
||||
+ (this_res.canWrite("WEB_RESFOF") ? 2 : 0)
|
||||
+ (this_res.canWrite("WEB_RESBOF") ? 4 : 0);
|
||||
|
||||
var sql = "SELECT COUNT (*) amount"
|
||||
+ " FROM res_rsv_ruimte rrr"
|
||||
+ " JOIN res_activiteit ra"
|
||||
@@ -57,12 +62,7 @@ var sql = "SELECT COUNT (*) amount"
|
||||
+ " WHERE rrr.res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " AND rk.res_kenmerk_verplicht = 1"
|
||||
+ " AND rk.res_kenmerk_verwijder IS NULL"
|
||||
+ " AND (rk.res_kenmerk_volgnummer <= 800 "
|
||||
+ (this_res.canWrite("WEB_RESFOF") ?
|
||||
" OR (rk.res_kenmerk_volgnummer > 800 AND rk.res_kenmerk_volgnummer <= 900)" : "")
|
||||
+ (this_res.canWrite("WEB_RESBOF") ?
|
||||
" OR (rk.res_kenmerk_volgnummer >= 900)" : "")
|
||||
+ " )"
|
||||
+ " AND BITAND(rk.res_kenmerk_rolcode, " + mywriterolcode + ") > 0"
|
||||
+ " AND rk.res_kenmerk_show_expr IS NULL" // We gaan deze niet inline evalueren; als er een show-expressie bestaat, sluiten we deze uit
|
||||
+ " AND rk.fac_functie_key IS NULL" // Idem; We gaan deze niet inline evalueren; als er een extra autorisatie bestaat, sluiten we deze uit
|
||||
+ " AND (rk.res_kenmerk_toonbaar IS NULL OR rk.res_kenmerk_toonbaar = 0)" // Volgens mij altijd NULL of 1, maar voor de zekerheid ..
|
||||
@@ -474,7 +474,7 @@ var bulkFields = " distinct "
|
||||
+ " , ins_srtdeel isd"
|
||||
+ "{1}"
|
||||
+ " , ( SELECT sd.ins_srtdeel_key"
|
||||
+ " , COUNT (km.ins_kenmerk_volgnummer) km900"
|
||||
+ " , COUNT (km.ins_kenmerk_rolcode) km900" // kolomalias is historisch, maar zo gelaten
|
||||
+ " FROM ins_srtkenmerk sk"
|
||||
+ " , ins_kenmerk km"
|
||||
+ " , ins_srtdeel sd"
|
||||
@@ -489,7 +489,7 @@ var bulkFields = " distinct "
|
||||
+ " AND km.ins_kenmerk_niveau = 'G')"
|
||||
+ " OR (km.ins_srtinstallatie_key = gr.ins_discipline_key"
|
||||
+ " AND km.ins_kenmerk_niveau = 'D'))"
|
||||
+ " AND km.ins_kenmerk_volgnummer >= 900"
|
||||
+ " AND BITAND(km.ins_kenmerk_rolcode,4) = 4" // uitleenkenmerken
|
||||
+ " GROUP BY sd.ins_srtdeel_key) k"
|
||||
+ " WHERE rrd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
|
||||
+ " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
|
||||
@@ -462,7 +462,7 @@ function getSqlFlex(flexModule, flexId, flexParams)
|
||||
+ " WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key"
|
||||
+ " AND km.mld_kenmerk_key = k.mld_kenmerk_key"
|
||||
+ " AND sk.mld_srtkenmerk_verwijder IS NULL"
|
||||
+ (flexParams && (flexParams.readuse || flexParams.readman)? " AND k.mld_kenmerk_volgnummer < 800" : ""); // Dit kan nergens op slaan, wat dan wel TODO
|
||||
+ (flexParams && (flexParams.readuse || flexParams.readman)? " AND BITAND(k.mld_kenmerk_rolcode, 3) > 0" : ""); // Close enough. Strikt zou man&1 en use&2 zijn
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -514,23 +514,19 @@ function getSqlFlex(flexModule, flexId, flexParams)
|
||||
}
|
||||
case "PRS": {
|
||||
var where = [];
|
||||
if (flexId.toLowerCase()=="prs_perslid_key")
|
||||
{
|
||||
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE", true) || {PRSreadlevel: 9};
|
||||
var authparamsMAN = user.checkAutorisation("WEB_PRSMAN", true) || {PRSreadlevel: 10};
|
||||
// Als authparamsMAN en authparamsUSE verschillen zou het heel ingewikkeld worden.
|
||||
// Daarom tonen we dan voor de veiligheid geen MAN meer.
|
||||
/*
|
||||
if (authparamsMAN.PRSreadlevel > -1 && authparamsMAN.PRSreadlevel != authparamsUSE.PRSreadlevel)
|
||||
where.push("prs_kenmerk_volgnr >= 100");
|
||||
if (authparamsUSE.PRSreadlevel > -1) // Dit had toch MAN moeten zijn??!
|
||||
where.push("prs_kenmerk_volgnr <= 100");
|
||||
*/
|
||||
}
|
||||
|
||||
var myreadrolcode = 0 + (user.has("WEB_PRSMAN") ? 1 : 0)
|
||||
+ (user.has("WEB_PRSUSE") ? 2 : 0);
|
||||
if (authparamsMAN.PRSreadlevel > -1 && authparamsMAN.PRSreadlevel != authparamsUSE.PRSreadlevel)
|
||||
myreadrolcode = myreadrolcode - 1; // om recht te doen aan de eerdere werking: verschillende levels voor MAN en USE => geen PRSMAN
|
||||
|
||||
if (flexId.toLowerCase()=="prs_perslid_key")
|
||||
{
|
||||
var authparamsUSE = user.checkAutorisation("WEB_PRSUSE", true) || {PRSreadlevel: 9};
|
||||
var authparamsMAN = user.checkAutorisation("WEB_PRSMAN", true) || {PRSreadlevel: 10};
|
||||
// Als authparamsMAN en authparamsUSE verschillen zou het heel ingewikkeld worden.
|
||||
// Daarom tonen we dan voor de veiligheid geen MAN meer.
|
||||
if (authparamsMAN.PRSreadlevel > -1 && authparamsMAN.PRSreadlevel != authparamsUSE.PRSreadlevel)
|
||||
myreadrolcode = myreadrolcode - 1; // om recht te doen aan de eerdere werking: verschillende levels voor MAN en USE => geen PRSMAN
|
||||
}
|
||||
|
||||
sql_prs_kenmerkprs = "SELECT pk.prs_kenmerk_key"
|
||||
+ " , p." + flexId // prs_afdeling_key, prs_perslid_key
|
||||
|
||||
Reference in New Issue
Block a user