[wp-trac] [WordPress Trac] #12776: new ms site sometimes gets no roles

WordPress Trac wp-trac at lists.automattic.com
Tue Mar 30 16:37:22 UTC 2010


#12776: new ms site sometimes gets no roles
----------------------------+-----------------------------------------------
 Reporter:  RogerTheriault  |       Owner:            
     Type:  defect (bug)    |      Status:  new       
 Priority:  normal          |   Milestone:  Unassigned
Component:  Multisite       |     Version:  2.9.2     
 Severity:  major           |    Keywords:            
----------------------------+-----------------------------------------------
 After upgrading to WPMU 2.9.2 from 2.8.6, we experienced a strange issue
 with NEW blogs - the blog's wp_xx_user_roles option was not adequately
 populated. There were no warnings, complaints, or errors at blog creation
 time.

 Symptoms:
  * the admin could not access the new blog's admin side (the exact message
 is "You don't have permission to view this blog. Please contact the system
 administrator.")
  * the Add New User admin panel (for a site admin) only displays the role
 "Administrator" in the drop-down
  * the wp_xxx_user_roles blog option contains only one "administrator"
 role with no capabilities (except those added by active plugins)

 Looking at the install_blog function in wp-includes/wpmu-functions.php, it
 seems the order of function calls suddenly matters, once we changed it to
 the below, we were able to create new blogs with correct user roles:

 {{{
         $wp_roles->_init();
         populate_roles();
 }}}

 The init function sets the option key for the roles but will not save
 anything to the db if the global $wp_user_roles already exists.

 Environment:
  * Have not tested against trunk
  * we suspect it may not manifest itself in every installation.
  * We do have plugins installed that add capabilities (eg: wp-polls) but
 those did not cause any issues in 2.8.6.
  * we are using memcached

 Steps to reproduce:
  * create a new blog and administrator using the form at the bottom of the
 Blogs list (as a site admin)
  * using the new admin's credentials, attempt to access the new blog's
 admin page, eg: http://somesite.com/newblogname/wp-admin/
  * the admin is denied access and debugging indicates the user has no
 "read" or "edit_user" capabilities
  * Note: site uber-admins can still access the new blog's admin pages

 Workaround:
  * copy the serialized array from the wp_xxx_user_roles option of another
 blog to the new blog.

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


More information about the wp-trac mailing list