KFSG#47267 Personen via SCIM/REST API kunnen reanimeren

svn path=/Website/branches/v2017.2/; revision=35753
This commit is contained in:
Jos Groot Lipman
2017-10-19 11:00:33 +00:00
parent cbf5472d99
commit d2c6e1d539

View File

@@ -320,9 +320,39 @@ function model_prs_perslid(params)
};
// We willen vooral dat je via Admin/Autorisatie personen niet met API kunt bewerken
if (params.internal) // bijvoorbeeld idp die personen kan aanmaken
// if (params.internal) // bijvoorbeeld idp die personen kan aanmaken
{
this.REST_POST = generic_REST_POST(this);
this.REST_POST = function (params, jsondata, parent_key)
{
if (jsondata.externalid)
{ // Als hij al verwijderd bestond reanimeren we
// Onze eigen REST_GET geeft nooit verwijderde records, daarom via SQL
var sql = "SELECT prs_perslid_key, "
+ " prs_perslid_verwijder"
+ " FROM prs_perslid"
+ " WHERE prs_perslid_externid = " + safe.quoted_sql(jsondata.externalid)
+ " AND prs_perslid_verwijder IS NOT NULL";
var oRs = Oracle.Execute(sql);
if (!oRs.Eof)
{
var the_key = oRs("prs_perslid_key").Value;
var verwijder = new Date(oRs("prs_perslid_verwijder").Value);
oRs.Close();
var sql = "UPDATE prs_perslid"
+ " SET prs_perslid_verwijder = NULL"
+ " WHERE prs_perslid_key = " + the_key;
Oracle.Execute(sql);
shared.trackaction("PRSLOG", the_key, "User was deleted on {0}, now reanimated.".format(toDateTimeString(verwijder, true)));
return generic_REST_PUT(this)(params, jsondata, the_key); // bijwerken
}
oRs.Close();
// doorvallen naar gewone POST
}
// Else gewoon een nieuwe
return generic_REST_POST(this)(params, jsondata, parent_key)
}
this.REST_PUT = generic_REST_PUT(this);
this.REST_DELETE = generic_REST_DELETE(this);
}