FSN#51222: Anonimiseren van historische bezoekers.
svn path=/Website/branches/v2017.3/; revision=37902
This commit is contained in:
@@ -92,11 +92,44 @@ function model_bez_kenmerk(params)
|
||||
"dbs": "bez_kenmerk_systeem",
|
||||
"label": L("mgt_srtkenmerk_systeem_adv"),
|
||||
"typ": "number",
|
||||
"LOV": L("mgt_kenmerk_systeemLOV"),
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 15,
|
||||
"radios": [
|
||||
{
|
||||
"name": "ksystem",
|
||||
"label": L("mgt_kenmerk_systeem"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "overview",
|
||||
"label": L("mgt_kenmerk_systeem_overview"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "conf",
|
||||
"label": L("mgt_kenmerk_systeem_conf"),
|
||||
"mask": 4,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "ano",
|
||||
"label": L("mgt_kenmerk_systeem_ano"),
|
||||
"mask": 8,
|
||||
"defaultvalue": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"defaultvalue": 0,
|
||||
"required": true
|
||||
},
|
||||
"length": {
|
||||
"length": {
|
||||
"dbs": "bez_kenmerk_lengte",
|
||||
"label": L("mgt_srtkenmerk_lengte"),
|
||||
"typ": "number"
|
||||
|
||||
@@ -97,7 +97,41 @@ function model_prs_kenmerk(niveau, params)
|
||||
"system": {
|
||||
"dbs": "prs_kenmerk_systeem",
|
||||
"label": L("mgt_srtkenmerk_systeem"),
|
||||
"typ": "check"
|
||||
"typ": "number",
|
||||
"bits": [
|
||||
{
|
||||
"name": "",
|
||||
"label": "",
|
||||
"typ": "check",
|
||||
"mask": 15,
|
||||
"radios": [
|
||||
{
|
||||
"name": "ksystem",
|
||||
"label": L("mgt_kenmerk_systeem"),
|
||||
"mask": 1,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "overview",
|
||||
"label": L("mgt_kenmerk_systeem_overview"),
|
||||
"mask": 2,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "conf",
|
||||
"label": L("mgt_kenmerk_systeem_conf"),
|
||||
"mask": 4,
|
||||
"defaultvalue": 1
|
||||
},
|
||||
{
|
||||
"name": "ano",
|
||||
"label": L("mgt_kenmerk_systeem_ano"),
|
||||
"mask": 8,
|
||||
"defaultvalue": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"length": {
|
||||
"dbs": "prs_kenmerk_lengte",
|
||||
|
||||
40
APPL/FAC/fac_anonymize.asp
Normal file
40
APPL/FAC/fac_anonymize.asp
Normal file
@@ -0,0 +1,40 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_anonymize.asp
|
||||
Description: Het anonimiseren van modules.
|
||||
Parameters: moduleString
|
||||
Note:
|
||||
*/ %>
|
||||
|
||||
<%
|
||||
var JSON_Result = true;
|
||||
%>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
|
||||
<%
|
||||
protectRequest.validateToken();
|
||||
|
||||
var moduleString = getFParamArray("moduleString").join(",");
|
||||
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
// Eerst PRS anonimiseren. De andere modules hebben allemaal referenties naar PRS.
|
||||
// Bijvoorbeeld het veld bez_afspraak_gastheer die door trigger automatisch weer wordt gevuld met tekstnaam van host.
|
||||
var anosql = "BEGIN"
|
||||
if (moduleString.indexOf("PRS") != -1)
|
||||
anosql += " ano.anonymizeprs('FAC_ANONYMIZE');";
|
||||
if (moduleString.indexOf("BEZ") != -1)
|
||||
anosql += " ano.anonymizebez('FAC_ANONYMIZE');";
|
||||
anosql += " END;";
|
||||
|
||||
Oracle.Execute(anosql);
|
||||
|
||||
var result = { key: moduleString, success: true };
|
||||
Response.Write(JSON.stringify(result));
|
||||
%>
|
||||
138
APPL/FAC/fac_anonymize_list.asp
Normal file
138
APPL/FAC/fac_anonymize_list.asp
Normal file
@@ -0,0 +1,138 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_anonimize_list.asp
|
||||
Description: Toont van elke module het aantal te anonimeren records.
|
||||
Parameters: module: filtert het resultaat (BEZ, PRS etc)
|
||||
Context:
|
||||
Requires: WEB_PRSSYS autorisatie
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<!-- #include file="fac.inc" -->
|
||||
|
||||
<%
|
||||
var smodule = getQParamArray("smodule");
|
||||
var allmod = false;
|
||||
if (smodule[0] == "-1")
|
||||
allmod = true;
|
||||
var showall = getQParamInt("showall", 0) == 1;
|
||||
var outputmode = getQParamInt("outputmode", 0);
|
||||
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"] })
|
||||
%>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate({outputmode: outputmode}) %>
|
||||
</head>
|
||||
|
||||
<body id="listbody">
|
||||
|
||||
<script type="text/javascript">
|
||||
function mld_anonymize(rowArray, isMulti)
|
||||
{
|
||||
var pmoduleString = getKeyString(rowArray);
|
||||
|
||||
var data = { moduleString: pmoduleString };
|
||||
protectRequest.dataToken(data);
|
||||
$.post("../fac/fac_anonymize.asp",
|
||||
data,
|
||||
FcltCallbackRefresh,
|
||||
"json");
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
var anonymize_period = S("anonymize_period");
|
||||
var sql;
|
||||
var sqln = [];
|
||||
|
||||
if (allmod || inArray("BEZ", smodule))
|
||||
{
|
||||
sql = "SELECT 'BEZ' module"
|
||||
+ " , 'afspraak' onderdeel"
|
||||
+ " , COUNT(bez_afspraak_key) aantal"
|
||||
+ " , MIN(bez_afspraak_datum) mindate"
|
||||
+ " , MAX(bez_afspraak_datum) maxdate"
|
||||
+ " , " + anonymize_period + " anonymize_period"
|
||||
+ " FROM bez_afspraak"
|
||||
+ " WHERE bez_afspraak_datum < TRUNC(SYSDATE - " + anonymize_period + ")";
|
||||
sqln.push(sql);
|
||||
}
|
||||
|
||||
if (allmod || inArray("PRS", smodule))
|
||||
{
|
||||
sql = "SELECT 'PRS' module"
|
||||
+ " , 'perslid' onderdeel"
|
||||
+ " , COUNT(p.prs_perslid_key) aantal"
|
||||
+ " , MIN(COALESCE(p.prs_perslid_login, p.prs_perslid_aanmaak)) mindate"
|
||||
+ " , MAX(COALESCE(p.prs_perslid_login, p.prs_perslid_aanmaak)) maxdate"
|
||||
+ " , " + anonymize_period + " anonymize_period"
|
||||
+ " FROM prs_perslid p"
|
||||
+ " WHERE (p.prs_perslid_oslogin IS NULL"
|
||||
+ " OR p.prs_perslid_oslogin NOT LIKE '\\_%' ESCAPE '\\')"
|
||||
+ " AND p.prs_perslid_oslogin2 IS NULL"
|
||||
+ " AND p.prs_perslid_apikey IS NULL"
|
||||
+ " AND (COALESCE(p.prs_perslid_login, p.prs_perslid_aanmaak) + " + anonymize_period + ") < SYSDATE"
|
||||
+ " AND p.prs_perslid_upper != UPPER('" + L("lcl_prs_old_employee") + "')"
|
||||
+ " AND NOT EXISTS (SELECT 1"
|
||||
+ " FROM prs_v_verplichting_keys"
|
||||
+ " WHERE prs_perslid_key = p.prs_perslid_key)"
|
||||
sqln.push(sql);
|
||||
}
|
||||
|
||||
sql = "SELECT module"
|
||||
+ " , onderdeel"
|
||||
+ " , aantal"
|
||||
+ " , mindate"
|
||||
+ " , maxdate"
|
||||
+ " , anonymize_period"
|
||||
+ " , (SELECT COUNT(ft.fac_tracking_key)"
|
||||
+ " FROM fac_tracking ft"
|
||||
+ " WHERE TRUNC(ft.fac_tracking_datum, 'DDD') = TRUNC(SYSDATE, 'DDD')"
|
||||
+ " AND ft.fac_srtnotificatie_key = (SELECT fac_srtnotificatie_key"
|
||||
+ " FROM fac_srtnotificatie"
|
||||
+ " WHERE fac_srtnotificatie_code = (module || 'ANO'))) anonimized_today"
|
||||
+ " FROM (" + sqln.join(" UNION ") + ")";
|
||||
|
||||
function fncolaantal(oRs)
|
||||
{
|
||||
return oRs("aantal").Value != null? oRs("aantal").Value : 0;
|
||||
}
|
||||
|
||||
function fncolanoPeriod(oRs)
|
||||
{
|
||||
return oRs("anonymize_period").Value + " " + L("lcl_fac_days");
|
||||
}
|
||||
|
||||
var rst = new ResultsetTable({ sql: sql,
|
||||
keyColumn: "module",
|
||||
ID: "memorizetable",
|
||||
title : "Anonimiseren",
|
||||
showAll: showall,
|
||||
outputmode: outputmode
|
||||
});
|
||||
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_module"), content: "module"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_component"), content: "onderdeel"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_aantal"), content: fncolaantal, datatype: "number"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_ano_time_period"), content: "mindate", datatype: "date"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_ano_time_period"), content: "maxdate", datatype: "date"}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_anonymize_period"), content: fncolanoPeriod}));
|
||||
rst.addColumn(new Column({caption: L("lcl_fac_anonymized_today"), content: "anonimized_today"}));
|
||||
|
||||
rst.addAction({action: "mld_anonymize", caption: L("mgt_kenmerk_systeem_ano"), /*enabler:"eAnony",*/ multi: true, multiOnce: true});
|
||||
|
||||
var cnt = rst.processResultset();
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
84
APPL/FAC/fac_anonymize_search.asp
Normal file
84
APPL/FAC/fac_anonymize_search.asp
Normal file
@@ -0,0 +1,84 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision$
|
||||
$Id$
|
||||
|
||||
File: fac_anonimize.asp
|
||||
Description: Anonimiseringscherm
|
||||
Parameters:
|
||||
Context: Via URL (alleen prssys)
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/common.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/selector.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins:["jQuery"], js: []});
|
||||
|
||||
var autfunction = "WEB_PRSSYS";
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
var module = getQParam("module", "");
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<%
|
||||
FCLTHeader.Generate() %>
|
||||
|
||||
<script type="text/javascript">
|
||||
var anysearch = false;
|
||||
function doSubmit()
|
||||
{
|
||||
document.forms.u2.submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body id="searchbody">
|
||||
|
||||
<div id="search">
|
||||
<form name="u2" method="get" action="fac_anonymize_list.asp" target="workFrame">
|
||||
<%
|
||||
BLOCK_START("searchtable", L("lcl_filterblok"));
|
||||
%>
|
||||
<tr>
|
||||
<td class="searchkolom1">
|
||||
<table><!-- x rijen, 2 kolommen: label + veld -->
|
||||
<!-- module -->
|
||||
<%
|
||||
sql = "SELECT DISTINCT fac_setting_module fac_module"
|
||||
+ " , fac_setting_module fac_module"
|
||||
+ " FROM fac_setting "
|
||||
+ " WHERE fac_setting_module IN ('BEZ', 'PRS')" // Vooralsnog alleen voor bezoekers en
|
||||
+ (module != ""
|
||||
? " AND fac_setting_module = " + safe.quoted_sql(module)
|
||||
: "")
|
||||
+ " ORDER BY fac_setting_module";
|
||||
FCLTselector("smodule",
|
||||
sql,
|
||||
{ label: L("lcl_fac_module"),
|
||||
trclass: "primsearch",
|
||||
emptyOption: module == ""? L("lcl_all") : null,
|
||||
multi: true
|
||||
|
||||
});
|
||||
%>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
var buttons = [ {title: L("lcl_search"), action: "doSubmit()" } ];
|
||||
CreateButtons(buttons, { entersubmit: true});
|
||||
%>
|
||||
</form>
|
||||
</div> <!-- search -->
|
||||
|
||||
<div id="result">
|
||||
<iframe width="100%" height="100%" src="../Shared/empty.asp"
|
||||
name="workFrame" id="workFrame" onload='FcltMgr.iframeLoaded(this)'
|
||||
frameborder="0" scrolling="no"></iframe>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user