KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35712
This commit is contained in:
@@ -62,6 +62,13 @@ function transform_filter(filter)
|
|||||||
filter.limit = filter.count;
|
filter.limit = filter.count;
|
||||||
if ("startIndex" in filter)
|
if ("startIndex" in filter)
|
||||||
filter.offset = filter.startIndex - 1;
|
filter.offset = filter.startIndex - 1;
|
||||||
|
if ("filter" in filter)
|
||||||
|
{
|
||||||
|
// Ontvangen filter: "filter": "id eq \"KFSG_authorizationgroup_703\""
|
||||||
|
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_authorizationgroup_", "");
|
||||||
|
v_filter = v_filter.replace("\"", "");
|
||||||
|
filter.id = v_filter;
|
||||||
|
}
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +109,7 @@ function transform_one_group(params, authorizationgroup)
|
|||||||
"members":[],
|
"members":[],
|
||||||
"meta":{
|
"meta":{
|
||||||
"created":authorizationgroup.created,
|
"created":authorizationgroup.created,
|
||||||
"lastModified":authorizationgroup.lastchange,
|
"lastModified":authorizationgroup.lastchange?authorizationgroup.lastchange:authorizationgroup.created,
|
||||||
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Groups/" + unique,
|
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Groups/" + unique,
|
||||||
"resourceType":"Group"
|
"resourceType":"Group"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,8 +62,17 @@ function transform_filter(filter)
|
|||||||
{
|
{
|
||||||
if ("count" in filter)
|
if ("count" in filter)
|
||||||
filter.limit = filter.count;
|
filter.limit = filter.count;
|
||||||
if ("startIndex" in filter)
|
if ("startIndex" in filter) {
|
||||||
filter.offset = filter.startIndex - 1;
|
filter.offset = filter.startIndex - 1;
|
||||||
|
filter.showall = 1;
|
||||||
|
}
|
||||||
|
if ("filter" in filter)
|
||||||
|
{
|
||||||
|
// Ontvangen filter: "filter": "id eq \"KFSG_department_703\""
|
||||||
|
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_department_", "");
|
||||||
|
v_filter = v_filter.replace("\"", "");
|
||||||
|
filter.id = v_filter;
|
||||||
|
}
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,7 +136,7 @@ function transform_one_department(params, department)
|
|||||||
],
|
],
|
||||||
"meta":{
|
"meta":{
|
||||||
"created":department.created,
|
"created":department.created,
|
||||||
"lastModified":department.lastchange,
|
"lastModified":department.lastchange?department.lastchange:department.created,
|
||||||
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + unique,
|
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + unique,
|
||||||
"resourceType":"OrgUnit"
|
"resourceType":"OrgUnit"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,13 @@ function transform_filter(filter)
|
|||||||
filter.limit = filter.count;
|
filter.limit = filter.count;
|
||||||
if ("startIndex" in filter)
|
if ("startIndex" in filter)
|
||||||
filter.offset = filter.startIndex - 1;
|
filter.offset = filter.startIndex - 1;
|
||||||
|
if ("filter" in filter)
|
||||||
|
{
|
||||||
|
// Ontvangen filter: "filter": "id eq \"KFSG_person_703\""
|
||||||
|
var v_filter = filter.filter.replace ("id eq \"" + FCLT.DEZE.customerId + "_person_", "");
|
||||||
|
v_filter = v_filter.replace("\"", "");
|
||||||
|
filter.id = v_filter;
|
||||||
|
}
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,35 +78,35 @@ function get_eTag(params, data)
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We krijgen bijvoorbeeld: {"RMS":[1,-10,-11,-12,-13,-14,-15,-16,-17,2,3,-4,-5,-6,-7,-8,-9]}
|
function get_element(data)
|
||||||
// Als het object aan staat wordt de id opgeleverd, anders -id
|
{
|
||||||
|
if (data == undefined) data = "";
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
function transform_incoming(params, data)
|
function transform_incoming(params, data)
|
||||||
{
|
{
|
||||||
FCLT.DEZE.__Log(data);
|
|
||||||
var enterprise = data["urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"];
|
var enterprise = data["urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"];
|
||||||
var facilitor = data["urn:ietf:params:scim:schemas:extension:facilitor:2.0:User"];
|
var facilitor = data["urn:ietf:params:scim:schemas:extension:facilitor:2.0:User"];
|
||||||
|
|
||||||
var person =
|
var person =
|
||||||
{
|
{
|
||||||
login : data["userName"],
|
login : get_element(data["userName"]),
|
||||||
externallogin: data["userName"],
|
externallogin: get_element(data["userName"]),
|
||||||
externalid : data["externalId"],
|
externalid : get_element(data["externalId"]),
|
||||||
initials : facilitor["initials"],
|
initials : get_element(facilitor["initials"]),
|
||||||
lastname : data["name"]["familyName"],
|
lastname : get_element(data["name"]["familyName"]),
|
||||||
middlename : data["name"]["middleName"],
|
middlename : get_element(data["name"]["middleName"]),
|
||||||
firstname : data["name"]["givenName"],
|
firstname : get_element(data["name"]["givenName"]),
|
||||||
deactivated : data["active"]?null:new Date(),
|
deactivated : data["active"]?null:new Date(),
|
||||||
employeenumber : enterprise["employeeNumber"]
|
employeenumber : get_element(enterprise["employeeNumber"])
|
||||||
};
|
};
|
||||||
|
|
||||||
if (data["userName"] == undefined) person.login = "";
|
var dep_id = "";
|
||||||
if (facilitor["initials"] == undefined) person.initials = "";
|
if (facilitor["orgUnit"] && facilitor["orgUnit"]["value"] )
|
||||||
if (data["name"]["middleName"] == undefined) person.middlename = "";
|
dep_id = facilitor["orgUnit"]["value"].replace (FCLT.DEZE.customerId + "_department_", "");
|
||||||
if (data["name"]["givenName"] == undefined) person.firstname = "";
|
else
|
||||||
if (enterprise["employeeNumber"] == undefined) person.employeenumber = "";
|
dep_id = 1; // bij het aanmaken van een nieuwe persoon is de afdeling nog leeg. Dan tijdelijke even onder onbekend hangen.
|
||||||
|
|
||||||
|
|
||||||
var dep_id = facilitor["orgUnit"]["value"].replace (FCLT.DEZE.customerId + "_department_", "");
|
|
||||||
|
|
||||||
person["department"] = { id: dep_id };
|
person["department"] = { id: dep_id };
|
||||||
person["function"] = { name: facilitor["title"] } // id mag achterwege blijven omdat desc_is_unique
|
person["function"] = { name: facilitor["title"] } // id mag achterwege blijven omdat desc_is_unique
|
||||||
@@ -108,29 +115,33 @@ function transform_incoming(params, data)
|
|||||||
{
|
{
|
||||||
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
|
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
|
||||||
}
|
}
|
||||||
person.phone = "";
|
|
||||||
person.mobile = "";
|
|
||||||
|
|
||||||
if (data["phoneNumbers"])
|
if (data["phoneNumbers"])
|
||||||
{
|
{
|
||||||
for (var j = 0; j < data["phoneNumbers"].length; j++)
|
for (var j = 0; j < data["phoneNumbers"].length; j++)
|
||||||
{ if (data["phoneNumbers"][j]["type"] == 'mobile')
|
{ if (data["phoneNumbers"][j]["type"] == 'mobile')
|
||||||
{
|
{
|
||||||
person.mobile = data["phoneNumbers"][j].value;
|
person.mobile = get_element(data["phoneNumbers"][j].value);
|
||||||
}
|
}
|
||||||
if (data["phoneNumbers"][j]["type"] == 'work')
|
if (data["phoneNumbers"][j]["type"] == 'work')
|
||||||
{
|
{
|
||||||
person.phone = data["phoneNumbers"][j].value;
|
person.phone = get_element(data["phoneNumbers"][j].value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (person.phone == undefined) person.phone = "";
|
|
||||||
if (person.mobile == undefined) person.mobile = "";
|
|
||||||
|
|
||||||
// TODO groepen negeren we
|
// Als de functie (srt_perslid) nog niet bestaat gaan we deze aanmaken.
|
||||||
|
var sql = "SELECT prs_srtperslid_key FROM prs_srtperslid "
|
||||||
FCLT.DEZE.__Log(person);
|
+ "WHERE prs_srtperslid_verwijder IS NULL "
|
||||||
|
+ " AND prs_srtperslid_omschrijving = " + FCLT.DEZE.safe.quoted_sql(person["function"]["name"]);
|
||||||
|
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 };
|
return { person: person };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +166,7 @@ function transform_one_person(params, person)
|
|||||||
"active": !person.deactivated,
|
"active": !person.deactivated,
|
||||||
"meta":{
|
"meta":{
|
||||||
"created":person.created,
|
"created":person.created,
|
||||||
"lastModified":person.lastchange,
|
"lastModified":person.lastchange?person.lastchange:person.created,
|
||||||
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
|
"location":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
|
||||||
"resourceType":"User"
|
"resourceType":"User"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user