[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: how to check uniqueness of uidNumber ?

I'm trying to write scripts for this right now.

The algorithm I am using works like this:

1. Retrieve / sort uids for a given ou.
2. Grab the biggest one.
3. Add 1.
4. Create a new record with the new uid.
5. Add it to the ldap server.

Problem is that on a multi-user system, this should be an atomic action with locking. Otherwise someone else who is also adding users might beat you to the next number causeing two users with the same number.
Of course you can fix this also by makeing uidNumber part of the dn.
I just don't get why this is not the default however, and doing this probably breaks a number of things such as directory_administrator.

Man, there just really ought to be more server-side tools / schema adjustments /standards for copeing with uids/rids.

Sameh Attia wrote:
Leonid Mamtchenkov wrote:
the uidNumber attribute of the posixAccount objectClass is single valued; i.e. u cannot add more than one attribute of uidNumber to a dn that has a posixAccount. So the only solution I think to guarantee the uniqueness of ur customers' uidNumber is on ur client side.
1 - search for this uidNumber in ur tree
2 - if found then do not add
3 - if not found then add
I hope this helps