Commit Graph

224 Commits

Author SHA1 Message Date
Sergey Biryukov
811eef33a3 Privacy: When clicking a confirmation link for a privacy request, return a WP_Error object if the link has expired.
Returning a string caused a success message to be displayed instead of the correct error message.

Props desrosj.
Fixes #44685.

git-svn-id: https://develop.svn.wordpress.org/trunk@43623 602fd350-edb4-49c9-b593-d223f7449a82
2018-09-03 21:43:13 +00:00
Gary Pendergast
a75d153eee Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.



git-svn-id: https://develop.svn.wordpress.org/trunk@43571 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-17 01:50:26 +00:00
Sergey Biryukov
c5d013bf95 Privacy: Ensure the user request email is sent in the requested user's locale (or the site's default locale if they are not a registered user) when the administrator creating the request uses a different locale.
Props desrosj, Chouby, iandunn, lbenicio, birgire, earnjam, swissspidy, garrett-eclipse.
Fixes #43985.

git-svn-id: https://develop.svn.wordpress.org/trunk@43568 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-13 16:31:31 +00:00
Andrew Ozz
7a86b55763 Privacy: Add $request to $email_data to make it available to all filters.
Props desrosj.
Fixes #44379.

git-svn-id: https://develop.svn.wordpress.org/trunk@43477 602fd350-edb4-49c9-b593-d223f7449a82
2018-07-17 13:52:43 +00:00
Andrew Ozz
6612d0e452 Privacy: Add filter for the subject of the erasure complete notification emails.
Props desrosj.
Fixes #44265.

git-svn-id: https://develop.svn.wordpress.org/trunk@43475 602fd350-edb4-49c9-b593-d223f7449a82
2018-07-17 13:41:33 +00:00
Sergey Biryukov
83e8e6c003 Privacy: Change @since entry for user_request_confirmed_email_subject filter added in [43373] to 4.9.8.
See #44382.

git-svn-id: https://develop.svn.wordpress.org/trunk@43451 602fd350-edb4-49c9-b593-d223f7449a82
2018-07-16 12:11:14 +00:00
Felix Arntz
97cacadc50 Privacy: Use consistent values for the site name and URL used in notification emails.
The functions `send_confirmation_on_profile_email()`, `_wp_privacy_send_request_confirmation_notification()`, `_wp_privacy_send_erasure_fulfillment_notification()`, and `wp_send_user_request()` all include a title and URL indicating the current site. However, so far they have dealt with those values inconsistently, sometimes using the site values, other times using the network values if in a multisite. This changeset ensures that only the current site is taken into account in all cases and that special characters in the site name are consistently decoded.

Props subrataemfluence, desrosj.
Fixes #44396.


git-svn-id: https://develop.svn.wordpress.org/trunk@43388 602fd350-edb4-49c9-b593-d223f7449a82
2018-07-03 16:59:36 +00:00
Andrew Ozz
6b366c6620 Privacy: use wp_login_url() for the link in the user confirmation email.
Props desrosj, usmankhalid.
Fixes #44353.

git-svn-id: https://develop.svn.wordpress.org/trunk@43379 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-25 15:01:29 +00:00
Andrew Ozz
2972f7c220 Privacy: add user request type to the admin notification email subject.
Props birgire, desrosj.
Fixes #44099.

git-svn-id: https://develop.svn.wordpress.org/trunk@43375 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-19 08:17:44 +00:00
Andrew Ozz
5168c31084 Privacy: filter the email subject in _wp_privacy_send_request_confirmation_notification().
Props garrett-eclipse, birgire, desrosj.
Fixes #44382.

git-svn-id: https://develop.svn.wordpress.org/trunk@43373 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-18 16:23:37 +00:00
John Blackbourn
102422679d Security: Harden the random aspect of the hash used for user profile and admin email address changes.
Props BjornW

Fixes #43771


git-svn-id: https://develop.svn.wordpress.org/trunk@43367 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-16 14:09:58 +00:00
Sergey Biryukov
51b94c3262 Privacy: Remove unnecessary This email has been sent to ###EMAIL### from privacy emails.
The line was copied from the emails that get sent when an email address changes, without considering if it made sense in the new context.

Props iandunn, ianbelanger, desrosj.
Fixes #44030.

git-svn-id: https://develop.svn.wordpress.org/trunk@43353 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-16 10:24:30 +00:00
Sergey Biryukov
f4580c122b Users: In wp_validate_user_request_key(), properly return the WP_Error object in case the confirmation email has expired.
Props itowhid06.
Fixes #44298.

git-svn-id: https://develop.svn.wordpress.org/trunk@43331 602fd350-edb4-49c9-b593-d223f7449a82
2018-06-04 13:45:13 +00:00
Andrew Ozz
b69237ecda Privacy: improve inline documentation.
Props desrosj.
Fixes #44075.

git-svn-id: https://develop.svn.wordpress.org/trunk@43256 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-14 14:52:49 +00:00
Ian Dunn
70fd932c25 Privacy: Expose erasure notification recipient to filter callbacks.
The previous `user_email` value was redundant, because it always matched `$request_data->email`. That value might be different from where the message is sent, though, if the `user_erasure_fulfillment_email_to` filter is used. If they are different, then callbacks for the `user_confirmed_action_email_content` filter may want to distinguish between the email address of the user making the request, and the email address that the confirmation notification is being sent to.

Props desrosj, iandunn.
See #43973.


git-svn-id: https://develop.svn.wordpress.org/trunk@43236 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-10 21:19:27 +00:00
Sergey Biryukov
0a56b67b52 Privacy: Update request confirmation notice text for clarity.
Props desrosj, melchoyce, garrett-eclipse.
Fixes #43970.

git-svn-id: https://develop.svn.wordpress.org/trunk@43232 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-10 20:52:54 +00:00
Sergey Biryukov
bc5ecec3fc Privacy: Send an email notification to the user once their personal data erasure request is fulfilled.
Props desrosj, allendav, garrett-eclipse.
Fixes #43973.

git-svn-id: https://develop.svn.wordpress.org/trunk@43230 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-10 20:42:15 +00:00
Andrew Ozz
56079a45fd Privacy: cleanup of the "Export Personal Data" and "Erase Personal Data" screens.
Props desrosj, xkon.
See #43929.

git-svn-id: https://develop.svn.wordpress.org/trunk@43212 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-10 10:00:19 +00:00
Ian Dunn
dd4322535b Privacy: Notify admin via email when a request is confirmed.
Previously the admin didn't have any way to know if a pending request was ready to be processed, aside from manually checking the Export/Erase pages. Sending them an email is a much more convenient option.

Props garrett-eclipse, desrosj, iandunn.
See #43967.


git-svn-id: https://develop.svn.wordpress.org/trunk@43211 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-10 04:59:48 +00:00
Andrew Ozz
998fcc3f65 Privacy: remove leftover comment after [43197].
See #43968.

git-svn-id: https://develop.svn.wordpress.org/trunk@43199 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-09 17:56:37 +00:00
Andrew Ozz
a0e67e1331 Privacy: add request type and filter to the subject of request confirmation emails for GDPR.
Props desrosj, azaozz.
See #43968.

git-svn-id: https://develop.svn.wordpress.org/trunk@43197 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-09 17:50:56 +00:00
Sergey Biryukov
665c214dbb Docs: Remove unused ###USERNAME### placeholder reference from user_request_action_email_content filter documentation.
Props desrosj.
Fixes #44016.

git-svn-id: https://develop.svn.wordpress.org/trunk@43189 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-09 14:37:44 +00:00
Sergey Biryukov
9ca9b27110 Privacy: Use the terms "erase"/"erasure" instead of "remove"/"removal" for personal data.
Props allendav.
Fixes #43920.

git-svn-id: https://develop.svn.wordpress.org/trunk@43175 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-07 16:44:15 +00:00
Ian Dunn
4bb19e4aca Privacy: Store plugin callbacks in associative array for flexibility.
The personal data export and erasure tools allow plugins to register their own callbacks, in order to add additional data to the export and erasure processes. Previously, these were registered without specifying a constant identifier in the array of callbacks. Using mutable integers makes it difficult for plugins to modify the callbacks of other plugins, though.

Using associative array keys instead provides a covenient and reliable way to identify and interact with another plugin's callbacks.

Props desrosj, allendav, ocean90.
Fixes #43931.


git-svn-id: https://develop.svn.wordpress.org/trunk@43154 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-03 19:27:14 +00:00
Andrew Ozz
e678d4ea6d Privacy: fix inconsistencies in new strings.
Props audrasjb.
Fixes #43925.

git-svn-id: https://develop.svn.wordpress.org/trunk@43118 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-02 18:41:10 +00:00
Andrew Ozz
16bd4bede2 Privacy: add user information to the personal data export file.
Props TZ-Media, desrosj.
See #43547.


git-svn-id: https://develop.svn.wordpress.org/trunk@43055 602fd350-edb4-49c9-b593-d223f7449a82
2018-05-01 13:58:02 +00:00
Andrew Ozz
bf1ddda65f Fix docs and white space.
Props desrosj.
See #43443.

git-svn-id: https://develop.svn.wordpress.org/trunk@43014 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-28 12:03:09 +00:00
Andrew Ozz
da5dc711a5 Privacy: add means to export personal data by username or email address. Generate a zipped export file containing all data. First run.
Props allendav.
See #43546.

git-svn-id: https://develop.svn.wordpress.org/trunk@43012 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-27 19:53:37 +00:00
Andrew Ozz
a0c3fab75b Privacy: update and enhance the method to confirm user requests by email. Introduce WP_User_Request to hold all request vars similarly to WP_Post.
Props mikejolley.
See #43443.


git-svn-id: https://develop.svn.wordpress.org/trunk@43011 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-27 17:30:28 +00:00
Andrew Ozz
11d594e3a8 Privacy: update the method to confirm user requests by email. Use a single CPT to store the requests and to allow logging/audit trail.
Props mikejolley.
See #43443.


git-svn-id: https://develop.svn.wordpress.org/trunk@43008 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-27 10:12:01 +00:00
Andrew Ozz
33979450ac Privacy: add new wp-admin screens for exporting and removing of personal data.
Props @melchoyce, @mikejolley, @allendav, @xkon.
See #43481.

git-svn-id: https://develop.svn.wordpress.org/trunk@42967 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-10 18:01:20 +00:00
Andrew Ozz
531abcbdd4 Privacy: fixes and updates for the method to confirm user requests by email.
- Improve function and variable names.
- Allow extra data to be passed with the request.
- Make the option/user meta names more consistent.
- Adds an inline comment explaining use of hash.

Props mikejolley.
See #43443.

git-svn-id: https://develop.svn.wordpress.org/trunk@42964 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-06 19:09:53 +00:00
Sergey Biryukov
1fddd69163 I18N: Use the actual placeholder instead of a number in translator comments if the corresponding string does not use numbered placeholders.
Add missing translator comments in `WP_Theme_Install_List_Table` and `wp_notify_postauthor()`.
Add missing commas in some translator comments.

Fixes #43523.

git-svn-id: https://develop.svn.wordpress.org/trunk@42827 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-11 16:43:59 +00:00
Andrew Ozz
0005ad91d6 Add a method to confirm user requests by email. First run.
Props mikejolley.
See #43443.

git-svn-id: https://develop.svn.wordpress.org/trunk@42791 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-06 23:46:44 +00:00
Sergey Biryukov
78fc54ca37 Docs: Clarify that wp_update_user() accepts an array as $userdata argument.
Props nextendweb.
Fixes #43051.

git-svn-id: https://develop.svn.wordpress.org/trunk@42774 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-04 18:11:56 +00:00
Sergey Biryukov
1cc516f2e8 General: Introduce WP_Error::has_errors() method and use it where appropriate.
Props robdxw, DrewAPicture, SergeyBiryukov.
Fixes #42742.

git-svn-id: https://develop.svn.wordpress.org/trunk@42761 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-27 02:30:46 +00:00
Drew Jaynes
1b46470b75 Docs: Link to the "Conditional Tags" article in the Theme Developer Handbook from the descriptions for a variety of core conditional tag functions.
These notations largely serve to direct consumers (of both the source and the parsed code reference) to extended information on individual and related conditional tags throughout WordPress. The changeset also standardizes corresponding DocBlock summaries to use third-person singular verbs.

Notations been added for the following functions:

* comments_open()
* email exists()
* has_excerpt()
* has_post_thumbnail()
* has_tag()
* in_category()
* in_the_loop()
* is_404()
* is_active_sidebar()
* is_active_widget()
* is_admin()
* is_admin_bar_showing()
* is_archive()
* is_attachment()
* is_author()
* is_blog_installed()
* is_category()
* is_comments_popup()
* is_date()
* is_day()
* is_dynamic_sidebar()
* is_feed()
* is_front_page()
* is_home()
* is_local_attachment()
* is_main_query
* is_month()
* is_multi_author
* is_new_day()
* is_page()
* is_page_template()
* is_paged()
* is_plugin_active()
* is_plugin_active_for_network()
* is_plugin_inactive()
* is_plugin_page()
* is_post_type_archive()
* is_preview()
* is_rtl()
* is_search()
* is_single()
* is_singular()
* is_sticky()
* is_tag()
* is_tax()
* is_taxonomy_hierarchical()
* is_time()
* is_trackback()
* is_user_logged_in()
* is_year()
* pings_open()
* post_type_exists()
* taxonomy_exists()
* term_exists()
* username exists()
* wp_attachment_is_image()
* wp_script_is()

Props janalwin.
Fixes #43254.


git-svn-id: https://develop.svn.wordpress.org/trunk@42710 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-13 16:53:44 +00:00
John Blackbourn
4836686b6f Docs: Add missing code formatting to various @since entries.
See #42505


git-svn-id: https://develop.svn.wordpress.org/trunk@42678 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-09 16:54:58 +00:00
Gary Pendergast
8f95800d52 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.



git-svn-id: https://develop.svn.wordpress.org/trunk@42343 602fd350-edb4-49c9-b593-d223f7449a82
2017-11-30 23:09:33 +00:00
John Blackbourn
260b9917d7 Docs: Correct some @since MU notation that was broken in [41200].
Every function introduced by MU was introduced in 3.0.0 as this was when MU was merged.

See #41509


git-svn-id: https://develop.svn.wordpress.org/trunk@41714 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-03 17:43:37 +00:00
John Blackbourn
19c0a55711 Docs: Standardise the format used for documenting parameters passed by reference.
See #35974, #41017


git-svn-id: https://develop.svn.wordpress.org/trunk@41688 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-02 22:13:04 +00:00
Felix Arntz
84daf097a0 Multisite: Fix wp_get_users_with_no_role() possibly including users with a role on a different site.
Prior to this change, when passing another site than the current one to `wp_get_users_with_no_role()` through its `$site_id` parameter, the function still used the roles available on the current site, which would cause users with other roles that possibly exist on the other site to show up as users without a role. Switching the site before retrieving the available rules fixes the issue.

Fixes #42015.


git-svn-id: https://develop.svn.wordpress.org/trunk@41654 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-30 04:09:11 +00:00
Felix Arntz
761c45157e Multisite: Fix count_users() possibly querying incorrect roles when passed a different site ID.
The `time` strategy in `count_users()` queries users by role. However, the roles queried for were not affected by passing another site than the current one through the `$site_id` parameter, causing users having roles that were not queried for to appear as users without a role. This changeset fixes the issue by switching the site before retrieving the roles to query for.

Fixes #42014.


git-svn-id: https://develop.svn.wordpress.org/trunk@41653 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-30 03:53:27 +00:00
Sergey Biryukov
af90dd0682 Docs: Correct description for insert_user_meta filter.
Props milana_cap, desrosj.
Fixes #41951.

git-svn-id: https://develop.svn.wordpress.org/trunk@41564 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-22 13:13:41 +00:00
Weston Ruter
dbace684e2 Editor: Add CodeMirror-powered code editor with syntax highlighting, linting, and auto-completion.
* Code editor is integrated into the Theme/Plugin Editor, Additional CSS in Customizer, and Custom HTML widget. Code editor is not yet integrated into the post editor, and it may not be until accessibility concerns are addressed.
* The CodeMirror component in the Custom HTML widget is integrated in a similar way to TinyMCE being integrated into the Text widget, adopting the same approach for integrating dynamic JavaScript-initialized fields.
* Linting is performed for JS, CSS, HTML, and JSON via JSHint, CSSLint, HTMLHint, and JSONLint respectively. Linting is not yet supported for PHP.
* When user lacks `unfiltered_html` the capability, the Custom HTML widget will report any Kses-invalid elements and attributes as errors via a custom Kses rule for HTMLHint.
* When linting errors are detected, the user will be prevented from saving the code until the errors are fixed, reducing instances of broken websites.
* The placeholder value is removed from Custom CSS in favor of a fleshed-out section description which now auto-expands when the CSS field is empty. See #39892.
* The CodeMirror library is included as `wp.CodeMirror` to prevent conflicts with any existing `CodeMirror` global.
* An `wp.codeEditor.initialize()` API in JS is provided to convert a `textarea` into CodeMirror, with a `wp_enqueue_code_editor()` function in PHP to manage enqueueing the assets and settings needed to edit a given type of code.
* A user preference is added to manage whether or not "syntax highlighting" is enabled. The feature is opt-out, being enabled by default.
* Allowed file extensions in the theme and plugin editors have been updated to include formats which CodeMirror has modes for: `conf`, `css`, `diff`, `patch`, `html`, `htm`, `http`, `js`, `json`, `jsx`, `less`, `md`, `php`, `phtml`, `php3`, `php4`, `php5`, `php7`, `phps`, `scss`, `sass`, `sh`, `bash`, `sql`, `svg`, `xml`, `yml`, `yaml`, `txt`.

Props westonruter, georgestephanis, obenland, melchoyce, pixolin, mizejewski, michelleweber, afercia, grahamarmfield, samikeijonen, rianrietveld, iseulde.
See #38707.
Fixes #12423, #39892.


git-svn-id: https://develop.svn.wordpress.org/trunk@41376 602fd350-edb4-49c9-b593-d223f7449a82
2017-09-13 06:07:48 +00:00
John Blackbourn
8df2151660 General: Improve terminology used when referring to installations of WordPress and its extensions.
"Install" is not a noun, and while it might be acceptable to use the verb as a noun, it is not correct. Using the correct
noun, "installation", increases clarity, especially for non-native English speakers.

This change fixes the usage in user-facing text and in developer documentation.

Fixes #41620


git-svn-id: https://develop.svn.wordpress.org/trunk@41289 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-22 11:51:11 +00:00
Drew Jaynes
fff123a8ea Docs: Document user object parameters for a variety of functions in wp-includes/user.php as WP_User type instead of the more generic object type.
Props sebastianpisula.
Fixes #40945.


git-svn-id: https://develop.svn.wordpress.org/trunk@41272 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-19 20:18:21 +00:00
John Blackbourn
6a77621be4 Docs: Correct and improve the documentation for the send_confirmation_on_profile_email() function and the new_user_email_content filter.
See #41017


git-svn-id: https://develop.svn.wordpress.org/trunk@41209 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-02 20:42:17 +00:00
Drew Jaynes
bce1b14c9a Docs: Reduce confusion in @since MU notationss by indicating the WP version (3.0.0) the code was merged into core while retaining the original context.
Props sathyapulse.
Fixes #41509.


git-svn-id: https://develop.svn.wordpress.org/trunk@41200 602fd350-edb4-49c9-b593-d223f7449a82
2017-08-01 20:43:25 +00:00
Drew Jaynes
b22e409f81 Docs: Remove an unrelated description about post meta from the DocBlock for add_user_meta().
Clean up syntax.

See #41017.


git-svn-id: https://develop.svn.wordpress.org/trunk@41186 602fd350-edb4-49c9-b593-d223f7449a82
2017-07-30 14:32:00 +00:00