Files
Facilitor/APPL/MGT/fac_edit_groeprechten_save.asp
2016-03-30 12:52:53 +00:00

105 lines
3.1 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: fac_edit_groeprechten_save.asp.asp
Description: Het echte bewaren van een autorisatie
Parameters: fac_groep
fac_functie
ins_discipline optioneel
simplemode optioneel, 1 voor alleen 'Toegang' vinkje
Context: Vanuit fac_edit_groeprechten.asp
*/
var JSON_Result = true;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../Shared/json2.js" -->
<!-- #include file="../Shared/save2db.inc" -->
<%
protectRequest.validateToken();
user.checkAutorisation("WEB_PRSSYS"); // TODO Minder scherp
var groep_key = getQParamInt("fac_groep");
var functie_key = getQParamInt("fac_functie");
var disc_key = getQParamInt("ins_discipline", -1);
var gr_key = getQParamInt("gr_key", -1);
var simple_mode = getFParamInt("simple_mode", 0) == 1;
if (simple_mode)
{
var prsread = getFParamInt("allread");
var prswrite = getFParamInt("allwrite", prsread);
var algread = prsread;
var algwrite = prswrite;
}
else
{
var prsread = getFParamInt("prsread", -2);
var prswrite = getFParamInt("prswrite", -2);
var algread = getFParamInt("algread", -2);
var algwrite = getFParamInt("algwrite", -2);
}
var level = Oracle.Get("fac_functie_min_level", "fac_functie", functie_key);
if (!(level & 2)) // geen aparte schrijfrechten
{
prswrite = -1;
algwrite = -1;
}
if (level & ( 4 | 8))
{
if (!(level & 4)) // geen PRS scope
{
prsread = -1;
prswrite = algwrite < 9?-1:9; // waarschijnlijk don't care
}
if (!(level & 8)) // geen ALG scope
{
algread = -1;
algwrite = prswrite < 9?-1:9; // waarschijnlijk don't care
}
}
else // Bij alleen Ja/Nee vullen we PRS in
{
algread = prsread;
algwrite = prswrite;
}
if (algread == 9 || prsread == 9) // Geen rechten (over)
{
if (gr_key > 0)
{
var sql = "DELETE FROM fac_groeprechten WHERE fac_groeprechten_key = " + gr_key;
Oracle.Execute(sql);
}
}
else
{
var fields = [ { dbs: "fac_gebruiker_prs_level_read", typ: "number", val: prsread },
{ dbs: "fac_gebruiker_prs_level_write", typ: "number", val: prswrite },
{ dbs: "fac_gebruiker_alg_level_read", typ: "number", val: algread },
{ dbs: "fac_gebruiker_alg_level_write", typ: "number", val: algwrite }
]
if (gr_key > -1)
{
var sql = buildUpdate("fac_groeprechten", fields)
+ " fac_groeprechten_key = " + gr_key;
Oracle.Execute(sql);
}
else
{
fields.push({ dbs: "fac_functie_key", typ: "key", val: functie_key },
{ dbs: "fac_groep_key", typ: "key", val: groep_key },
{ dbs: "ins_discipline_key", typ: "key", val: disc_key }
);
var grpIns = buildInsert("fac_groeprechten", fields);
Oracle.Execute(grpIns.sql);
}
}
var result = {success: true };
Response.Write(JSON.stringify(result));
Response.End;
%>