[buddypress-trac] [BuddyPress Trac] #6734: `groups_get_groups()` doesn't distinguish between `0` and falsey values for `user_id`

buddypress-trac noreply at wordpress.org
Sat Nov 14 20:42:00 UTC 2015


#6734: `groups_get_groups()` doesn't distinguish between `0` and falsey values for
`user_id`
-------------------------+-------------------------------------------------
 Reporter:               |      Owner:
  boonebgorges           |     Status:  new
     Type:  defect       |  Milestone:  Awaiting Review
  (bug)                  |    Version:
 Priority:  normal       |   Keywords:  2nd-opinion needs-patch needs-unit-
Component:  Component -  |  tests
  Groups                 |
 Severity:  normal       |
-------------------------+-------------------------------------------------
 The default value for `user_id` in `groups_get_groups()` is `false`,
 which, as expected, means to ignore group memberships when fetching
 groups. But the way this is implemented in `BP_Groups_Group::get()` is
 with `! empty( $user_id )` checks. This means that passing `user_id=0`
 returns the same results. I would expect that `user_id=0` would always
 return an empty array - the groups that user 0 is a member of. This would
 be useful in the following sorts of cases:

 {{{
 $groups_of_user = groups_get_groups( array
     'user_id' => bp_loggedin_user_id(),
 ) );
 }}}

 As things stand, it's necessary to do different logic `if ( !
 is_user_logged_in() )`. (I found this out the hard way, because of some
 ugly access-related issues in a plugin I'm building.)

 Do people agree with me that `0` ought to mean something different than
 `false` or `null` in this context? What kinds of backward compatibility
 concerns should we expect? (Especially in `BP_Groups_Group::get()`, which
 has the default `user_id` of `0`.)

--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6734>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list