105 lines
3.1 KiB
Plaintext
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;
|
|
%> |