Files
Facilitor/APPL/CAD/lbl_search.asp
Jos Groot Lipman 92e0fa1b3c FSN#37620 FALSE-positive SQL-injection en XSS duidelijker maken
svn path=/Website/trunk/; revision=30557
2016-09-05 15:05:58 +00:00

148 lines
5.3 KiB
Plaintext

<%@ language="javascript"%>
<% /*
$Revision$
$Id$
File: CAD/lbl_search.asp
Description: Zoek ruimte via code ingevoerd voor huidige label thema
Parameters: lblCode: de door de gebruiker ingevoerde zoekcode
loc_key: standaard zoeken we *met* loc_key omdat dat sneller is
label: key in CAD_LABEL, thema dat aan staat
Context: Modal vanuit zoekknopje op hoofdscherm
Result: Als de gebruiker op een regel klikt wordt via closeModal
allerlei keys van object opgeleverd
Note: Alleen de binnensituatie wordt (vooralsnog) ondersteund
VOORALSNOG GEEN AUTORISATIE?
*/ %>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../shared/iface.inc" -->
<!-- #include file="../Shared/resultset_table_v2.inc" -->
<!-- #include file="fgii.inc" -->
<!-- #include file="../Shared/json2.js" -->
<%
var oRs;
var sql = "";
var i = 0;
var lblCode = getQParam("lblCode");
var loc_key = getQParamInt( "loc_key", -1);
var pLabel_key = getQParamInt("label");
%>
<html>
<head>
<% FCLTHeader.Generate(); %>
<script type="text/javascript">
function lblView(row)
{
var lblData = eval('(' + row.getAttribute("ROWDATA") + ')');
lblData.success = true;
FcltMgr.closeDetail(window, lblData );
}
</script>
</head>
<body class="modal" id="mod_lbl_search" style="width:500px" >
<% // Zoek de omschrijving van de locatie er bij of 'alle'
if (loc_key != -1)
{
var sql = "SELECT alg_locatie_code, "
+ " alg_locatie_omschrijving "
+ " FROM alg_locatie "
+ " WHERE alg_locatie_key = " + loc_key;
var oRs = Oracle.Execute(sql);
descr = oRs("alg_locatie_code").value + "-" + oRs("alg_locatie_omschrijving").value;
}
else
descr = L("lcl_all");
%>
<table width="100%">
<tr>
<td class="label"><label><%=L("lcl_location")%></label>:&nbsp;</td><td><%=safe.html(descr)%></td>
<% if (loc_key != -1)
{ %>
<td align="right" valign="center">
<form>
<input type=hidden name=lblCode value=<%=safe.htmlattr(lblCode)%>>
<input type=hidden name=Label value=<%=pLabel_key%>>
<input type=submit value='<%=L("lcl_all")%>'>
</form>
</td>
<% } %>
</tr>
</table>
<%
sql = "SELECT cad_label_view, cad_label_size "
+ " FROM cad_label WHERE cad_label_key = " + pLabel_key
oRs = Oracle.Execute(sql)
viewName = oRs("cad_label_view").value;
sql = "SELECT "
+ " alg_locatie_code, alg_gebouw_code, alg_verdieping_code, ar.alg_ruimte_nr, ar.alg_ruimte_omschrijving"
+ ", al.alg_locatie_key"
+ ", al.alg_locatie_omschrijving"
+ ", ag.alg_gebouw_key"
+ ", ag.alg_gebouw_omschrijving"
+ ", av.alg_verdieping_key"
+ ", av.alg_verdieping_key"
+ ", av.alg_verdieping_omschrijving"
+ ", ar.alg_ruimte_key"
+ ", al.alg_district_key"
+ ", th.waarde"
+ " FROM " + viewName + " th, alg_ruimte ar,"
+ " alg_locatie al,alg_gebouw ag, alg_verdieping av"
+ " WHERE th.alg_ruimte_key = ar.alg_ruimte_key"
+ " AND th.waarde IS NOT NULL" // prevent null labels safety
+ " AND al.alg_locatie_key = ag.alg_locatie_key"
+ " AND ag.alg_gebouw_key = av.alg_gebouw_key"
+ " AND av.alg_verdieping_key = ar.alg_verdieping_key"
+ " AND UPPER(th.waarde) LIKE " + safe.quoted_sql_wild(lblCode + "%");
if (loc_key != -1) sql = sql + " AND al.alg_locatie_key = " + loc_key;
sql = sql + " ORDER BY waarde";
function fnrowData(oRs)
{
var data = {loc_key: oRs("alg_locatie_key").value,
loc_oms: oRs("alg_locatie_omschrijving").value,
bld_key: oRs("alg_gebouw_key").value,
bld_oms: oRs("alg_gebouw_omschrijving").value,
flr_key: oRs("alg_verdieping_key").value,
flr_oms: oRs("alg_verdieping_omschrijving").value,
rui_key: oRs("alg_ruimte_key").value
};
return JSON.stringify(data);
}
function fncolPos(oRs)
{
return safe.html(oRs("alg_locatie_code") + "-" +
oRs("alg_gebouw_code") + "-" +
oRs("alg_verdieping_code") + "-" +
oRs("alg_ruimte_nr"));
}
var rst = new ResultsetTable({keyColumn: "alg_ruimte_key",
ID: "lbllist",
sql: sql,
rowData: fnrowData,
noPrint: true
});
rst.addColumn(new Column({caption: L("lcl_obj_identification"), content: "WAARDE"}));
rst.addColumn(new Column({caption: L("lcl_obj_position"), content: fncolPos}));
rst.addColumn(new Column({caption: L("lcl_descr"), content: "alg_ruimte_omschrijving"}));
rst.addAction({ action: "lblView", isDefault: true});
var cnt = rst.processResultset();
%>
</body>
</html>