KFSG#41700 -- Scim koppeling realiseren (lege elementen verwdijderen)

svn path=/Website/branches/v2017.2/; revision=35774
This commit is contained in:
Arthur Egberink
2017-10-20 11:58:18 +00:00
parent 0857e92ec0
commit 0964c96f8e
2 changed files with 48 additions and 54 deletions

View File

@@ -154,16 +154,11 @@ function transform_one_department(params, department)
var unique = FCLT.DEZE.customerId + "_department_" + String(department.id);
var costc = "";
if (department.costcentre)
{
costc = department.costcentre.name;
}
var onedepartment = {
"code":department.description,
"externalid":department.externalid,
"id":unique,
"costCenter":costc,
"schemas":[
"urn:ietf:params:scim:schemas:extension:2.0:OrgUnit",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnit"
@@ -176,6 +171,11 @@ function transform_one_department(params, department)
}
}
if (department.costcentre)
{
onedepartment.costCenter = department.costcentre.name;
}
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
var eTag = '"' + oCrypto.hex_sha1(FCLT.DEZE.JSON.stringify(onedepartment)).toLowerCase() + '"';
onedepartment.meta["version"] = "W/" + eTag; // Weak eTag?

View File

@@ -132,6 +132,9 @@ function transform_incoming(params, data)
deactivated : data["active"]?null:new Date(),
employeenumber : get_element(enterprise["employeeNumber"])
};
person["function"] = { name: "Onbekend" }; // geen onderdeel van de interface
var dep_id = "";
if (facilitor["orgUnit"] && facilitor["orgUnit"]["value"] )
@@ -141,16 +144,14 @@ function transform_incoming(params, data)
person["department"] = { id: dep_id };
person["function"] = { name: get_element(facilitor["title"]) } // id mag achterwege blijven omdat desc_is_unique
if (data["emails"])
if (data["emails"] && data["emails"][0])
{
person.email = get_element(data["emails"][0].value); // type:work/primary:true opzoeken ?
person.email = get_element(data["emails"][0].value); // type:work/primary:true opzoeken ?
}
person.mobile = "";
person.phone = "";
if (data["phoneNumbers"])
if (data.phoneNumbers)
{
for (var j = 0; j < data["phoneNumbers"].length; j++)
{ if (data["phoneNumbers"][j]["type"] == 'mobile')
@@ -164,39 +165,19 @@ function transform_incoming(params, data)
}
}
person["function"] = { name: get_element(facilitor["title"]) } // id mag achterwege blijven omdat desc_is_unique
if (person["function"]["name"])
{
// Als de functie (srt_perslid) nog niet bestaat gaan we deze aanmaken.
var sql = "SELECT prs_srtperslid_key FROM prs_srtperslid "
+ "WHERE prs_srtperslid_verwijder IS NULL "
+ " AND prs_srtperslid_upper = " + FCLT.DEZE.safe.quoted_sql(person["function"]["name"].toUpperCase());
var oRs = FCLT.DEZE.Oracle.Execute(sql);
if (oRs.eof)
{
sql = "INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving) "
+ "VALUES (" + FCLT.DEZE.safe.quoted_sql(person["function"]["name"]) + ")";
FCLT.DEZE.Oracle.Execute(sql);
}
}
return { person: person };
}
function transform_one_person(params, person)
{
var unique = FCLT.DEZE.customerId + "_person_" + String(person.id);
var oneuser = {
"userName":person.externallogin || person.login,
"externalId":person.externalid,
"id":unique,
"name":{
"formatted":person.name,
"familyName":person.lastname,
"givenName":person.firstname,
"middleName":person.middlename
"familyName":person.lastname
},
"schemas":[
"urn:ietf:params:scim:schemas:core:2.0:User",
@@ -210,25 +191,6 @@ function transform_one_person(params, person)
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
"resourceType":"User"
},
"emails":[
{
"value":person.email,
"type":"work",
"primary":true
}
],
"phoneNumbers":[
{
"value":person.mobile,
"type":"mobile",
"primary":true
},
{
"value":person.phone,
"type":"work",
"primary":false
}
],
"groups":[],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" :
{
@@ -241,10 +203,42 @@ function transform_one_person(params, person)
"value":FCLT.DEZE.customerId + "_department_" + String(person.department.id),
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
},
"initials":person.initials,
"title":person["function"].name
"initials":person.initials
}
}
if (person.middlename) oneuser.name.middleName = person.middlename;
if (person.firstname) oneuser.name.givenName = person.firstname;
if (person.externalid) oneuser.externalId =person.externalid;
if (person.email)
{
oneuser.emails = [
{
"value":person.email,
"type":"work",
"primary":true
}];
}
var phoneNumbers = [];
if (person.mobile)
phoneNumbers.push(
{
"value":person.mobile,
"type":"mobile",
"primary":true
});
if (person.phone)
phoneNumbers.push(
{
"value":person.phone,
"type":"work",
"primary":false
});
oneuser.phoneNumbers = phoneNumbers;
var allgroups = [];
for (var j = 0; j < person.authorization.length; j++)
{