[buddypress-trac] [BuddyPress Trac] #6504: Messages viewable to any logged out visitor

buddypress-trac noreply at wordpress.org
Mon Jun 15 20:16:07 UTC 2015


#6504: Messages viewable to any logged out visitor
-----------------------------------+--------------------
 Reporter:  CodeMonkeyBanana       |       Owner:
     Type:  defect (bug)           |      Status:  new
 Priority:  normal                 |   Milestone:  2.3.2
Component:  Component - Messaging  |     Version:
 Severity:  blocker                |  Resolution:
 Keywords:  has-patch 2nd-opinion  |
-----------------------------------+--------------------
Changes (by johnjamesjacoby):

 * keywords:  has-patch => has-patch 2nd-opinion


Comment:

 [https://buddypress.trac.wordpress.org/attachment/ticket/6504/6504.01.patch
 6504.01.patch] proposes the following:

 * Introduces `bp_messages_restrict_current_user()` as a filter on the
 `bp_after_has_message_threads_parse_args` filter.
 * If user is not logged in, we wipe out the $args array completely. This
 makes the query arguments us their fallbacks from
 `BP_Messages_Thread::get_current_threads_for_user()` which are:
 {{{
 array(
         'user_id'      => false,
         'box'          => 'inbox',
         'type'         => 'all',
         'limit'        => null,
         'page'         => null,
         'search_terms' => '',
         'meta_query'   => array()
 )
 }}}
 * Sets smarter defaults for `$user_id_sql` and `$sender_sql` so user ID 0
 is the default user being queried for. This means if no user ID is passed
 0 is assumed, which wouldn't have any results anyways.
 * I also cleaned up single & double quote usage in to better depict which
 `$sql` query parts have nested PHP variables in them, and which ones are
 literals or ran through `$wpdb->prepare()`.

 I like this approach because it sets up a completely pluggable paradigm of
 intelligent default enforcements of content restrictions. Rather than
 build assumptions into existing functions and methods that could be being
 used in an infinite number of ways, we can intercept argument combinations
 we know to be unintended or potentially malicious, and black-list them in
 a way that can be unhooked by savvy developers.

--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6504#comment:17>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list