diff --git a/APPL/API2/model_reportsx.inc b/APPL/API2/model_reportsx.inc index 8205669b0a..7bb261064c 100644 --- a/APPL/API2/model_reportsx.inc +++ b/APPL/API2/model_reportsx.inc @@ -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: "" }; diff --git a/APPL/SCF/scaffolding_save.inc b/APPL/SCF/scaffolding_save.inc index 79590d5df8..801c9a2bb5 100644 --- a/APPL/SCF/scaffolding_save.inc +++ b/APPL/SCF/scaffolding_save.inc @@ -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;