KFSG#41700 -- Scim koppeling realiseren.
svn path=/Website/branches/v2017.2/; revision=35599
This commit is contained in:
@@ -72,7 +72,7 @@ function get_eTag(params, data)
|
|||||||
|
|
||||||
function transform_incoming(params, data)
|
function transform_incoming(params, data)
|
||||||
{
|
{
|
||||||
//FCLT.DEZE.__DoLog(data);
|
FCLT.DEZE.__DoLog(data);
|
||||||
var authorizationgroup =
|
var authorizationgroup =
|
||||||
{
|
{
|
||||||
name : data["displayName"],
|
name : data["displayName"],
|
||||||
@@ -112,6 +112,7 @@ function transform_one_group(params, authorizationgroup)
|
|||||||
var unique = FCLT.DEZE.customerId + "_person_" + String(user.person.id);
|
var unique = FCLT.DEZE.customerId + "_person_" + String(user.person.id);
|
||||||
onegroup.members.push({
|
onegroup.members.push({
|
||||||
"value":unique,
|
"value":unique,
|
||||||
|
"type":"User",
|
||||||
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
|
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/Users/" + unique,
|
||||||
"display":user.person.name
|
"display":user.person.name
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -79,21 +79,20 @@ FCLT.DEZE.__DoLog(data);
|
|||||||
{
|
{
|
||||||
id : data["id"],
|
id : data["id"],
|
||||||
externalid : data["externalId"],
|
externalid : data["externalId"],
|
||||||
description: data["Code"],
|
description: data["code"],
|
||||||
name : data["externalId"],
|
name : data["externalId"],
|
||||||
costcenter : { name: data["CostCenter"] }, // id mag achterwege blijven omdat desc_is_unique
|
costcentre : { name: data["costCenter"] }, // id mag achterwege blijven omdat desc_is_unique
|
||||||
company : { name: "Schiphol Group" }
|
company : { name: "Schiphol Group" }
|
||||||
|
|
||||||
};
|
};
|
||||||
var costcenter_key = -1;
|
|
||||||
var sql = "SELECT prs_kostenplaats_key FROM prs_kostenplaats "
|
var sql = "SELECT prs_kostenplaats_key FROM prs_kostenplaats "
|
||||||
+ "WHERE prs_kostenplaats_verwijder IS NULL "
|
+ "WHERE prs_kostenplaats_verwijder IS NULL "
|
||||||
+ " AND prs_kostenplaats_nr = '" + department.costcenter.name + "'";
|
+ " AND prs_kostenplaats_nr = " + FCLT.DEZE.safe.quoted_sql(department.costcentre.name);
|
||||||
var oRs = FCLT.DEZE.Oracle.Execute(sql);
|
var oRs = FCLT.DEZE.Oracle.Execute(sql);
|
||||||
if (oRs.eof)
|
if (oRs.eof)
|
||||||
{
|
{
|
||||||
sql = "INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module) "
|
sql = "INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module) "
|
||||||
+ "VALUES ('" + department.costcenter.name + "','" + department.costcenter.name + "','PRS')";
|
+ "VALUES (" + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + "," + FCLT.DEZE.safe.quoted_sql(department.costcentre.name) + ",'PRS')";
|
||||||
FCLT.DEZE.__DoLog(sql);
|
FCLT.DEZE.__DoLog(sql);
|
||||||
FCLT.DEZE.Oracle.Execute(sql);
|
FCLT.DEZE.Oracle.Execute(sql);
|
||||||
}
|
}
|
||||||
@@ -117,7 +116,7 @@ function transform_one_department(params, department)
|
|||||||
"code":department.description,
|
"code":department.description,
|
||||||
"externalid":department.externalid,
|
"externalid":department.externalid,
|
||||||
"id":unique,
|
"id":unique,
|
||||||
"costcenter":costc,
|
"costCenter":costc,
|
||||||
"schemas":[
|
"schemas":[
|
||||||
"urn:ietf:params:scim:schemas:core:2.0:OrgUnits",
|
"urn:ietf:params:scim:schemas:core:2.0:OrgUnits",
|
||||||
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnits"
|
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:OrgUnits"
|
||||||
|
|||||||
@@ -76,24 +76,40 @@ function get_eTag(params, data)
|
|||||||
// Als het object aan staat wordt de id opgeleverd, anders -id
|
// Als het object aan staat wordt de id opgeleverd, anders -id
|
||||||
function transform_incoming(params, data)
|
function transform_incoming(params, data)
|
||||||
{
|
{
|
||||||
//FCLT.DEZE.__DoLog(data);
|
FCLT.DEZE.__DoLog(data);
|
||||||
|
var extension = data["urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"];
|
||||||
|
|
||||||
var person =
|
var person =
|
||||||
{
|
{
|
||||||
login : data["userName"],
|
login : data["userName"],
|
||||||
externallogin: data["userName"],
|
externallogin: data["userName"],
|
||||||
externalid : data["externalId"],
|
externalid : data["externalId"],
|
||||||
name : data["name"]["displayName"],
|
// name : data["name"]["displayName"],
|
||||||
|
initials : data["userFacilitor"]["initials"],
|
||||||
lastname : data["name"]["familyName"],
|
lastname : data["name"]["familyName"],
|
||||||
|
middlename : data["name"]["middleName"],
|
||||||
firstname : data["name"]["givenName"],
|
firstname : data["name"]["givenName"],
|
||||||
deactivated : data["active"]?null:new Date()
|
deactivated : data["active"]?null:new Date(),
|
||||||
|
employeenumber : extension["employeeNumber"]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (data["userName"] == undefined) person.login = "";
|
||||||
|
if (data["userFacilitor"]["initials"] == undefined) person.initials = "";
|
||||||
|
if (data["name"]["middleName"] == undefined) person.middlename = "";
|
||||||
|
if (data["name"]["givenName"] == undefined) person.firstname = "";
|
||||||
|
if (extension["employeeNumber"] == undefined) person.employeenumber = "";
|
||||||
|
|
||||||
|
|
||||||
|
var dep_id = data["orgUnit"]["id"].replace (FCLT.DEZE.customerId + "_department_", "");
|
||||||
|
|
||||||
|
person["department"] = { id: dep_id };
|
||||||
person["function"] = { name: data["title"] } // id mag achterwege blijven omdat desc_is_unique
|
person["function"] = { name: data["title"] } // id mag achterwege blijven omdat desc_is_unique
|
||||||
|
|
||||||
if (data["emails"].length)
|
if (data["emails"])
|
||||||
{
|
{
|
||||||
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
|
person.email = data["emails"][0].value; // type:work/primary:true opzoeken ?
|
||||||
}
|
}
|
||||||
if (data["phoneNumbers"].length)
|
if (data["phoneNumbers"])
|
||||||
{
|
{
|
||||||
person.mobile = data["phoneNumbers"][0].value; // type:mobile/primary:true opzoeken ?
|
person.mobile = data["phoneNumbers"][0].value; // type:mobile/primary:true opzoeken ?
|
||||||
}
|
}
|
||||||
@@ -112,10 +128,14 @@ function transform_one_person(params, person)
|
|||||||
"userName":person.externallogin || person.login,
|
"userName":person.externallogin || person.login,
|
||||||
"externalId":person.externalid,
|
"externalId":person.externalid,
|
||||||
"id":unique,
|
"id":unique,
|
||||||
|
"userFacilitor":{
|
||||||
|
"initials":person.initials
|
||||||
|
},
|
||||||
"name":{
|
"name":{
|
||||||
"formatted":person.name,
|
"formatted":person.name,
|
||||||
"familyName":person.lastname,
|
"familyName":person.lastname,
|
||||||
"givenName":person.firstname
|
"givenName":person.firstname,
|
||||||
|
"middleName":person.middlename
|
||||||
},
|
},
|
||||||
"schemas":[
|
"schemas":[
|
||||||
"urn:ietf:params:scim:schemas:core:2.0:User",
|
"urn:ietf:params:scim:schemas:core:2.0:User",
|
||||||
@@ -146,11 +166,15 @@ function transform_one_person(params, person)
|
|||||||
],
|
],
|
||||||
"orgunit":
|
"orgunit":
|
||||||
{
|
{
|
||||||
"id":String(person.department.id),
|
"id":FCLT.DEZE.customerId + "_department_" + String(person.department.id),
|
||||||
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
|
"$ref":FCLT.DEZE.HTTP.urlzelf() + "/appl/SCIM/OrgUnits/" + FCLT.DEZE.customerId + "_department_" + String(person.department.id)
|
||||||
}
|
}
|
||||||
,
|
,
|
||||||
"groups":[]
|
"groups":[],
|
||||||
|
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" :
|
||||||
|
{
|
||||||
|
"employeeNumber":person.employeenumber
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var allgroups = [];
|
var allgroups = [];
|
||||||
for (var j = 0; j < person.authorization.length; j++)
|
for (var j = 0; j < person.authorization.length; j++)
|
||||||
@@ -183,7 +207,11 @@ function transform_outgoing(params, data)
|
|||||||
if (params.limit && allusers.length > params.limit)
|
if (params.limit && allusers.length > params.limit)
|
||||||
break;
|
break;
|
||||||
var person = data.persons[i];
|
var person = data.persons[i];
|
||||||
allusers.push(transform_one_person(params, person));
|
if (person.login && person.login.indexOf('_') != 0)
|
||||||
|
{
|
||||||
|
// _ users are not part of the interface.
|
||||||
|
allusers.push(transform_one_person(params, person));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user