[buddypress-trac] [BuddyPress Trac] #6677: Groups: Draft, Locked or Suspended status

buddypress-trac noreply at wordpress.org
Thu Jul 28 14:00:22 UTC 2016

#6677: Groups: Draft, Locked or Suspended status
 Reporter:  dcavins                 |       Owner:  dcavins
     Type:  enhancement             |      Status:  assigned
 Priority:  normal                  |   Milestone:  Future Release
Component:  Groups                  |     Version:
 Severity:  normal                  |  Resolution:
 Keywords:  has-patch dev-feedback  |
Changes (by dcavins):

 * owner:   => dcavins
 * status:  new => assigned


 Replying to [comment:10 imath]:
 Thanks, @imath, for your thoughtful comments. I'll take a look at the post
 status approach and see how it can help. I started originally working with
 the WP user roles/capabilities model because it's built to be extended,
 but I'm also somewhat familiar with it. So thanks for the suggestion for
 another inspiration.

 Also, don't get hung up on the term "capabilities."  I think your
 suggestion of "properties" is the right term, but the point is that
 certain group statuses convey allowances to group/user interactions, no
 matter what those things are called.

 > eg: `bp_groups_user_can( $user_id, 'join_group', array( 'group' =>
 $group ) )`
 Yes, much of what we need to check is user-specific, so making those items
 a `bp_user_can()` check is a great idea.

 > Finally i'm not sure to understand what the status property of the group
 became. IMHO $group->status should always return the "id " of the status
 eg: public, private, hidden or whatever and then we can get the detailed
 properties of this status by using the global group status object, no ?
 Meaning if a plugin do stuff with this status it should still work? Why
 would we need to check the BuddyPress version ?
 My concern is that if one plugin registers a custom group status, but
 another plugin is checking by legacy status (public, private or hidden)
 then the logic in the second plugin falls apart for groups that have a
 custom status. Basically, once group status properties are in place,
 plugins need to check the property they care about rather than checking
 the status. Like checking for the user capability `edit_others_posts`
 instead of user role of `editor`.

 > FYI there's a var_dump in src/bp-groups/bp-groups-template.php at line
 3196 of your patch

 I also have come up with a plan to fix the problem of orphaned custom
 statuses, again using the user roles model for guidance. So instead of
 registering custom statuses on every page load, you'd register your custom
 status once on plugin activation and it'd be stored. I was trying to avoid
 that, but it makes for much more reliable behavior. (For instance, if you
 perform an action that deregisters a custom status, we could at that time
 switch the groups that have that status to that status's legacy fallback.)

 I'll work on another iteration of this patch next week.

 Thanks again!

Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6677#comment:11>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac

More information about the buddypress-trac mailing list