|
Use this article if you want to transform data from LDAP attributes
|
The full name , in general, is stored in a corporate LDAP.
Problem:
The person attributes on the ldap , like SN, CN, Display name can be in capital letters like FIRST NAME LAST NAME. We don´t want this kind of display names,
The solution:
Custon function before importing the users.
Copy this function to the file profiles_functions.js
function func_name (fieldname){
get attributes
var nome = work.getAttribute("givenName");
var sobrenome = work.getAttribute("sn");
var fullname = nome + " " + sobrenome;
return properCase(fullname);
function properCase(text) {
var articles = [ 'e','o', 'a', 'de', 'da', 'dos', 'das']
return map(text.split(/\s+/), function(word) {
return isArticle(word)? word.toLowerCase()
: /* otherwise */ capitalise(word) })
.join(' ')
function map(xs, f) {
var l = xs.length, r = new Array(xs.length)
for (var i = 0; i < l; ++i) r[i] = f(xs[i])
return r }
function has(xs, x) {
for (var i = 0; i < xs.length; ++i)
if (xs[i] === x) return true
return false }
function capitalise(word) {
return word.slice(0, 1).toUpperCase() + word.slice(1).toLowerCase() }
function isArticle(word) {
return has(articles, word.toLowerCase()) }}
}
Change the attribute displayname on the file map_dbrepos_from_source.properties
displayName={func_name}
Run the ./sync_all_dns.sh |