I started to create this utility. It is extremely easy to just change the names of existing users. It is far harder to deal with merging two or more users that would end up with the same normalized name, and so I got bogged down.
Would it be useful to have just the first part of that (normalize existing usernames if possible)? I'm not sure how to prioritize the second part.
I think the second part is more the priority. I would approach this by giving he admin an option. Merge, or Simply Normalize and Delete (the old / bad user).
If you tie into what oo-app-info shows for each user you can provide the admin what hey need to make this decision.
That's the approach I figured on. It's just hard so it's stalled.
Even nuking a user is a bit of work to do correctly (need to remove them and any ssh keys from teams/domains, destroy their apps, etc). In fact I should probably introduce that as an admin library function. As a side benefit, implementing oo-admin-ctl-user --destroy would be trivial.
Merging users is kind of another order of magnitude in difficulty.