Hello,
it's me again :D
I've problem with code which I wrote, almost everything works fine, almost :D
As you can see - first is users login creation (baseuid) and replace signs, then if this login exists in system, it should create login with _1 (uid = baseuid + "_" + inc; ) but this doesn't happened :/
I tried many modifications of code and still the same, everytime I have the same login :/
Any ideas why? Any clues how can I do this?
var name = subject.getProperty("givenName")[0].toLowerCase();
name = name.replace(/\s/g,"_");
var surname = subject.getProperty("sn")[0].toLowerCase();
surname = surname.replace(/[-\s]/g,"_");
function genUid() {
var baseuid = removeAccents(name + "_" + surname);
var inc = 0;
var uidTaken = true;
var uid = baseuid;
while (uidTaken) {
if(inc > 0) {
uid = baseuid + "_" + inc;
}
var account = (new AccountSearch()).searchByUidAndService(uid, "LDAP");
if (account!=null) {
inc++;
} else {
uidTaken = false;
}
}
return uid;
}
function removeAccents(strAccents) {
var strAccents = strAccents.split('');
var strAccentsOut = new Array();
var strAccentsLen = strAccents.length;
var accents = 'ÀÁÂÃÄÅĄàáâãäåąÒÓÔÕÕÖØòóôõöøÈÉÊËĘèéêëęðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŃńŠšŸÿýŽžŁłŻżŹźŚśĆć';
var accentsOut = "AAAAAAAaaaaaaaOOOOOOOooooooEEEEEeeeeeeCcDIIIIiiiiUUUUuuuuNnNnSsYyyZzLlZzZzSsCc";
for (var y = 0; y < strAccentsLen; y++) {
if (accents.indexOf(strAccents[y]) != -1) {
strAccentsOut[y] = accentsOut.substr(accents.indexOf(strAccents[y]), 1);
} else
strAccentsOut[y] = strAccents[y];
}
strAccentsOut = strAccentsOut.join('');
return strAccentsOut;
}
return genUid();
#Support#SupportMigration#Verify