[wp-trac] [WordPress Trac] #13569: Odd edge case with shared user tables and custom admin username during install

WordPress Trac wp-trac at lists.automattic.com
Thu May 27 06:06:43 UTC 2010


#13569: Odd edge case with shared user tables and custom admin username during
install
--------------------------+-------------------------------------------------
 Reporter:  nacin         |       Owner:     
     Type:  defect (bug)  |      Status:  new
 Priority:  normal        |   Milestone:  3.1
Component:  Users         |     Version:     
 Severity:  normal        |    Keywords:     
--------------------------+-------------------------------------------------
 1. In install 1, run install.php and use a custom username (NOT called
 'admin') and set the e-mail to email at example.com.

 2. In install 2, before installing, set up shared user tables with install
 1. Then run the installer. You won't have the ability to choose usernames
 (that's expected). Use the *same* email.

 3. Click "Install." You'll get hit with a WP_Error object.

 What's happening? The logic in wp_install() is to do a username_exists()
 against the username passed to it. If the user exists, it assumes that
 you're using shared user tables. Problem is, wp_install() is passed
 'admin' from install.php (as that's the default, and you don't see the
 fields when custom user tables are setup), while your user is not called
 'admin'. The e-mail address is already being used for another user
 however, so it is creating 'admin' and is failing on the duplicate e-mail
 address.

 If the email address doesn't match any user, I imagine you'd instead get
 an 'admin' user in your second install, which you could promptly delete. I
 see no problem with that, as the alternatives are to pick which user
 should become an admin.

 So, the fix would be to change username_exists() and the logic that
 follows, and instead match the e-mail address with an existing user, and
 make that user the new administrator. If no user with that email exists,
 we create an admin user and they can tough it out.

 I do not feel this is a blocker at all. The symptoms I am seeing should be
 the same in 2.9.2 if you removed the admin user in install 1, then
 proceeded to share user tables with install 2 before installing.

 It'd be nice to at least prevent the fatal error and allow the install to
 finish, however. I do want to get to it in 3.0 if I can, since we now are
 allowing custom admin names. That said, setting to 3.1.

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/13569>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list