Go to file
Felix Arntz 8be3b4f729 Multisite: Initialize a user's roles correctly when setting them up for a different site.
While it has always been possible to initialize a user's roles and capabilities for another site than the current one in a multisite, the actual roles available were not switched prior to this change, possibly causing invalid roles to show up or actually valid capabilities not being available.

In order to fix this bug in a clean way, relevant parts of the `WP_User` class have been refactored. The ID of the site for which capabilities are currently initialized are now stored in a private property `WP_User::$site_id`. The `WP_User::for_blog( $blog_id )` and `WP_User::_init_caps( $cap_key )` methods have been deprecated in favor of `WP_User::for_site( $site_id )`. In addition, a new method `WP_User::get_site_id()` has been introduced to retrieve the site ID for which the user's capabilities are currently initialized.

Props ryanduff, jeremyfelt, flixos90.
Fixes #36961.


git-svn-id: https://develop.svn.wordpress.org/trunk@41624 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-27 21:09:11 +00:00
src Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:09:11 +00:00
tests Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:09:11 +00:00
tools/i18n DOCS: Replace HTTP links with HTTPS. 2016-06-10 04:49:09 +00:00
.editorconfig Use HTTPS URLs for codex.wordpress.org. 2015-04-12 21:28:58 +00:00
.gitignore JSDocs: add the jsdoc folder to .gitignore and svn:ignore. 2017-09-15 20:13:04 +00:00
.jshintrc Build/Test Tools: After [29858], update .jsintrc to use spaces, not tabs. 2017-01-13 04:44:53 +00:00
.travis.yml Build/Test tools: Use the latest in the 4.x and 6.x branches of PHPUnit when running tests on Travis. 2017-08-22 16:08:33 +00:00
Gruntfile.js Retire Press This and extract it to a plugin. First run. 2017-09-24 14:21:42 +00:00
jsdoc.conf.json Docs: Add jsdoc.conf.json JSDOC configuration file. 2017-09-11 13:13:40 +00:00
package.json Docs: JSDoc improvements for namespaces. 2017-09-08 18:41:20 +00:00
phpunit.xml.dist Tests: Rename ignored tests in phpunit.xml.dist. 2017-08-18 10:26:50 +00:00
wp-cli.yml Remove debug mode from WP-CLI by default, as it now outputs too much debugging information to be of use during normal development. 2015-11-28 18:36:06 +00:00
wp-config-sample.php Lightly clean up and improve inline documentation in wp-config-sample.php. 2015-05-10 00:05:30 +00:00
wp-tests-config-sample.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:51:11 +00:00