UWVA#40709 UDR clonen weer werkend als je geen FACFAC rechten hebt

svn path=/Website/branches/v2017.1/; revision=34079
This commit is contained in:
Jos Groot Lipman
2017-05-31 10:08:34 +00:00
parent 2a910684bf
commit fa9f564407
2 changed files with 9 additions and 7 deletions

View File

@@ -144,12 +144,12 @@ function model_reportsx(usrrap_key, rapparams)
};
var hasFACFAC = user.has("WEB_FACFAC"); // Die mag ook tabellen doen
this.is_safe_view = function(viewname)
this.is_safe_view = function(viewname, params)
{
if (hasFACFAC)
return true; // die mag alles
if (rapparams.internal)
if (params.cloning)
return true; // cloning
if (viewname)
@@ -192,7 +192,7 @@ function model_reportsx(usrrap_key, rapparams)
{
// viewname zit alleen in dbfields als het een insert is. In edit-mode is dit veld readonly, dus niet in dbfields.
if ("viewname" in dbfields)
user.auth_required_or_abort(this.is_safe_view(jsondata.viewname));
user.auth_required_or_abort(this.is_safe_view(jsondata.viewname, params));
};
this.hook_pre_edit = function (obj)
@@ -221,7 +221,7 @@ function model_reportsx(usrrap_key, rapparams)
+ " FROM fac_v_webgebruiker W"
+ " WHERE w.prs_perslid_key = " + user_key + ")");
if (user.has("WEB_UDRMAN")) // Met UDRMAN hoef je er geen rechten op te hebben
{ // Uitzondeing: FACFAC en FACTAB, daar moet je altijd rechten op hebben
{ // Uitzondering: FACFAC en FACTAB, daar moet je altijd rechten op hebben
whereor.push("fac_functie_key NOT IN"
+ " (SELECT fac_functie_key"
+ " FROM fac_functie"
@@ -249,7 +249,7 @@ function model_reportsx(usrrap_key, rapparams)
this.includes["columns"].model._view2columns(params.filter.id, rap_data.lastrefresh, rap_data.columns);
var json = api2.sql2json (params, sql, this ); // En nu opnieuw ophalen
}
if ("viewname" in rap_data && !this.is_safe_view(rap_data.viewname))
if (!params.internal && "viewname" in rap_data && !this.is_safe_view(rap_data.viewname, {}))
this.fields["viewname"].readonly = true;
if (!params.cloning && rap_data.styling && rap_data.styling.id & 32) // UDR Template
@@ -314,7 +314,8 @@ function model_reportsx(usrrap_key, rapparams)
var err = Oracle.Execute(rapIns.sql, true);
if (err.friendlyMsg)
abort_with_warning(err.friendlyMsg);
if (params.cloning)
this.includes.columns.model.REST_POST = this.includes.columns.model._REST_POST; // Voor de clone van de kolommen
var beztrack = api2.process_includes(params, this, jsondata, rap_key);
return { key: rap_key, warning: "" };

View File

@@ -53,7 +53,7 @@ function scaffolding_save(model, scf_params)
if (include.enable_update)
incs.push(inc)
}
var olddata = api2.GET(model, clone_key, { include: incs } );
var olddata = api2.GET(model, clone_key, { include: incs, internal: true } );
for (var fld in model.fields)
{
var field = model.fields[fld];
@@ -130,6 +130,7 @@ function scaffolding_save(model, scf_params)
}
else
{
params.cloning = cloning;
var restresult = model.REST_POST(params, jsondata);
key = restresult.key;