WordPress/wp-includes
Felix Arntz 21f18c2d30 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.

Built from https://develop.svn.wordpress.org/trunk@41624


git-svn-id: http://core.svn.wordpress.org/trunk@41459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-09-27 21:10:45 +00:00
..
certificates
css Accessibility: Update and standardize the admin screen-reader-text CSS class. 2017-09-27 17:27:45 +00:00
customize Accessibility: CodeMirror editing areas minor improvements. 2017-09-24 16:00:46 +00:00
fonts
ID3 Media: update the getID3 library to version 1.9.14 to avoid fatal errors in PHP7. 2017-07-31 19:50:45 +00:00
images
IXR
js TinyMCE: update to 4.6.7, changelog: https://www.tinymce.com/docs/changelog/#version467september182017. 2017-09-26 21:15:47 +00:00
pomo
random_compat
Requests
rest-api I18N: Add translator comments for placeholders in WP_REST_Controller strings. 2017-09-25 10:27:43 +00:00
SimplePie
Text
theme-compat Embeds: Introduce embed_thumbnail_id filter for thumbnail image ID in the embed template. 2017-09-22 17:35:48 +00:00
widgets Widgets: Introduce Gallery widget for displaying image galleries. 2017-09-25 06:28:45 +00:00
admin-bar.php Toolbar: Add View User and Edit User links to the admin toolbar to ease navigation between a user's archives and the user editing screen. 2017-07-26 16:45:44 +00:00
atomlib.php
author-template.php Editor: Add CodeMirror-powered code editor with syntax highlighting, linting, and auto-completion. 2017-09-13 06:08:47 +00:00
bookmark-template.php
bookmark.php
cache.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
canonical.php Canonical: Check first before attempting to include a 'path' value in the URL in strip_fragment_from_url(). 2017-08-16 21:11:43 +00:00
capabilities.php Docs: Clarify descriptions and parameter types for various user capability checking functions. 2017-08-29 16:43:47 +00:00
category-template.php General: Fix more instances of inconsistent parameters passed to various filters, plus fix some filter docs. 2017-08-03 16:13:44 +00:00
category.php
class-feed.php
class-http.php Docs: Change $args to $r in the DocBlock for http_api_debug filter to match the variable name. 2017-09-22 09:33:47 +00:00
class-IXR.php
class-json.php
class-oembed.php Embeds: Documentation alignment following [41615]. 2017-09-27 13:27:44 +00:00
class-phpass.php
class-phpmailer.php
class-pop3.php
class-requests.php
class-simplepie.php
class-smtp.php
class-snoopy.php
class-walker-category-dropdown.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-category.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-comment.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-nav-menu.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-page-dropdown.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-walker-page.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-admin-bar.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-ajax-response.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-comment-query.php Introduce paged argument to WP_Comment_Query. 2017-08-21 15:35:46 +00:00
class-wp-comment.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-control.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-manager.php Customize: Dismiss all autosaved auto-drafts for user and not just the one suggested when dismissing restoration notification. 2017-09-26 20:33:46 +00:00
class-wp-customize-nav-menus.php Docs: Remove "in in", "this this", and "containing containing" dittography from inline comments. 2017-09-09 13:19:45 +00:00
class-wp-customize-panel.php Accessibility: CodeMirror editing areas minor improvements. 2017-09-24 16:00:46 +00:00
class-wp-customize-section.php Customize: Add notifications API to sections and panels. 2017-09-19 05:40:44 +00:00
class-wp-customize-setting.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-customize-widgets.php Customize: Introduce settings_previewed arg and getter on WP_Customize_Manager which controls whether WP_Customize_Setting::preview() should be called on settings. 2017-08-02 05:35:41 +00:00
class-wp-dependency.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-editor.php Editor: In _WP_Editors::wp_link_query, allow filtering empty results. 2017-09-08 14:03:44 +00:00
class-wp-embed.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-error.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-feed-cache-transient.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-feed-cache.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-hook.php Docs: Use correct order of arguments in the DocBlock for WP_Hook::has_filter(). 2017-09-21 10:00:48 +00:00
class-wp-http-cookie.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-curl.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-encoding.php
class-wp-http-ixr-client.php
class-wp-http-proxy.php
class-wp-http-requests-hooks.php Docs: Remove superfluous @package WordPress and @subpackage notations used outside of file headers in a variety of core files. 2017-07-01 16:58:42 +00:00
class-wp-http-requests-response.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-response.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-http-streams.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-image-editor-gd.php Media: Rename several attachment related parameters from $post_id to $attachment_id for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-image-editor-imagick.php Media: Rename several attachment related parameters from $post_id to $attachment_id for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-image-editor.php Media: Rename several attachment related parameters from $post_id to $attachment_id for clarity, and improve related 2017-08-22 11:12:44 +00:00
class-wp-list-util.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-locale-switcher.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
class-wp-locale.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-matchesmapregex.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-meta-query.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-metadata-lazyloader.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-network-query.php Docs: Fix various filter documentation. 2017-08-03 14:34:44 +00:00
class-wp-network.php Multisite: Introduce get_main_site_id(). 2017-09-15 11:15:52 +00:00
class-wp-oembed-controller.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-post-type.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-post.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-query.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-rewrite.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-role.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-roles.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-session-tokens.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-simplepie-file.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-simplepie-sanitize-kses.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-site-query.php Multisite: More specificity for the get_sites() documentation. 2017-09-04 11:17:43 +00:00
class-wp-site.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-tax-query.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-taxonomy.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-term-query.php Taxonomy: Force a DISTINCT term query when result count matters. 2017-09-13 14:48:45 +00:00
class-wp-term.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-text-diff-renderer-inline.php
class-wp-text-diff-renderer-table.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-theme.php Themes: Adjust translated string after [41601]. 2017-09-27 08:38:45 +00:00
class-wp-user-meta-session-tokens.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-user-query.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-user.php Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:10:45 +00:00
class-wp-walker.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-widget-factory.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-widget.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class-wp-xmlrpc-server.php I18N: Merge two similar "Cannot set parent term" error strings. 2017-09-22 22:08:46 +00:00
class-wp.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-dependencies.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-scripts.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
class.wp-styles.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
comment-template.php Docs: Clarify that get_comments_number() can return either a numeric string (for compatibility reasons) or 0 if the post doesn't exist. 2017-08-20 20:13:47 +00:00
comment.php Allow metadata to be updated via wp_update_comment(). 2017-07-01 13:36:41 +00:00
compat.php General: Move the __autoload() compat function into its own file to prevent deprecated notices being thrown by the compiler in PHP 7.2. 2017-07-28 01:15:52 +00:00
cron.php Docs: Use third-person singular verbs in the summaries for wp_unschedule_hook() and wp_clear_scheduled_hook(). 2017-06-30 04:54:41 +00:00
date.php Docs: Remove @access notations from method DocBlocks in wp-includes/* classes. 2017-07-27 00:41:44 +00:00
default-constants.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
default-filters.php Users: Introduce the concept of a large site in order to speed up the Users screen when there are many users. 2017-09-27 13:04:47 +00:00
default-widgets.php Widgets: Introduce Gallery widget for displaying image galleries. 2017-09-25 06:28:45 +00:00
deprecated.php Retire Press This and extract it to a plugin. First run. 2017-09-24 14:22:54 +00:00
embed-template.php
embed.php Accessibility: Update and standardize the admin screen-reader-text CSS class. 2017-09-27 17:27:45 +00:00
feed-atom-comments.php
feed-atom.php
feed-rdf.php
feed-rss2-comments.php
feed-rss2.php
feed-rss.php
feed.php
formatting.php Emoji: Invert value returned by UN test for accuracy. 2017-09-17 22:52:47 +00:00
functions.php Users: There is not, in fact, 12345 users on every WordPress installation. 2017-09-27 13:07:46 +00:00
functions.wp-scripts.php
functions.wp-styles.php
general-template.php Customize: Introduce extensible code editor Customizer control for CodeMirror. 2017-09-21 23:04:45 +00:00
http.php Docs: Add @access private entries for _get_component_from_parsed_url_array() and _wp_translate_php_url_constant_to_key(). 2017-09-22 22:00:47 +00:00
kses.php Docs: Adjust notation for the $context parameter in the DocBlocks for the wp_kses_allowed_html() function and its associated wp_kses_allowed_html filter. 2017-06-25 22:16:40 +00:00
l10n.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
link-template.php Posts, Post Types: Pass the order parameter to get_{$adjacent}_post_sort filter. 2017-09-24 23:01:44 +00:00
load.php Docs: Add a @global entry for $wp_filter in wp_start_object_cache(). 2017-07-01 22:13:41 +00:00
locale.php
media-template.php Media: Set correct value for "Link Rel" field in Image Details modal. 2017-08-31 11:17:45 +00:00
media.php Media: Rename "Insert Media" window title to "Add Media" for consistency with the "Add Media" button. 2017-09-16 11:03:45 +00:00
meta.php
ms-blogs.php Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:10:45 +00:00
ms-default-constants.php
ms-default-filters.php
ms-deprecated.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:52:48 +00:00
ms-files.php
ms-functions.php Options, Meta APIs: Require a confirmation link in an email to be clicked when a user attempts to change the network 2017-09-27 14:17:45 +00:00
ms-load.php Multisite: Introduce get_main_site_id(). 2017-09-15 11:15:52 +00:00
ms-settings.php
nav-menu-template.php Menus: Make sure current-menu-parent and current-menu-ancestor classes are properly set for parent items of post type archive submenu items. 2017-07-05 21:31:44 +00:00
nav-menu.php Map nav menu locations on theme switch 2017-08-09 21:04:47 +00:00
option.php Multisite: Remove references to $wpdb->siteid and use get_current_network_id() instead. 2017-08-12 13:11:43 +00:00
pluggable-deprecated.php
pluggable.php Login and Registration: Pass the user session token to the set_auth_cookie and set_logged_in_cookie filters. 2017-09-10 21:09:45 +00:00
plugin.php Add wp.hooks - JavaScript actions and filters. 2017-09-12 12:54:45 +00:00
post-formats.php Docs: Improve the return description for get_post_format_slugs() to note that the array contains slugs as both keys and values. 2017-08-20 20:03:54 +00:00
post-template.php I18N: Allow for post custom field name in the_meta() to be translated, e.g. to insert a non-breaking space before the colon. 2017-09-24 11:28:46 +00:00
post-thumbnail-template.php Post Thumbnails: Pass post ID to post_thumbnail_size filter. 2017-08-18 18:19:44 +00:00
post.php Docs: Remove "since since" and "one one" dittography from inline comments. 2017-09-09 13:53:42 +00:00
query.php Docs: Remove some more top-level @aacess tags from function DocBlocks. 2017-07-27 08:19:43 +00:00
registration-functions.php
registration.php
rest-api.php REST API: Always call rest_get_server() instead of accessing the $wp_rest_server global. 2017-08-10 01:38:43 +00:00
revision.php
rewrite.php
rss-functions.php
rss.php
script-loader.php Plugins: Improve error messages on plugins screen. 2017-09-27 08:46:45 +00:00
session.php
shortcodes.php Docs: Fix a typo in the DocBlock description for add_shortcode() introduced in [41281]. 2017-08-20 20:38:42 +00:00
spl-autoload-compat.php General: Move the __autoload() compat function into its own file to prevent deprecated notices being thrown by the compiler in PHP 7.2. 2017-07-28 01:15:52 +00:00
taxonomy.php Taxonomy: Introduce a back_to_items taxonomy label. 2017-09-27 14:39:45 +00:00
template-loader.php
template.php Docs: Don't reference non-existent hooks inline in the DocBlock descriptions for the following template functions: 2017-06-29 16:05:41 +00:00
theme.php Customize: Extend changesets to support autosave revisions with restoration notifications, and introduce a new default linear history mode for saved changesets (with a filter for opt-in to changeset branching). 2017-09-26 07:38:45 +00:00
update.php Users: Introduce the concept of a large site in order to speed up the Users screen when there are many users. 2017-09-27 13:04:47 +00:00
user.php Docs: Correct description for insert_user_meta filter. 2017-09-22 13:14:45 +00:00
vars.php General: Introduce a wp_is_mobile filter for controlling whether a request should be treated as coming from a mobile device. 2017-06-15 12:05:42 +00:00
version.php Multisite: Initialize a user's roles correctly when setting them up for a different site. 2017-09-27 21:10:45 +00:00
widgets.php Widgets: Merge orphaned widgets on theme switch 2017-09-25 16:19:46 +00:00
wlwmanifest.xml
wp-db.php Database: Hardening to bring wpdb::prepare() inline with documentation. 2017-09-19 17:56:45 +00:00
wp-diff.php