[6464]
|
netweb
|
Build Tools: Update `grunt-exec` from 1.0.1 to 2.0.0
* See https://github.com/jharding/grunt-exec/compare/v1.0.1...e1ef5d9
|
[6465]
|
netweb
|
Build Tools: Update `grunt-stylelint` from 0.7.0 to 0.8.0
• See https://github.com/wikimedia/grunt-stylelint/compare/v0.7.0...v0.8.0
|
[6466]
|
netweb
|
Build Tools: Update `autoprefixer` from 6.7.1 to 7.1.1
• https://github.com/postcss/autoprefixer/compare/6.7.1...7.1.1
|
[6467]
|
netweb
|
Build Tools: Update `grunt-contrib-uglify` from 2.0.0 to 3.0.1
* See https://github.com/gruntjs/grunt-contrib-uglify/compare/v2.0.0...v3.0.1
* Bumps `uglify-js` to 3.0.4
|
[6468]
|
netweb
|
Build Tools: Update `grunt-contrib-cssmin` from 1.0.0 to 2.2.0
* See https://github.com/gruntjs/grunt-contrib-cssmin/compare/v1.0.0...v2.2.0
* Updates `clean-css` to v4.1.1
|
[6469]
|
netweb
|
Build Tools: Update `grunt-wp-i18n` from 0.5.4 to 1.0.0
* See https://github.com/cedaro/grunt-wp-i18n/compare/v0.5.4...v1.0.0
|
[6470]
|
netweb
|
Build Tools: Update `package.json` to define a minimum Node.js version `6.9.1`
This changeset updates the recommended Node.js version to the latest 6.x.x Node.js LTS version. The Node.js 4.x.x LTS branch is now in maintenance mode and brings bbPress' build tool version requirements in line with WordPress' and the broader WordPress plugin community.
|
[6471]
|
johnjamesjacoby
|
Converter: Styling updates
* Move all admin CSS & JS into `/admin/assets/`
* Introduce `converter.js` and refactor code out of `admin_head()` method
* Move converter styling into `common.css`
* Update some surrounding styling, verbiage, and mark-up to better handle errors and user feedback
|
[6472]
|
johnjamesjacoby
|
Converter: Styling updates
* Move all admin CSS & JS into `/admin/assets/`
* Introduce `converter.js` and refactor code out of `admin_head()` method
* Move converter styling into `common.css`
* Update some surrounding styling, verbiage, and mark-up to better handle errors and user feedback
|
[6473]
|
johnjamesjacoby
|
Tools: Update `Gruntfile.js` with new admin assets directory.
|
[6474]
|
johnjamesjacoby
|
Admin: Clean-up admin assets according to specifications.
|
[6475]
|
johnjamesjacoby
|
Admin: More admin mark-up updates
* Add `hr` after `h1`s on custom screens
* More accurate meta-box wrapper mark-up
|
[6476]
|
johnjamesjacoby
|
Converters: Port r5332 to 2.5 branch.
See #2558, #3112.
|
[6477]
|
johnjamesjacoby
|
Inserts: Only prefix meta keys if not already prefixed when inserting forum/topic/reply.
|
[6478]
|
johnjamesjacoby
|
Forums: Add forum-type & status to allowed meta keys.
|
[6479]
|
johnjamesjacoby
|
Sub-actions: Cast a few return values and add `@return` phpdoc.
|
[6480]
|
johnjamesjacoby
|
Forums: be strict in `array_search()` calls.
|
[6481]
|
johnjamesjacoby
|
Tools: Introduce `bbp_get_unique_array_values()` helper function.
Use this when parsing private/hidden forum IDs for saving.
|
[6482]
|
johnjamesjacoby
|
Fix typo in phpdoc.
|
[6483]
|
johnjamesjacoby
|
Settings: cast `map_meta_caps` return value to an array.
|
[6484]
|
johnjamesjacoby
|
Filters: cast return values & update phpdoc.
|
[6485]
|
johnjamesjacoby
|
BuddyPress: Root group forum updates
* Include ability to create a new group root forum if none exists
* Update group-forum setting verbiage to accommodate above
* When a forum is deleted, check if it's the group root, and delete the setting accordingly
* Introduce `bbp_maybe_delete_group_forum_root()` and `bbp_maybe_create_group_forum_root()` functions to carry out the above functionalities
|
[6486]
|
johnjamesjacoby
|
Template: Pass original `$args` array into `bbp_get_dropdown` filter.
Also update some inline docs & code formatting.
|
[6487]
|
johnjamesjacoby
|
Filters: Pass original `$args` array into various filters.
These were all unintentionally omitted when these filters were introduced.
|
[6488]
|
johnjamesjacoby
|
BuddyPress: Only wrap titles in `h2` tags if they are not empty.
Allows easier overriding if titles are not desired at all.
See #3105.
|
[6489]
|
johnjamesjacoby
|
Languages: Introduce UI for updating account language.
Includes helper functions for theme-side user editing, to wrap around `wp_dropdown_languages()`.
Fixes #3010.
|
[6490]
|
johnjamesjacoby
|
Converter: Use the port number in the server address if available.
Fixes #3022.
|
[6491]
|
johnjamesjacoby
|
Converter: Update some strings for improved clarity.
When a conversion is stopped, and later resumed, make sure the steps and verbiage are clear.
Also switch from "Completed" to "Finished" since it's likely some repair steps are still necessary, and the conversion isn't technically "complete" until those are done too.
|
[6492]
|
netweb
|
BuddyPress: Check for missing activity component when looking for an activity stream item.
This changeset fixes a bug that would result in duplicate activity stream items when editing a topic or reply.
Props r-a-y.
Fixes #2690.
Merges [5857] to the 2.5 branch.
|
[6493]
|
johnjamesjacoby
|
Favorites/Subscriptions improvements:
* Remove superfluous checks against current current user fav/sub status
* Always return `$success`
* Prefer `bbp_get_` functions over generic `intval()` to validate `$_GET` ID's
|
[6494]
|
netweb
|
Build Tools: Add npm `package-lock.json` for npm v5.x
This changeset adds support for npm 5 which include significant performance improvements, these are primarily due updated caching, offline caching and the addition of a `package-lock.json` to leverage the new caching.
To install and use npm 5 with your existing install of Node.js 6 or 7 run `npm i npm@5 -g`. Node.js 8 support will be added in a follow up ticket.
Installing npm modules for bbPress is now ~6x faster with npm 5 🏎
Fixes #3113.
|
[6495]
|
johnjamesjacoby
|
Repairs: Prefer `empty()` over `! isset()` in `bbp_admin_repair_group_forum_relationship()`
The `meta_value` key will always be set, because of the way the forum query is written.
See #2829.
|
[6496]
|
johnjamesjacoby
|
Tools: Change BuddyPress group forum repair into an upgrade routine.
This is only intended as a migration path from bbPress 1.x to 2.x, not to be rerun multiple times to force-recount the meta values & private/hidden options.
See #2829.
|
[6497]
|
johnjamesjacoby
|
Documentation: Prefer "database" over "sql" to avoid some jargon.
This also makes it language/platform agnostic.
|
[6498]
|
johnjamesjacoby
|
Documentation: Don't hyphenate "bbPress's"
It's cute, and I tend to say it in person to be cute, but in writing it doesn't look very classy.
|
[6499]
|
johnjamesjacoby
|
General: Audit `wp_insert_post()` usages.
Return a `WP_Error` object in some instances, and explicitly do not in others.
Where possible, use the error message in the user feedback response.
Fixes #2817.
|
[6500]
|
johnjamesjacoby
|
Admin: Rename `upgrades.php` to `upgrade.php` to match the other files.
|
[6501]
|
johnjamesjacoby
|
Typo: /s/compatable/compatible/
|
[6502]
|
johnjamesjacoby
|
Users: Add a "View" link to list-table row-actions.
This connects `wp-admin` users to their theme-side forum profiles.
|
[6503]
|
johnjamesjacoby
|
Queries: Remove `author_name` query variable setting when viewing profiles.
This is a relic from the days when profiles included blog posts (2010 era.)
This should be safe to remove, based on the following assessments:
* Blog posts are no longer included in profiles
* Setting `author_name` or `author` query-vars will cause `is_author()` to be set to `true`
* `is_author()` should not return true in the context of bbPress profile pages
* The `author_name` query-var is not used again later in bbPress - the `displayed_user` variable is instead
See https://github.com/woocommerce/woocommerce/issues/15508 for additional context.
|
[6504]
|
johnjamesjacoby
|
Topics: Redirect to forum when trashing a topic and the user cannot view trash.
Fixes #3111. Props mattrabe.
|
[6505]
|
johnjamesjacoby
|
Users: Bail if editing a user in wp-admin.
This is a theme-side only handler.
|
[6506]
|
johnjamesjacoby
|
Widgets: Audit all widget classes:
* Use escaping GetText functions
* Fix typos
* Use more efficient queries for forum/topic/reply meta-boxes
Needs testing. See #3070.
|
[6507]
|
johnjamesjacoby
|
Languages: Deprecate custom bbPress `/languages/bbpress/` directory.
* It's still supported if it exists, otherwise it's skipped.
* Introduce new `base` property to the `bbPress` class to help with targeting the global directory.
This results in 1 fewer call to `load_textdomain()` and 2 fewer if the old directory is not in place.
|
[6508]
|
johnjamesjacoby
|
Rename `base_dir` to `basepath` for consistency.
|
[6509]
|
johnjamesjacoby
|
Bump trunk to 2.6 Release Candidate 1! 🐝
|
[6510]
|
johnjamesjacoby
|
RC 1, not 3. See r6509.
|
[6511]
|
johnjamesjacoby
|
Tag 2.6 RC 1.
|
[6512]
|
johnjamesjacoby
|
Users: Sanitize name, email, and website in `bbp_filter_anonymous_post_data()`.
2.5 branch, for 2.5.13.
|
[6513]
|
johnjamesjacoby
|
Tools: Use escaping gettext functions in admin area Reset Tool.
|
[6514]
|
johnjamesjacoby
|
Converter: Port changes proposed for 2.7 in for 2.6:
* Add a timer UI to show the count down until the next step
* Move converter settings into the normal options & settings arrays
* Update fields, sections, & pages as needed
* Update `converter.js` version to use `bbp_get_version()`
* Make connection & options persistent across requests whenever possible, and trust the settings if settings change
* Split steps up into private methods, out of the massive `do_steps()` method
|
[6515]
|
johnjamesjacoby
|
Engagements: Remove duplicate type castings from return values.
This removes `(bool)` usages where there is no way the return value would ever not be a boolean.
|
[6516]
|
johnjamesjacoby
|
Engagements: Update `bbp_update_topic_voice_count()` to only count the number of existing engagements.
Recalculating the entire engagement tree for each topic is costly, should be done in its own dedicated function, and then only hooked in or executed when absolutely necessary.
This is easier to do with the engagements API that's new in 2.6. Recalculation function imminent.
See #3068.
|
[6517]
|
johnjamesjacoby
|
Engagements: Introduce `bbp_remove_user_from_all_objects()`.
This is useful for when a user is permanently deleted, or when all of their relationship(s) (of a certain type) need to be removed.
See #3068.
|
[6518]
|
johnjamesjacoby
|
Engagements: Update `bbp_add_user_object()`.
* New phpdoc description
* Add `$unique` parameter and default to `true` (this differs from the normal `false` default of `add_metadata()` because, by default, this API assumes no 1 user can have multiple relationships with the same object)
* Pass `$unique` into `apply_filters()`
See #3068.
|
[6519]
|
johnjamesjacoby
|
Moderators: Add an `$object_type` parameter to add/remove/delete functions.
In a future release, this will more easily allow objects like taxonomy-terms to have their own moderators, and is also necessary for future enhancements to the WordPress.org support forums where custom taxonomies are used for prevalently than in bbPress core currently.
See #3068, #459.
|
[6520]
|
johnjamesjacoby
|
Engagements: Updates to phpdoc & helper functions.
* New function to remove all users from an object
* New function to remove all users from all objects
* Remove references to taxonomy term storage (from original implementation)
* Update phpdoc with more accurate descriptions of intended parameter usages
See #3068.
|
[6521]
|
johnjamesjacoby
|
Engagements: Update phpdoc for `bbp_add_user_to_object()`.
* Replace `add_post_meta()` with `add_metadata()`
See #3068.
|
[6522]
|
johnjamesjacoby
|
Engagements: Introduce 2 new functions for recalculating engagements.
* `bbp_get_topic_engagements_raw()` to efficiently query for users who have engaged in a topic
* `bbp_recalculate_topic_engagements()` to update all of the related meta-data
See #3068.
|
[6523]
|
johnjamesjacoby
|
Tools: Audit repair & upgrade tools.
* Use escaped gettext variant functions where applicable
* Use Query/Prepared/Results paradigm for direct database queries for easier step-through debugging
* Fix a few small bugs in the engagements upgrade functions (none that affect 2.5 or beta/RC users)
* General code formatting improvements and typo fixes
|
[6524]
|
netweb
|
Tests: Use updated filename `upgrade.php` following renamed file in [6500]
|
[6525]
|
johnjamesjacoby
|
Engagements: Tracking is not just for public or closed topics.
This commit updates the engagement upgrade tool and recalculation helper functions to not be limited to public & closed post statuses. Engagements can happen on private or hidden topics also, including trash, spam, and so on.
The non-visible topics that a user is engaged in should be filtered out as needed when queried based on `post_status` or other various meta-data.
See #3068.
|
[6526]
|
johnjamesjacoby
|
Documentation: Don't use `reply's`, because it looks weird and is poor English grammar.
Prefer more descriptive documentation instead.
|
[6527]
|
johnjamesjacoby
|
Styling: Improve theme compatibility of avatars & content areas in default themes.
This makes sure that avatars in forum & topic descriptions are always horizontally centered, are not accidentally turned into block-elements by parent-theme `img` styling, and that content areas always occupy the full width of their parent element.
|
[6528]
|
johnjamesjacoby
|
Hierarchy: Use `post_parent` when not empty, and fallback to meta-data.
This fixes a few weird inconsistencies with how deleting content works, because `delete_` hooks fire after meta & terms have already been deleted from the database, `deleted_` hooks fire after the post itself is deleted from the database, but the post object cache has not yet been cleaned (even though term & meta caches have.)
We also call a few functions like `bbp_is_reply()` on the deleted `$postid`, and even though the state of the object-cache should not be relied on, it has not been purged yet.
Relatedly, updates to forum & topic descriptions can more reliably identify their state, so this commit adjusts some logic there also.
|
[6529]
|
johnjamesjacoby
|
Engagements: Keep topic engagement counts up-to-date.
This changes the way the old 'voice count' works with the new engagements API in the following ways:
* Introduce new function to update voice count meta when necessary
* Modify recalculation function with a `$force` parameter, and only recalculate the counts when the engagements have changed by default
* Hook the above functions in where appropriate, largely when deleting replies (this is a unique case where a fully deleted reply needs to check if the author of the current reply has a previously public reply in that same topic already, which should not trigger a recalculation.)
* We are silently moving the `bbp_delete_` actions onto the `before_delete_post` hook, so that all term & meta-data is available to them (which helps with race conditions mentioned in r6528)
Engagements are now hooked in and listening in the most efficient way possible, at least until a common & shared walker is introduced for the entire tree.
See: #3068.
|
[6530]
|
johnjamesjacoby
|
Engagements: Update topic engagements when they are manually inserted.
This brings the `_insert_` functions up to date with the `_new_` equivalents.
See: #3068. Props netweb & unit-tests for catching this.
|
[6531]
|
johnjamesjacoby
|
Core: Register, then enqueue, both scripts and styles.
This commit makes sure that theme compatibility styles & scripts are properly registered & enqueued.
Props r-a-y. Fixes #3115.
|
[6532]
|
johnjamesjacoby
|
Fix accidentally inverted inline doc from r6531.
|
[6533]
|
johnjamesjacoby
|
Update phpdoc block of `bbp_is_topic_public()`.
Include reference to new `bbp_get_public_topic_statuses()` function.
|
[6534]
|
johnjamesjacoby
|
Engagements: Revert part of r6525, and adjust some actions.
* Engagements will need to be "public only" for 2.6, and we can reconsider what private/hidden engagements look like later
* Make sure that engagements are saved before voice counts are done
* Use new `is_public` style wrapper function for topics & replies where appropriate
* Remove a few `current_filter()` checks that should no longer be necessary with current action hook implementation
* There may be more clean-up necessary here, but this is required to bring all unit-tests back to passing as they've been written, specifically things hooked to the `bbp_insert_topic` and `bbp_insert_reply` hooks
See #3068. Hat-tip netweb.
|
[6535]
|
johnjamesjacoby
|
Bump trunk to 2.6 Release Candidate 3.
|
[6536]
|
johnjamesjacoby
|
Tag 2.6 RC 3. (RC 2 is a private/internal pre-release)
|
[6537]
|
johnjamesjacoby
|
Tools: Improvements to repair, upgrade, and converter tools.
* Use escaped gettext equivalent functions where appropriate
* Rename `description` to `title` so that more descriptive descriptions can be used per-tool in a future version
* Register all scripts, and properly enqueue them only a needed
* Reorder & re-title some tools to better match each other
|
[6538]
|
johnjamesjacoby
|
BuddyPress: Favorites & Subscriptions AJAX improvements
* Pass a data attribute along with links
* Sanitize `action` key when passed into AJAX action hook
* Send a `200` response code
This commit allows favorite & subscription links to work with AJAX in BuddyPress group forums pages.
Props r-a-y. Fixes #3114
|
[6539]
|
netweb
|
Updated admin base SCSS styles:
* `_admin.scss` via WP:changeset:40576
* `_mixins.scss` via WP:changeset:38501
See #2583
|
[6540]
|
johnjamesjacoby
|
Update recent JavaScript formatting changes so they comply with our JSHint rules.
|
[6541]
|
johnjamesjacoby
|
BuddyPress: Continuation of r6538.
* Prefer data attributes
* Stop passing around localized nonces
Props r-a-y. Fixes #3114.
|
[6542]
|
johnjamesjacoby
|
Statistics: Improvements to "At a Glance" integration.
* Prefer `bbp_get_total_users()` over `count_users()` to speed up loading
* Don't include empty array values
* Don't link to areas the current user cannot access
* Skip if current user cannot at least spectate (blocked or no access)
Fixes #2770.
|
[6543]
|
johnjamesjacoby
|
Statistics: Define the `$statistics` array.
This change prevents debug notices, particularly in higher PHP versions (+7.0)
See #2770.
|
[6544]
|
johnjamesjacoby
|
Performance: Last pass at 2.6 performance tuning.
* Keep a local cache of non-options that aren't in the database, to avoid multiple database misses for options we know aren't in the database after `wp_load_alloptions()` is called
* Stop getting all favorite IDs and subscription IDs when checking if a user has favorited or subscribed to something, because these queries are expensive joins that are difficult to cache & invalidate
* Consolidate forum/topic favorites & subscriptions logic back into central routers, to make it easier to handle taxonomy term subscriptions in the future, and remove nested filter calls that make the call-stack confusing
* Informally deprecate some forum & topic specific fav/sub functions
* Rename one of the engagements remove functions to better match existing naming pattern
* Typo fixes & general code quality improvements
* Bump slow tests threshold up to `500` for now, and we can bring back down later (my 12" MacBook runs this pretty slowly, so I'd like to play with this more)
* Unit tests are all passing, and more quickly, maybe surprisingly
This should result in around 20 fewer database hits on non-persistent-cache sites, on average. When viewing single topics & replies, this will result in more than 25 fewer database hits.
|
[6545]
|
johnjamesjacoby
|
Forums: Use `no_found_rows` by default in `bbp_has_forums()`
Forums do not currently support pagination, so the total number of rows is not traditionally useful for this loop. In cases where it is, it can be explicitly overloaded in the `$args` array.
This results in 1 less database query per page where a forums list is shown, and a speed improvement overall.
|
[6546]
|
johnjamesjacoby
|
Replies: Add `single_row()` method to replies list table when editing a topic.
This lets us use `get_post_class()` on the table rows, so statuses like `pending` or `spam` can be properly in the list for users who have the capability to see them.
See #2587.
|
[6547]
|
johnjamesjacoby
|
Statuses: Update `Closed` status arguments in `register_post_status()` call.
This makes sure posts with a closed status appear in the status and all listings.
|
[6548]
|
netweb
|
Build Tools: Bump slow tests threshold for multisite to 250 for now, and we can continue to bring this value down as test performance is improved.
|
[6549]
|
johnjamesjacoby
|
Theme Compat: Update `bbp_get_query_template()` to work a bit more simply.
This change removes using the returned results from the stash functions, and uses the local variables instead.
|
[6550]
|
johnjamesjacoby
|
BuddyPress: Remove favs & subs from correct `bbp_get_request` action.
|
[6551]
|
johnjamesjacoby
|
Theme Compat: Improve loading & support for external template packs.
* Better error handling if tempate pack is broken, unloaded, or missing
* Consolidate favs & subs code to use the same central handlers, by passing an `object_id` and `object_type` around (for future support of term subscriptions)
* Rename data addtributes from previous BuddyPress favs & subs fixes
* Adjust load order of template pack setup so that it's as late as possible, allowing template pack authors more time to get registered
* Automatically add the current template pack to the template stack (multiple packs can still be layered, and this improves support for that)
* Merge `topic.js` and `forum.js` in "bbPress Default" template pack to use the same `engagements.js` script, which simplifies localization & uses 1 less script between pages
This change puts the finishing touches on favs & subs consolidation for 2.6, and updates several related & surrounding functions to better support the necessary mark-up changes.
|
[6552]
|
johnjamesjacoby
|
Pass `$type` into favs & subs link arguments. Missed in r6551.
|
[6553]
|
johnjamesjacoby
|
Replies: Do not update term cache in `bbp_has_replies()`.
This change removes 2 unnecessary database queries from single topic pages. In situations where the leading topic is gathered as part of the `bbp_has_replies()` loop, this still functions as anticipated, and the original topic loop query will handle updating the term cache appropriately.
|
[6554]
|
johnjamesjacoby
|
General: Introduce `bbp_pre_handle_404()` to handle 404 overrides.
This only introduces the function for now. I'll go through and check all of the conditions next.
See #3047.
|
[6555]
|
johnjamesjacoby
|
Forms: Add `autocomplete` attribute to user related form fields.
`autocomplete="new-password"` is new, and browser support is gaining, but it's also not any worse than `autocomplete="off"` (where most browsers & password managers have a hard time respecting the etiquitte anyways.)
|
[6556]
|
johnjamesjacoby
|
Forms: formally update password change text.
It was accidentally partially changed in r6555.
|
[6557]
|
johnjamesjacoby
|
Forms: Add `maxlength` attribute to the appropriate form fields.
Fields like `user_login`, `user_url`, and `user_email` have upper boundaries that cannot be extended via meta-data or other means, so let's make sure users aren't (easily) able to go over them.
For the anonymous user fields, set them up to match comment field lengths (even though they are stored in `postmeta`.)
|
[6558]
|
johnjamesjacoby
|
Passwords: Upgrade the user-edit experience to use the new'ish password generator.
* Introduces new `form-user-passwords.php` template part to encapsulate the more-elaborate password mark-up
* Removes `user.js` from the default scripts, and enqueues `user-profiles` instead
* Requires tweaks to the default template pack styling to accommodate the password generator being theme-side
This change will also allow bbPress to more easily keep-up with changes to the password generator code that comes with WordPress going forward. Huzzah!
|
[6559]
|
johnjamesjacoby
|
Forums: Use `edit_forum` instead of `keep_gate` in the admin toggle/row methods.
This change trusts the `edit_forum` meta capability to serve it's intended purpose. It also allows more flexibility with things like BuddyPress Group Forums or custom forum-ownership style extensions.
|
[6560]
|
johnjamesjacoby
|
Docs: Update inline documentation of `bbp_get_global_object()`.
The conditions in this function do not result in an early return, so remove "Bail" references.
|
[6561]
|
johnjamesjacoby
|
Capabilities: Skip double checks in `bbp_is_user_inactive()`, and use `bbp_get_user_id()` in `bbp_is_user_keymaster()`.
This change cleans up a few user capability functions, to use internal handlers and allow filters (like `bbp_get_user_id`) to be applied as expected in the given context.
|
[6562]
|
johnjamesjacoby
|
Users: Audit user template functions.
* Additional late escaping on meta-data return values where they are surrounded by HTML markup
* Introduce helper function for filtering & returning the 'Anonymous' fallback display name (we'll use this through-out the existing author name fallbacks)
* Use more internal helpers & handlers where they are available
|
[6563]
|
johnjamesjacoby
|
Moderators: Introduce "Super Moderators" setting.
This change introduces the option (and default off value), admin setting and UI for toggling it on and off.
A "Super Moderator" is a moderator with the ability to also edit users, a commonly requested and popular feature in other forum software. The use-case is that user accounts may be spammers and need to be moderated beyond just their topics & replies, but the `edit_users` capability is reserved for Administrators (or Super Admins in multisite.) This setting will act as the global on/off to the deeper implementation of this feature.
|